記錄一下Android擷取國家碼的方式
Wifi 國家碼擷取途徑
1.DefaultCountryTablefield in WCNSS_qcom_wlan_nv.bin-read during driver initialization
nv中預設有設定國家碼
2.gStaCountryCodeparameter in WCNSS_qcom_cfg.ini –read during driver initialization to replace default country code in WCNSS_qcom_wlan_nv.bin
配置檔案gStaCountryCodeparameter設定國家碼,用于覆寫nv中的國家碼
3.Country IE from AP defined by 802.11d –information given by AP
使能802.11d功能,通過AP來擷取國家碼,g11dSupportEnabled用來打開這個功能。
4.“iw reg set” command –set from userspaceapplication over cfg80211 interface
使用者空間通過指令設定國家碼
5.Private IOCTL with “COUNTRY” command –set from userspaceapplication over wextinterface
使用者空間通過ioctl設定國家碼,例如wpa_cli -iwlan DRIVER COUNTRY US.
gCountryCodePriority設定國家碼擷取的優先級
1 –Country Code information from userspacecommands takes priority
userspacecommands > 802.11d > gStaCountryCodein WCNSS_qcom_cfg.ini > DefaultCountryTablein WCNSS_qcom_wlan_nv.bin
預設是0:
0 –Country Code information from 802.11d takes priority
802.11d > userspacecommands > gStaCountryCodein WCNSS_qcom_cfg.ini > DefaultCountryTablein WCNSS_qcom_wlan_nv.bin
通過AP擷取國家碼:
g11dSupportEnabled=1使能,然後如果周圍有多個AP,包含不同的國家碼,根據接收到的Beacon幀(被動掃描),進行投票,設定成票數最多的國家碼。
但是我檢視的話,好多情況下,隻是更具了解的AP來設定國家碼。
gEnableBypass11d=1,會進行主動掃描,擷取國家碼,這樣速率會快些。
通過SIM卡擷取國家碼是最可靠的途徑。
LiuTao
2018-11-15