利用wpa_cli工具除錯wifi
阿新 • • 發佈:2018-11-23
利用wpa_cli工具除錯wifi
‘’‘---------------以下在4.4的android上除錯是OK的-----------------’‘’
insmod /system/lib/modules/ittiam.ko
wpa_supplicant -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -dd
另外的視窗:
wpa_cli -iwlan0 -p/data/misc/wifi/sockets
scan 能看到有回覆;
scan_results 能看到搜到的AP熱點, 之後可以配置一個沒有密碼的熱點 AAAA
remove_network all
add_network
set_network 0 ssid "AAAA"
set_network 0 key_mgmt NONE
select_network 0 這時候會去連結AP
status 如果成功可以通過status檢視到 狀態是 connect
補充:
當連線加密熱點時,add_network後面如下執行即可:
set_network 0 ssid "AP_TJ_FAE_5F23"
set_network 0 key_mgmt WPA-PSK
set_network 0 psk “faewifi2014”
select_network 0 這時候會去連結AP
status 如果成功可以通過status檢視到 狀態是 connect
4.4平臺,global方式啟動 啟動wpa_supplicant: wpa_supplicant -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -dd -g/data/misc/wifi/sockets/global 啟動wpa_cli: wpa_cli -iglobal -p/data/misc/wifi/sockets 發命令: IFNAME=wlan0 SCAN 四個socket: wpa_wlan0: 這個是在每次android起wpa_supplicant 服務時啟動,init.board.rc 裡建立的; 在4.4以前平臺,非global起supplicant的話,直接走wpa_supplicant_ctl_iface_init ,判斷是否有wpa_wlan0的socket(正常init.board.rc都會建立了此socket),於是註冊此socket的接受處理函式為: wpa_supplicant_ctrl_iface_receive 在4.4平臺上, 1)是以globla方式啟動supplicant,先走wpa_supplicant_global_ctl_iface_init , 判斷是否有wpa_wlan0的socket(正常init.board.rc都會建立了此socket),於是註冊此socket的接受處理函式為:wpa_supplicant_global_ctrl_iface_receive. 2)緊接著,這裡還會從wpa_supplicant_add_iface -》wpa_supplicant_init_iface -》wpa_supplicant_ctl_iface_init 這裡面會根據conf檔案裡配置的ctrl_interface,先同樣判斷是否存在此socket,不存在則根據此ctrl_interface+fname,建立socket 即為:wpa_supplicant_ctrl_iface_init before bind path=/data/misc/wifi/sockets/wlan0 fname為‘wlan0’ ,來自啟動wpa_supplicant 時傳進來的引數 -iwlan0 ctrl_interface來自conf配置檔案, 4.4平臺conf檔案裡的ctrl_interface[email protected]_sp8830ec:/ # cat data/misc/wifi/wpa_supplicant.conf ctrl_interface=DIR=/data/misc/wifi/sockets update_config=1 shark235平臺conf檔案裡的ctrl_interface # cat wpa_supplicant.conf ctrl_interface=wlan0 update_config=1 eapol_version=1 wpa_cli IFNAME=wlan0 DRIVER COUNTRY MY //6.0上可用這條命令 wpa_cli[email protected]:wpa_wlan0 IFNAME=wlan0 SET country US //7.0上需用這條命令才行,這是global方式 wpa_cli -iwpa_wlan0 -p/dev/socket SET country US //7.0上需用這條命令才行,這是非global方式