让 Nintendo Switch 2 NS2 连上手机 5GHz 热点(Android Root 教程)

zsanjin 发布于 21 天前 82 次阅读


让 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 等),欢迎测试后留言补充路径和结果,帮助更多人🎉

感谢请我吃辣条
感谢请我吃泡面
感谢请我喝奶茶