~修复小闪存模式更新内核失败的bug

~修复部分情况下本机代理导致dns失效的bug
~增加Mihomo内核direct-nameserver默认配置
This commit is contained in:
juewuy
2026-01-20 21:51:57 +08:00
parent 4f9ffbb7d7
commit de7b57330e
4 changed files with 11 additions and 16 deletions

View File

@@ -40,17 +40,12 @@ core_check(){
COMMAND='"$TMPDIR/CrashCore -d $BINDIR -f $TMPDIR/config.yaml"' COMMAND='"$TMPDIR/CrashCore -d $BINDIR -f $TMPDIR/config.yaml"'
fi fi
if [ -z "$v" ]; then if [ -z "$v" ]; then
rm -rf "$TMPDIR"/core_new rm -rf "$1" "$TMPDIR"/core_new
rm -rf "$1"
return 2 return 2
else else
rm -f "$BINDIR"/CrashCore.tar.gz "$BINDIR"/CrashCore.gz "$BINDIR"/CrashCore.upx rm -f "$BINDIR"/CrashCore.tar.gz "$BINDIR"/CrashCore.gz "$BINDIR"/CrashCore.upx
mv -f "$TMPDIR"/core_new "$TMPDIR"/CrashCore mv -f "$TMPDIR/Coretmp.$zip_type" "$BINDIR/CrashCore.$zip_type"
if [ -f "$1" ];then mv -f "$TMPDIR/core_new" "$TMPDIR/CrashCore"
mv -f "$1" "$BINDIR/CrashCore.${zip_type}"
else
gzip -c "$TMPDIR"/CrashCore > "$BINDIR"/CrashCore.gz
fi
core_v="$v" core_v="$v"
setconfig COMMAND "$COMMAND" "$CRASHDIR"/configs/command.env && . "$CRASHDIR"/configs/command.env setconfig COMMAND "$COMMAND" "$CRASHDIR"/configs/command.env && . "$CRASHDIR"/configs/command.env
setconfig crashcore "$crashcore" setconfig crashcore "$crashcore"
@@ -64,17 +59,17 @@ core_webget(){
. "$CRASHDIR"/libs/check_target.sh . "$CRASHDIR"/libs/check_target.sh
if [ -z "$custcorelink" ];then if [ -z "$custcorelink" ];then
[ -z "$zip_type" ] && zip_type='tar.gz' [ -z "$zip_type" ] && zip_type='tar.gz'
get_bin "$TMPDIR/CrashCore.${zip_type}" "bin/$crashcore/${target}-linux-${cpucore}.${zip_type}" get_bin "$TMPDIR/Coretmp.$zip_type" "bin/$crashcore/${target}-linux-${cpucore}.$zip_type"
else else
zip_type=$(echo "$custcorelink" | grep -oE 'tar.gz$') zip_type=$(echo "$custcorelink" | grep -oE 'tar.gz$')
[ -z "$zip_type" ] && zip_type=$(echo "$custcorelink" | grep -oE 'gz$') [ -z "$zip_type" ] && zip_type=$(echo "$custcorelink" | grep -oE 'gz$')
[ -n "$zip_type" ] && webget "$TMPDIR/CrashCore.${zip_type}" "$custcorelink" [ -n "$zip_type" ] && webget "$TMPDIR/Coretmp.$zip_type" "$custcorelink"
fi fi
#校验内核 #校验内核
if [ "$?" = 0 ];then if [ "$?" = 0 ];then
core_check "$TMPDIR/CrashCore.${zip_type}" core_check "$TMPDIR/Coretmp.$zip_type"
else else
rm -rf "$TMPDIR/CrashCore.${zip_type}" rm -rf "$TMPDIR/Coretmp.$zip_type"
return 1 return 1
fi fi
} }

View File

@@ -6,13 +6,12 @@
check_core() { #检查及下载内核文件 check_core() { #检查及下载内核文件
[ -n "$(find --help 2>&1 | grep -o size)" ] && find_para=' -size +2000' #find命令兼容 [ -n "$(find --help 2>&1 | grep -o size)" ] && find_para=' -size +2000' #find命令兼容
[ -z "$(find "$TMPDIR"/CrashCore $find_para 2>/dev/null)" ] && core_find [ -z "$(find "$TMPDIR"/CrashCore $find_para 2>/dev/null)" ] && core_find
[ -z "$(find "$TMPDIR"/CrashCore 2>/dev/null)" ] && { [ ! -f "$TMPDIR"/CrashCore ] && {
logger "未找到【$crashcore】核心,正在下载!" 33 logger "未找到【$crashcore】核心,正在下载!" 33
[ -z "$cpucore" ] && . "$CRASHDIR"/libs/check_cpucore.sh && check_cpucore [ -z "$cpucore" ] && . "$CRASHDIR"/libs/check_cpucore.sh && check_cpucore
[ -z "$cpucore" ] && logger 找不到设备的CPU信息请手动指定处理器架构类型 31 && exit 1 [ -z "$cpucore" ] && logger 找不到设备的CPU信息请手动指定处理器架构类型 31 && exit 1
core_webget || logger "核心下载失败,请重新运行或更换安装源!" 31 core_webget || logger "核心下载失败,请重新运行或更换安装源!" 31
} }
[ ! -x "$TMPDIR"/CrashCore ] && chmod +x "$TMPDIR"/CrashCore 2>/dev/null #自动授权 [ "$start_old" != "ON" ] && [ "$(cat /proc/1/comm)" = "systemd" ] && restorecon -RF "$CRASHDIR" 2>/dev/null #修复SELinux权限问题
[ "$start_old" != "ON" -a "$(cat /proc/1/comm)" = "systemd" ] && restorecon -RF "$CRASHDIR" 2>/dev/null #修复SELinux权限问题
return 0 return 0
} }

View File

@@ -36,6 +36,7 @@ dns:
use-hosts: true use-hosts: true
ipv6: $dns_v6 ipv6: $dns_v6
default-nameserver: [ $dns_resolver ] default-nameserver: [ $dns_resolver ]
direct-nameserver: [ $dns_nameserver ]
enhanced-mode: fake-ip enhanced-mode: fake-ip
fake-ip-range: 28.0.0.0/8 fake-ip-range: 28.0.0.0/8
fake-ip-range6: fc00::/16 fake-ip-range6: fc00::/16

View File

@@ -132,5 +132,5 @@ ckcmd nft && nft delete table inet shellcrash >/dev/null 2>&1
#还原防火墙文件 #还原防火墙文件
[ -s /etc/init.d/firewall.bak ] && mv -f /etc/init.d/firewall.bak /etc/init.d/firewall [ -s /etc/init.d/firewall.bak ] && mv -f /etc/init.d/firewall.bak /etc/init.d/firewall
#others #others
[ "$systype" != 'container' ] && sed -i '/shellcrash-dns-repair/d' /etc/resolv.conf >/dev/null 2>&1 sed -i '/shellcrash-dns-repair/d' /etc/resolv.conf 2>/dev/null