~更新功能调整,新增更新版本通道选择
  ·增加稳定版分支及分支切换
  ·增加公测版及开发版分支
  ·现在前4个源都支持各个分支之间任意切换及回退
  ·内测源今后改为个人开发测试用,请更新后尽快换源
~正式适配sing-box1.8.0内核
  ·已编译mips相关版本内核文件
  ·已将内核添加到项目内/bin目录,以支持小闪存模式
  ·编译时移除了with_gvisor参数,以优化内存占用
~修复手动加载/tmp目录下内核时无法正确识别的bug
~修复保守模式启用本机代理后部分设备导致日志刷屏的bug
This commit is contained in:
juewuy
2024-01-12 21:36:31 +08:00
parent 3679267902
commit 75f1bbeaa4
10 changed files with 184 additions and 125 deletions

View File

@@ -138,6 +138,20 @@ put_save(){ #推送面板选择
wget -q --method=PUT --header="Authorization: Bearer ${secret}" --header="Content-Type:application/json" --body-data="$2" "$1" >/dev/null
fi
}
get_bin(){ #专用于项目内部文件的下载
source ${CRASHDIR}/configs/ShellCrash.cfg >/dev/null
[ -z "$update_url" ] && update_url=https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master
if [ -n "$url_id" ];then
if [ "$url_id" = 101 ];then
url="$(grep "$url_id" ${CRASHDIR}/configs/servers.list | awk '{print $3}')@$release_type/$2" #jsdelivr特殊处理
else
url="$(grep "$url_id" ${CRASHDIR}/configs/servers.list | awk '{print $3}')/$release_type/$2"
fi
else
url="$update_url/$2"
fi
$0 webget "$1" "$url" "$3" "$4" "$5" "$6"
}
mark_time(){ #时间戳
echo `date +%s` > ${TMPDIR}/crash_start_time
}
@@ -586,14 +600,14 @@ EOF
"final": "$direct_dns",
"independent_cache": true,
"reverse_mapping": true,
"fakeip": { "enabled": true, "inet4_range": "198.18.0.0/15" }
"fakeip": { "enabled": true, "inet4_range": "198.18.0.0/15", "inet6_range": "fc00::/18" }
},
EOF
}
#生成ntp.json
cat > ${TMPDIR}/ntp.json <<EOF
"ntp": {
"enabled": false,
"enabled": true,
"server": "time.apple.com",
"server_port": 123,
"interval": "30m0s",
@@ -719,7 +733,7 @@ cn_ip_route(){ #CN-IP绕过
mv ${CRASHDIR}/cn_ip.txt ${BINDIR}/cn_ip.txt
else
logger "未找到cn_ip列表正在下载" 33
$0 webget ${BINDIR}/cn_ip.txt "$update_url/bin/geodata/china_ip_list.txt"
get_bin ${BINDIR}/cn_ip.txt "bin/geodata/china_ip_list.txt"
[ "$?" = "1" ] && rm -rf ${BINDIR}/cn_ip.txt && logger "列表下载失败!" 31
fi
}
@@ -738,7 +752,7 @@ cn_ipv6_route(){ #CN-IPV6绕过
mv ${CRASHDIR}/cn_ipv6.txt ${BINDIR}/cn_ipv6.txt
else
logger "未找到cn_ipv6列表正在下载" 33
$0 webget ${BINDIR}/cn_ipv6.txt "$update_url/bin/geodata/china_ipv6_list.txt"
get_bin ${BINDIR}/cn_ipv6.txt "bin/geodata/china_ipv6_list.txt"
[ "$?" = "1" ] && rm -rf ${BINDIR}/cn_ipv6.txt && logger "列表下载失败!" 31
fi
}
@@ -1383,7 +1397,7 @@ core_check(){
logger "未找到【$crashcore】核心,正在下载!" 33
[ -z "$cpucore" ] && source ${CRASHDIR}/getdate.sh && getcpucore
[ -z "$cpucore" ] && logger 找不到设备的CPU信息请手动指定处理器架构类型 31 && exit 1
$0 webget ${BINDIR}/core.new "$update_url/bin/$crashcore/clash-linux-$cpucore"
get_bin ${BINDIR}/core.new "bin/$crashcore/clash-linux-$cpucore"
#校验内核
chmod +x ${BINDIR}/core.new 2>/dev/null
if [ "$crashcore" = singbox ];then
@@ -1431,7 +1445,7 @@ clash_check(){ #clash启动前检查
mv ${CRASHDIR}/Country.mmdb ${BINDIR}/Country.mmdb
else
logger "未找到GeoIP数据库正在下载" 33
$0 webget ${BINDIR}/Country.mmdb $update_url/bin/geodata/cn_mini.mmdb
get_bin ${BINDIR}/Country.mmdb bin/geodata/cn_mini.mmdb
[ "$?" = "1" ] && rm -rf ${BINDIR}/Country.mmdb && logger "数据库下载失败,已退出,请前往更新界面尝试手动下载!" 31 && exit 1
Geo_v=$(date +"%Y%m%d")
setconfig Geo_v $Geo_v
@@ -1443,7 +1457,7 @@ clash_check(){ #clash启动前检查
mv -f ${CRASHDIR}/GeoSite.dat ${BINDIR}/GeoSite.dat
else
logger "未找到GeoSite数据库正在下载" 33
$0 webget ${BINDIR}/GeoSite.dat $update_url/bin/geodata/geosite.dat
get_bin ${BINDIR}/GeoSite.dat bin/geodata/geosite.dat
[ "$?" = "1" ] && rm -rf ${BINDIR}/GeoSite.dat && logger "数据库下载失败,已退出,请前往更新界面尝试手动下载!" 31 && exit 1
fi
fi
@@ -1456,7 +1470,7 @@ singbox_check(){ #singbox启动前检查
mv ${CRASHDIR}/geoip.db ${BINDIR}/geoip.db
else
logger "未找到GeoIP数据库正在下载" 33
$0 webget ${BINDIR}/geoip.db $update_url/bin/geodata/geoip_cn.db
get_bin ${BINDIR}/geoip.db bin/geodata/geoip_cn.db
[ "$?" = "1" ] && rm -rf ${BINDIR}/geoip.db && logger "数据库下载失败,已退出,请前往更新界面尝试手动下载!" 31 && exit 1
Geo_v=$(date +"%Y%m%d")
setconfig Geo_v $Geo_v
@@ -1468,7 +1482,7 @@ singbox_check(){ #singbox启动前检查
mv -f ${CRASHDIR}/geosite.db ${BINDIR}/geosite.db
else
logger "未找到GeoSite数据库正在下载" 33
$0 webget ${BINDIR}/geosite.db $update_url/bin/geodata/geosite_cn.db
get_bin ${BINDIR}/geosite.db bin/geodata/geosite_cn.db
[ "$?" = "1" ] && rm -rf ${BINDIR}/geosite.db && logger "数据库下载失败,已退出,请前往更新界面尝试手动下载!" 31 && exit 1
Geo_v=$(date +"%Y%m%d")
setconfig Geo_v $Geo_v
@@ -1499,7 +1513,7 @@ bfstart(){ #启动前
[ ! -s ${BINDIR}/ui/index.html ] && makehtml #如没有面板则创建跳转界面
catpac #生成pac文件
#内核及内核配置文件检查
[ ! -x ${BINDIR}/CrashCore ] && chmod +x ${BINDIR}/CrashCore #检测可执行权限
[ ! -x ${BINDIR}/CrashCore ] && chmod +x ${BINDIR}/CrashCore 2>/dev/null #检测可执行权限
if [ "$crashcore" = singbox ];then
singbox_check
[ "$disoverride" != "1" ] && modify_json || ln -sf $core_config ${TMPDIR}/config.json
@@ -1617,7 +1631,7 @@ start_old(){ #保守模式
#使用传统后台执行二进制文件的方式执行
if [ "$local_proxy" = "已开启" -a -n "$(echo $local_type | grep '增强模式')" ];then
if ckcmd su;then
su shellcrash -c "$COMMAND" >/dev/null &
su shellcrash -c "$COMMAND &>/dev/null" &
else
logger "当前设备缺少su命令保守模式下无法兼容本机代理增强模式已停止启动" 31
exit 1