macOS Wi-Fi 的 Country Code

2023-12-24 21:13:21

无线接入点(Access Point)使用 802.11d 协议向外广播自己的监管域(Regulation Domain)信息。客户端设备可以基于周边 SSID 信标的监管域信息来“学习”监管域,调整合法的 Wi-Fi 频段列表和传输功率以适应当地的无线电法律法规。

不同监管域的频段和传输功率限制不同,其中最为自由的是澳大利亚(AU)和美国(US)。macOS 会基于 802.11d 协议确定自己的所属监管域,只扫描合法的 Wi-Fi 信道,导致设备无法连接特定 AP。

要查看当前 SSID 的详细信息,按住 option 键并单击 Menu Bar 的 Wi-Fi 图标。

要查看周围所有 SSID 的详细信息,需要通过 airport 工具。为了获取 Country Code 和 BSSID,必须使用 root 权限执行扫描。

1
2
3
4
5
# 创建符号链接以方便后续使用
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

# 扫描 SSID
sudo airport -s

根据网上贴文,将 Security & Privacy - Location Services - System Services - Networking & Services 取消勾选,并重启,即可避免 macOS 被锁定至某个监管域。

经过测试,此方法可以避免 macOS 基于 Wi-Fi 和 BLE 信息来获取当前设备经纬度,锁在设备物理位置所处的监管域。但似乎 macOS 仍然会根据初次扫描的结果来决定一个监管域。

Prev
2023-12-24 21:13:21
Next