让 Nintendo Switch 2 连上手机 5GHz 热点(Android Root 教程)
当你用手机热点给 NS2 联网时,明明开了 5GHz,NS2 却完全搜不到?这是因为 Android 手机在中国地区码(CN)下会大概率自动选择 NS2 不支持的信道,导致热点对 NS2 不可见。本教程通过修改地区码和热点配置文件彻底解决这个问题。
NS1可以修改系统参数改变地区来实现
前置条件
✅ 手机已 Root(Magisk 或 APatch 均可)
✅ 已安装 Termux
✅ 本教程在 ColorOS 14 上验证,其他系统参考第二步的通用方法
问题根源
NS2 的 5GHz WiFi 只支持 UNII-1 频段的信道(36、40、44、48),不支持 DFS 信道(100以上)。Android 手机在 CN 地区码下热点自动选择的信道 NS2 完全搜不到,需要:
① 将 WiFi 地区码改为 TW(台湾),解锁信道 36
② 修改热点配置文件,将信道固定为 36
两个条件缺一不可(应该是,可自行测试)。
嫌麻烦直接用下面的命令,可直接用
临时方案(不重启也能用):
su -c "cmd wifi force-country-code enabled TW"
cmd wifi start-softap "ns2wifi5G" wpa2 "passwdpasswd" -b 5 -f 5180
第一步:用开机脚本自动设置地区码
系统每次重启后地区码会恢复默认值,需要写一个开机脚本让它自动设为 TW。Magisk 和 APatch 的 service.d 目录相同,以下命令通用。
在 Termux 中执行
重要:先执行以下命令关闭 bash 历史扩展,否则脚本中的 ! 字符会报错:
set +H
然后写入开机脚本:
su -c "printf '#!/system/bin/sh\necho \"boot $(date)\" > /data/local/tmp/hotspot.log\nsleep 60\nRESULT=$(cmd wifi get-country-code 2>&1)\nif echo \"$RESULT\" | grep -q Country; then\n cmd wifi force-country-code enabled TW\n echo \"TW set ok\" >> /data/local/tmp/hotspot.log\nfi\n' > /data/adb/service.d/hotspot_tw.sh && chmod +x /data/adb/service.d/hotspot_tw.sh"
验证脚本第一行是否正确(应输出 #!/system/bin/sh):
su -c "head -1 /data/adb/service.d/hotspot_tw.sh"
重启手机,等约 1 -5分钟后验证地区码是否生效:
su -c "cmd wifi get-country-code"
# 期望输出:Wifi Country Code = TW
su -c "cat /data/local/tmp/hotspot.log"
# 看到 "TW set ok" 说明脚本正常运行
第二步:修改热点配置文件固定信道(ColorOS 14)
ColorOS 14 (或许ColorOS都通用)的热点配置文件路径:
/data/misc/apexdata/com.android.wifi/WifiConfigStoreSoftAp.xml
用 MT 管理器或以下命令查看当前内容,找到这段:
<BandChannelMap>
<BandChannel>
<int name="Band" value="2" />
<int name="Channel" value="0" /> <!-- 0 = 自动,需要改掉 -->
</BandChannel>
</BandChannelMap>
将 Channel 的值从 0 改为 36:
<BandChannelMap>
<BandChannel>
<int name="Band" value="2" />
<int name="Channel" value="36" /> <!-- 固定信道 36,NS2 支持 -->
</BandChannel>
</BandChannelMap>
注意:NS2 支持 WiFi 6,无需关闭 80211axEnabled,保持原值即可(我测试时候关闭了,其实应该不用)。
替换文件并修正权限,我这提供的是ColorOS 14的文件,其他系统不通用!!!
注意删除后缀.txt(蓝奏不让上传.xml格式)https://wwbtb.lanzout.com/iwD8g3pcd24f密码:sanjin
将修改好的文件传到手机后执行,假设.xml下载到Download文件夹中,如果复制后发现权限是rw就不用执行chmod 600:
su -c "cp /sdcard/Download/WifiConfigStoreSoftAp.xml /data/misc/apexdata/com.android.wifi/WifiConfigStoreSoftAp.xml"
su -c "chmod 600 /data/misc/apexdata/com.android.wifi/WifiConfigStoreSoftAp.xml"
su -c "chown system:system /data/misc/apexdata/com.android.wifi/WifiConfigStoreSoftAp.xml"
⚠️ 注意:在设置里修改热点的任意选项(SSID、密码等)后,系统会覆盖此文件,需要重新替换一次。建议先在设置里配好热点,再执行替换。
重启手机生效。
第二步(其他系统):通用查找方法
如果不是 ColorOS,用以下命令查找热点配置文件,找到后测试成功可在下方评论区留言:
# 搜索 SoftAp 配置文件
su -c "find /data -name 'WifiConfigStoreSoftAp*' 2>/dev/null"
# 搜索所有 softap 相关文件
su -c "find /data -name '*softap*' 2>/dev/null"
# 旧版 Android(11以下)查找 hostapd 配置
su -c "find /data/misc/wifi -name 'hostapd*'"
找到文件后,搜索 Channel 字段,将值改为 36 即可。旧版 hostapd.conf 格式如下:
channel=36
hw_mode=a
第三步:验证是否生效
重启后,开启热点后,在 Termux 执行:
su -c "dumpsys wifi | grep -E 'freq|SoftApInfo|mSoftApCountryCode'"
期望看到的信息,或者直接在ns2上面看信道信息:
mSoftApCountryCode: TW
frequency= 5180 ← 信道 36
bandwidth= 3 ← 80MHz,正常
NS2 连上热点后,在 NS2 上查看:设置 → 网络 → 网络设置 → 已连接网络 → 状态信息,频率显示 5180 MHz 即确认成功。
NS2 支持的 5GHz 信道参考
✅ 信道 36(5180 MHz)— 推荐,干扰少
✅ 信道 40(5200 MHz)
✅ 信道 44(5220 MHz)
✅ 信道 48(5240 MHz)
⚠️ 信道 52~64 — 部分支持,DFS 信道,部分情况不稳定
❌ 信道 100 以上 — 不支持
故障排查
重启后地区码变回 CN:检查脚本第一行是否为 #!/system/bin/sh,查看 /data/local/tmp/hotspot.log 日志
xml 替换后无效:系统从内存读取了旧配置,替换后需重启手机
改完热点设置后又失效:系统覆盖了 xml,重新替换一次即可
NS2 看到热点但连不上:确认热点使用 WPA2 加密,避免仅 WPA3
临时方案(不重启也能用):
su -c "cmd wifi force-country-code enabled TW"
cmd wifi start-softap "ns2wifi5G" wpa2 "passwdpasswd" -b 5 -f 5180
如果你是其他系统(MIUI、One UI 等),欢迎测试后留言补充路径和结果,帮助更多人🎉
Comments NOTHING