Android wpa_cli 調試方法(adb shell 命令)

svn wifi able / svn wif disable 關閉和打開wifi 

adb shell 和adb區別! 

常用的adb shell命令 :如果輸入命令無效'b,確認是不是在root目錄下!su切換

 

1. 打開wlan0
這個沒什麼好說的,ifconfig wlan0 up

2、啓動wpa_supplicant

命令如下:可以參考下自己init.xxx.rc是如何配置的,參數可能會不一樣。

wpa_supplicant –iwlan0 –Dnl80211 –c 配置文件 &

-i:指定網口;
-D:指定驅動類型;
-c:指定了wpa_supplicant的配置文件。

輸入:wpa_supplicant -d –iwlan0 –Dnl80211 –c/etc/wifi/wpa_supplicant.conf & 出現如下

所以就輸入:

執行完命令後:確保wpa_supplicant已經運行起來了,可以ps看下

 

 

2.啓動WPA_CLI

wpa_cli -i網口 -p socket所在路徑

例如像我剛纔那麼調用的話,則用下面命令啓動:

wpa_cli -iwlan0 -p /data/misc/wifi/sockets/

shell@n74001:/system/bin # wpa_cli -iwlan0 -p /data/misc/wifi/sockets/         

 

4、掃描ap

輸入scan命令

依次輸入紅色標註的命令

> scan
OK

<3>CTRL-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00 SSID=
<3>CTRL-EVENT-SCAN-RESULTS 
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=0 BSSID=00:00:00:00:00:00 SSID=
> 123456

wpa_supplicant有“CTRL-EVENT-SCAN-RESULTS ”的回覆,則可以輸入scan_results可以看到掃描結果,如下圖。

 

 


<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
> scan_results
bssid / frequency / signal level / flags / ssid
18:52:82:28:c3:1d       2467    -59     [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]      ChinaNet-Vz6E
14:75:90:f0:21:ec       2437    -56     [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]      Systemtec
fc:2f:ef:d8:99:68       2417    -77     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]    YTZQ01
a8:57:4e:5b:61:28       2437    -80     [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] hobartchina1811
fc:2f:ef:d8:99:69       2417    -77     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]    YTZQ02
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
> add_network
1

<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE       
<3>CTRL-EVENT-SCAN-STARTED      
> set_network 1 ssid "Systemtec"
OK

<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
> set_network 1 key_mgmt WPA-PSK
OK

<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE   
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE      
> set_network 1 psk "Net9400668600"
OK

<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
> set_network 1 pairwise CCMP
OK

<3>CTRL-EVENT-SCAN-STARTED                        
<3>CTRL-EVENT-SCAN-RESULTS                        
<3>WPS-AP-AVAILABLE              
> set_network 1 group CCMP       
OK

<3>CTRL-EVENT-SCAN-STARTED 
> set_network 1 proto WPA2
OK

<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 

<3>CTRL-EVENT-SCAN-STARTED 
<3>CTRL-EVENT-SCAN-RESULTS 
<3>WPS-AP-AVAILABLE 
>  enable_network 1
OK

<3>Trying to associate with 14:75:90:f0:21:ec (SSID='Systemtec' freq=2437 MHz)
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=5 BSSID=00:00:00:00:00:00 SSID=
<3>CTRL-EVENT-STATE-CHANGE id=1 state=6 BSSID=00:00:00:00:00:00 SSID=Systemtec
<3>Associated with 14:75:90:f0:21:ec
<3>CTRL-EVENT-STATE-CHANGE id=1 state=7 BSSID=14:75:90:f0:21:ec SSID=Systemtec
<3>CTRL-EVENT-STATE-CHANGE id=1 state=8 BSSID=14:75:90:f0:21:ec SSID=Systemtec
<3>WPA: Key negotiation completed with 14:75:90:f0:21:ec [PTK=CCMP GTK=CCMP]
<3>CTRL-EVENT-CONNECTED - Connection to 14:75:90:f0:21:ec completed [id=1 id_str=]
<3

> save
OK

步驟如下: 
(1)“add_network”,這裏返回網絡ID 爲 1。 
(2) 配置網絡的 SSID,執行 set_network 1 ssid AP 的 SSID。 
(3)配置網絡的加密方式和密碼。 
(4)啓動網絡,執行“enable_network 0”。 
(5)收到“CTRL-EVENT-CONNECTED”表示連接成功。

6、分配IP

此時已經連接上ap,dhcp分配一個IP即可。
輸入 q 退出 wpa_cli,執行命令:dhcpcd wlan0
此時已經可以ping通了,在Android系統裏,還需要設置DNS這些,在Android裏,這些流程會有netd來完成,這裏就不說了。

 

順利ping通外網

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章