9 Commits

Author SHA1 Message Date
Xu Tianliang
ecce393578 某些机型下系统流量会以root用户请求,修复此机型下open too many files报错 2023-06-04 15:19:50 +08:00
Xu Tianliang
aef6fe709e feat:更新版本v2.0.1.02
v2manager版本:v1.0.2.01
2022-02-23 20:19:46 +08:00
Xu Tianliang
6a637c5ce8 docs:更新插件说明(Magisk 24.0+) 2022-02-23 20:17:36 +08:00
Xu Tianliang
4236a079a9 chore:引用v2ray-release脚本进行打包 2022-02-23 19:46:15 +08:00
Xu Tianliang
002bd9b5f2 chore:更新地址将在发布打包时指定 2022-02-23 19:39:23 +08:00
Xu Tianliang
bfcebe2c48 chore:新建Github Actions自动打包发布 2022-02-23 17:43:00 +08:00
Xu Tianliang
78b9a06c07 feat:适配Magisk 24.0+,添加更新链接 2022-02-21 23:18:47 +08:00
Xu Tianliang
b382a169aa style:更改版本号 2022-01-19 01:08:21 +08:00
Xu Tianliang
335d6df3ab fix:管理应用无法正确安装修复
某些ROM中即使将apk文件复制到/system/app目录下,pm命令也无法识别出应用被安装.
故判断应用安装并不会返回预想的'package:/system/...',而是毫无输出从而返回错误.
故增加判断条件以正确安装管理应用
2022-01-19 01:03:28 +08:00
8 changed files with 67 additions and 30 deletions

26
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
# 根据上传的tag打包发布至Github
name: Auto Release
on:
push:
tags:
- '*'
workflow_dispatch:
jobs:
publish-module:
runs-on: ubuntu-latest
steps:
- name: 1.检出代码
uses: actions/checkout@v2
- name: 2.下载打包脚本并执行
run: curl https://yatsuki.github.io/v2ray-release/release.sh | sh
- name: 3.发布
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
body: "自动发布"
artifacts: "v2ray-magisk-android32.zip,v2ray-magisk-android64.zip"

View File

@@ -8,20 +8,27 @@
## 包含内容 ## 包含内容
- [V2Ray core](<https://github.com/v2fly/v2ray-core>): V2Ray核心代理程序
- 基于iptables的代理脚本 - 基于iptables的代理脚本
- [V2Manager](<https://github.com/yatsuki/v2manager>)管理核心程序以及iptables的APP - [V2Manager](<https://github.com/yatsuki/v2manager>)管理核心程序以及iptables的APP
- [magisk-module-installer](https://github.com/topjohnwu/magisk-module-installer) - [magisk-module-installer](https://github.com/topjohnwu/magisk-module-installer)
### 插件打包时一起打包的二进制文件
- [V2Ray core](<https://github.com/v2fly/v2ray-core>): V2Ray核心代理程序
- [v2ray-rules-dat](https://github.com/Loyalsoldier/v2ray-rules-dat): V2Ray 路由规则文件加强版
## 安装 ## 安装
目前还未合并至Magisk官方模块仓库下载[zip](https://github.com/yatsuki/v2ray/releases)后自行在`Magisk Manager`中从本地安装 下载[zip](https://github.com/yatsuki/v2ray/releases)后自行在`Magisk Manager`中从本地安装
### 插件更新
Magisk更新至24.0+之后取消了线上仓库,插件需要在`module.prop`中指定`updateJson`来检查新版本。本插件将使用[v2ray-release](https://github.com/yatsuki/v2ray-release)来检查更新。由于有32/64平台的区分`updateJson`会在插件发布打包时指定。
## 配置文件(底层) ## 配置文件(底层)
- `/data/v2ray/config.json` V2Ray配置文件 - `/data/v2ray/config.json` V2Ray配置文件
- `/data/v2ray/appid.list` 需要代理的APP列表 - `/data/v2ray/appid.list` 需要代理的APP列表
- `/data/v2ray/softap.list` 需要代理的子网 - `/data/v2ray/softap.list` 需要代理的子网
- `/data/v2ray/manual` 停用开机启动
## 使用方法 ## 使用方法

2
app

Submodule app updated: 0908cc917d...2eda7595de

View File

@@ -7,26 +7,25 @@ SKIPUNZIP=1
# prepare v2ray execute environment # prepare v2ray execute environment
ui_print "- Prepare V2Ray execute environment." ui_print "- Prepare V2Ray execute environment."
mkdir -p /data/v2ray mkdir -p /data/v2ray
mkdir -p /data/v2ray/dnscrypt-proxy
mkdir -p /data/v2ray/run mkdir -p /data/v2ray/run
mkdir -p $MODPATH/scripts mkdir -p $MODPATH/scripts
mkdir -p $MODPATH/system/bin mkdir -p $MODPATH/system/bin
mkdir -p $MODPATH/system/app # mkdir -p $MODPATH/system/app
mkdir -p $MODPATH/system/app/Stk # mkdir -p $MODPATH/system/app/Stk
mkdir -p $MODPATH/system/etc mkdir -p $MODPATH/system/etc
ui_print "- Install V2Ray core execute files" ui_print "- Install V2Ray core execute files"
unzip -j -o "${ZIPFILE}" "v2ray/bin/v2ray" -d $MODPATH/system/bin >&2 unzip -j -o "${ZIPFILE}" "v2ray/bin/v2ray" -d $MODPATH/system/bin >&2
unzip -j -o "${ZIPFILE}" "v2ray/bin/geoip.dat" -d /data/v2ray >&2 unzip -j -o "${ZIPFILE}" "v2ray/bin/geoip.dat" -d /data/v2ray >&2
unzip -j -o "${ZIPFILE}" "v2ray/bin/geosite.dat" -d /data/v2ray >&2 unzip -j -o "${ZIPFILE}" "v2ray/bin/geosite.dat" -d /data/v2ray >&2
unzip -j -o "${ZIPFILE}" "v2ray/bin/v2manager.apk" -d $MODPATH/system/app/Stk >&2 # unzip -j -o "${ZIPFILE}" "v2ray/bin/v2manager.apk" -d $MODPATH/system/app/Stk >&2
unzip -j -o "${ZIPFILE}" 'v2ray/scripts/*' -d $MODPATH/scripts >&2 unzip -j -o "${ZIPFILE}" 'v2ray/scripts/*' -d $MODPATH/scripts >&2
unzip -j -o "${ZIPFILE}" 'service.sh' -d $MODPATH >&2 unzip -j -o "${ZIPFILE}" 'service.sh' -d $MODPATH >&2
unzip -j -o "${ZIPFILE}" 'uninstall.sh' -d $MODPATH >&2 unzip -j -o "${ZIPFILE}" 'uninstall.sh' -d $MODPATH >&2
# pm command was not working in install scipt? # pm command was not working in install scipt?
ui_print "- Install V2Ray Manager APK" # ui_print "- Install V2Ray Manager APK"
pm install $MODPATH/system/app/Stk/v2manager.apk # pm install $MODPATH/system/app/Stk/v2manager.apk
rm "${download_v2ray_zip}" rm "${download_v2ray_zip}"
# copy v2ray data and config # copy v2ray data and config
@@ -39,16 +38,17 @@ unzip -j -o "${ZIPFILE}" "v2ray/etc/config.json.template" -d /data/v2ray >&2
[ -f /data/v2ray/config.json ] || \ [ -f /data/v2ray/config.json ] || \
cp /data/v2ray/config.json.template /data/v2ray/config.json cp /data/v2ray/config.json.template /data/v2ray/config.json
ln -s /data/v2ray/resolv.conf $MODPATH/system/etc/resolv.conf ln -s /data/v2ray/resolv.conf $MODPATH/system/etc/resolv.conf
# generate module.prop # generate module.prop
ui_print "- Generate module.prop" # ui_print "- Generate module.prop"
rm -rf $MODPATH/module.prop # rm -rf $MODPATH/module.prop
touch $MODPATH/module.prop # touch $MODPATH/module.prop
echo "id=v2ray" > $MODPATH/module.prop # echo "id=v2ray" > $MODPATH/module.prop
echo "name=V2ray for Android" >> $MODPATH/module.prop # echo "name=V2ray for Android" >> $MODPATH/module.prop
echo "version=4.44.0" >> $MODPATH/module.prop # echo "version=2.0.1" >> $MODPATH/module.prop
echo "versionCode=20210801" >> $MODPATH/module.prop # echo "versionCode=20220119" >> $MODPATH/module.prop
echo "author=ohnoku" >> $MODPATH/module.prop # echo "author=ohnoku" >> $MODPATH/module.prop
echo "description=V2ray core with service scripts for Android" >> $MODPATH/module.prop # echo "description=V2ray core with service scripts for Android" >> $MODPATH/module.prop
inet_uid="3003" inet_uid="3003"
net_raw_uid="3004" net_raw_uid="3004"
@@ -59,4 +59,4 @@ set_perm $MODPATH/scripts/start.sh 0 0 0755
set_perm $MODPATH/scripts/v2ray.service 0 0 0755 set_perm $MODPATH/scripts/v2ray.service 0 0 0755
set_perm $MODPATH/scripts/v2ray.tproxy 0 0 0755 set_perm $MODPATH/scripts/v2ray.tproxy 0 0 0755
set_perm $MODPATH/system/bin/v2ray ${inet_uid} ${inet_uid} 0755 set_perm $MODPATH/system/bin/v2ray ${inet_uid} ${inet_uid} 0755
set_perm /data/v2ray ${inet_uid} ${inet_uid} 0755 set_perm /data/v2ray ${inet_uid} ${inet_uid} 0755

View File

@@ -1,6 +1,6 @@
id=v2ray id=v2ray
name=V2ray for Android name=V2ray for Android
version=2.0.1 version=2.1.0.0
versionCode=20220119 versionCode=20230529
author=ohnoku author=ohnoku
description=V2ray core with service scripts for Android description=V2ray core with service scripts for Android

View File

@@ -12,7 +12,9 @@ start_proxy () {
# /system app can not run # /system app can not run
# check the app was installed to /data/ at ervery boot # check the app was installed to /data/ at ervery boot
AppIn=`pm list packages -f | grep lintian` AppIn=`pm list packages -f | grep lintian`
if [[ "$AppIn" = package:/system* ]]; then if [ $? == 1 ]; then
pm install /data/adb/modules/v2ray/system/app/Stk/v2manager.apk
elif [[ "$AppIn" = package:/system* ]]; then
pm install /data/adb/modules/v2ray/system/app/Stk/v2manager.apk pm install /data/adb/modules/v2ray/system/app/Stk/v2manager.apk
fi fi

View File

@@ -7,7 +7,7 @@ run_path="${data_path}/run"
pid_file="${run_path}/${bin_name}.pid" pid_file="${run_path}/${bin_name}.pid"
error_log="${run_path}/error.log" error_log="${run_path}/error.log"
conf_file="${data_path}/config.json" conf_file="${data_path}/config.json"
bin_opts="-config ${conf_file}" bin_opts="run -c ${conf_file}"
iptables_wait="iptables" iptables_wait="iptables"
@@ -80,9 +80,9 @@ start_service() {
elif [ -f ${conf_file} ] && ${bin_path} ${bin_opts} -test ; then elif [ -f ${conf_file} ] && ${bin_path} ${bin_opts} -test ; then
echo "[Info]: Starting ${bin_name} service." echo "[Info]: Starting ${bin_name} service."
mkdir -p ${run_path} mkdir -p ${run_path}
chown -R inet:inet ${data_path} # chown -R inet:inet ${data_path}
chown inet:inet ${bin_path} # chown inet:inet ${bin_path}
chmod 6755 ${bin_path} # chmod 6755 ${bin_path}
nohup ${bin_path} ${bin_opts} &>${error_log} & nohup ${bin_path} ${bin_opts} &>${error_log} &
echo -n $! > ${pid_file} echo -n $! > ${pid_file}
if wait_v2ray_listen ; then if wait_v2ray_listen ; then

View File

@@ -1,12 +1,13 @@
#!/system/bin/sh #!/system/bin/sh
route_id="1130" # route_id="1130"
inet_uid="3003" inet_uid="3003"
net_raw_uid="3004" root_uid="0"
# net_raw_uid="3004"
route_name="v2ray" route_name="v2ray"
proxy_port="65535" proxy_port="65535"
proxy_mark="0x20151130" # proxy_mark="0x20151130"
table_file="/data/misc/net/rt_tables" # table_file="/data/misc/net/rt_tables"
appid_file="/data/v2ray/appid.list" appid_file="/data/v2ray/appid.list"
softap_file="/data/v2ray/softap.list" softap_file="/data/v2ray/softap.list"
iptables_wait="iptables" iptables_wait="iptables"
@@ -152,6 +153,7 @@ proxy_app_tcp_iptables() {
${iptables_wait} -t nat -N APP_TCP_PROXY ${iptables_wait} -t nat -N APP_TCP_PROXY
## bypass v2ray program ## bypass v2ray program
${iptables_wait} -t nat -A APP_TCP_PROXY -m owner --uid-owner ${inet_uid} -j RETURN ${iptables_wait} -t nat -A APP_TCP_PROXY -m owner --uid-owner ${inet_uid} -j RETURN
${iptables_wait} -t nat -A APP_TCP_PROXY -m owner --uid-owner ${root_uid} -j RETURN
## white-list mode ## white-list mode
if [ "${app_proxy_mode}" = "pick" ] ; then if [ "${app_proxy_mode}" = "pick" ] ; then
## proxy all apps network ## proxy all apps network