ARTICLE · 1116349
解决WiFi状态下APP首启动页面加载缓慢

#!/system/bin/sh
# ========== 配置区 ==========
# 目标 WiFi 昵称的关键词,用空格分隔。匹配到就禁用 IPv6
TARGET_KEYWORDS="这里填你自己的WiFi昵称的关键词"
# ============================
# 等待系统启动完成
until [ "$(getprop sys.boot_completed)" = "1" ]; do
sleep 2
done
sleep 5
# 状态记忆,避免频繁修改
last_state="unknown"
# 后台循环监控,每 10 秒检查一次
(
while true; do
current_ssid=""
# 获取当前 WiFi 昵称
if command -v cmd >/dev/null 2>&1; then
current_ssid=$(cmd wifi status 2>/dev/null | grep -o 'SSID: "[^"]*"' | head -n 1 | cut -d'"' -f2)
fi
# 兼容旧版本 Android
if [ -z "$current_ssid" ]; then
current_ssid=$(dumpsys wifi 2>/dev/null | grep -m 1 "SSID:" | awk -F'"' '{print $2}')
fi
is_target=false
if [ -n "$current_ssid" ]; then
for kw in $TARGET_KEYWORDS; do
case "$current_ssid" in
*"$kw"*) is_target=true; break ;;
esac
done
fi
if [ "$is_target" = true ]; then
if [ "$last_state" != "disabled" ]; then
sysctl -w net.ipv6.conf.all.disable_ipv6=1 >/dev/null 2>&1
for iface in wlan0 wlan1 wlan2; do
sysctl -w net.ipv6.conf.$iface.disable_ipv6=1 >/dev/null 2>&1
done
last_state="disabled"
fi
else
if [ "$last_state" != "enabled" ]; then
sysctl -w net.ipv6.conf.all.disable_ipv6=0 >/dev/null 2>&1
for iface in wlan0 wlan1 wlan2; do
sysctl -w net.ipv6.conf.$iface.disable_ipv6=0 >/dev/null 2>&1
done
last_state="enabled"
fi
fi
sleep 10
done
) &


