openwrt_helloworld/mihomo/files/uci-defaults/migrate.sh
gitea-action 06966e8dda mihomo: sync upstream
last commit: 4ded7ed147
2025-02-02 15:30:23 +08:00

109 lines
3.8 KiB
Bash

#!/bin/sh
. "$IPKG_INSTROOT/etc/mihomo/scripts/include.sh"
# since v1.8.4
dns_doh_prefer_http3=$(uci -q get mihomo.mixin.dns_doh_prefer_http3); [ -z "$dns_doh_prefer_http3" ] && uci set mihomo.mixin.dns_doh_prefer_http3=0
# since v1.8.7
mixin_file_content=$(uci -q get mihomo.mixin.mixin_file_content); [ -z "$mixin_file_content" ] && uci set mihomo.mixin.mixin_file_content=$(uci -q get mihomo.config.mixin)
# since v1.9.3
start_delay=$(uci -q get mihomo.config.start_delay); [ -z "$start_delay" ] && uci set mihomo.config.start_delay=0
# since v1.11.0
acl_tcp_dport=$(uci -q get mihomo.proxy.acl_tcp_dport); [ -n "$acl_tcp_dport" ] && uci rename mihomo.proxy.acl_tcp_dport=proxy_tcp_dport
acl_udp_dport=$(uci -q get mihomo.proxy.acl_udp_dport); [ -n "$acl_udp_dport" ] && uci rename mihomo.proxy.acl_udp_dport=proxy_udp_dport
bypass_user=$(uci -q get mihomo.proxy.bypass_user); [ -z "$bypass_user" ] && {
uci add_list mihomo.proxy.bypass_user=aria2
uci add_list mihomo.proxy.bypass_user=dnsmasq
uci add_list mihomo.proxy.bypass_user=ftp
uci add_list mihomo.proxy.bypass_user=logd
uci add_list mihomo.proxy.bypass_user=nobody
uci add_list mihomo.proxy.bypass_user=ntp
uci add_list mihomo.proxy.bypass_user=ubus
}
bypass_group=$(uci -q get mihomo.proxy.bypass_group); [ -z "$bypass_group" ] && {
uci add_list mihomo.proxy.bypass_group=aria2
uci add_list mihomo.proxy.bypass_group=dnsmasq
uci add_list mihomo.proxy.bypass_group=ftp
uci add_list mihomo.proxy.bypass_group=logd
uci add_list mihomo.proxy.bypass_group=nogroup
uci add_list mihomo.proxy.bypass_group=ntp
uci add_list mihomo.proxy.bypass_group=ubus
}
# since v1.12.0
env=$(uci -q get mihomo.env); [ -z "$env" ] && {
uci set mihomo.env=env
uci set mihomo.env.disable_safe_path_check=0
uci set mihomo.env.disable_loopback_detector=0
uci set mihomo.env.disable_quic_go_gso=0
uci set mihomo.env.disable_quic_go_ecn=0
}
# since v1.15.0
tun_device=$(uci -q get mihomo.mixin.tun_device); [ -z "$tun_device" ] && uci set mihomo.mixin.tun_device=mihomo
# since v1.16.0
unify_delay=$(uci -q get mihomo.mixin.unify_delay); [ -z "$unify_delay" ] && uci set mihomo.mixin.unify_delay=1
tcp_concurrent=$(uci -q get mihomo.mixin.tcp_concurrent); [ -z "$tcp_concurrent" ] && uci set mihomo.mixin.tcp_concurrent=1
sniffer=$(uci -q get mihomo.mixin.sniffer); [ -z "$sniffer" ] && {
uci set mihomo.mixin.sniffer=0
uci set mihomo.mixin.sniffer_sniff_dns_mapping=1
uci set mihomo.mixin.sniffer_sniff_pure_ip=1
uci set mihomo.mixin.sniffer_overwrite_destination=0
uci set mihomo.mixin.sniffer_force_domain_name=0
uci set mihomo.mixin.sniffer_ignore_domain_name=0
uci set mihomo.mixin.sniffer_sniff=0
uci add mihomo sniff
uci set mihomo.@sniff[-1].enabled=1
uci set mihomo.@sniff[-1].protocol=HTTP
uci add_list mihomo.@sniff[-1].port=80
uci add_list mihomo.@sniff[-1].port=8080
uci set mihomo.@sniff[-1].overwrite_destination=1
uci add mihomo sniff
uci set mihomo.@sniff[-1].enabled=1
uci set mihomo.@sniff[-1].protocol=TLS
uci add_list mihomo.@sniff[-1].port=443
uci add_list mihomo.@sniff[-1].port=8443
uci set mihomo.@sniff[-1].overwrite_destination=1
uci add mihomo sniff
uci set mihomo.@sniff[-1].enabled=1
uci set mihomo.@sniff[-1].protocol=QUIC
uci add_list mihomo.@sniff[-1].port=443
uci add_list mihomo.@sniff[-1].port=8443
uci set mihomo.@sniff[-1].overwrite_destination=1
}
uci show mihomo | grep -E 'mihomo.@host\[[[:digit:]]+\]=host' | sed 's/mihomo.@host\[\([[:digit:]]\+\)\]=host/set mihomo.@host[\1]=hosts/' | uci batch
# since v1.17.5
tun_dns_hijack=$(uci -q get mihomo.mixin.tun_dns_hijack); [ -z "$tun_dns_hijack" ] && {
uci set mihomo.mixin.tun_dns_hijack=0
uci add_list mihomo.mixin.tun_dns_hijacks=tcp://any:53
uci add_list mihomo.mixin.tun_dns_hijacks=udp://any:53
}
# commit
uci commit mihomo
# exit with 0
exit 0