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

Android wpa_cli 调试方法(adb shell 命令)_第1张图片

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 & 出现如下

Android wpa_cli 调试方法(adb shell 命令)_第2张图片

所以就输入:Android wpa_cli 调试方法(adb shell 命令)_第3张图片

执行完命令后:确保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/         

Android wpa_cli 调试方法(adb shell 命令)_第4张图片

 

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可以看到扫描结果,如下图。
Android wpa_cli 调试方法(adb shell 命令)_第5张图片

 

 


<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

Android wpa_cli 调试方法(adb shell 命令)_第6张图片

> 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来完成,这里就不说了。

Android wpa_cli 调试方法(adb shell 命令)_第7张图片

 

顺利ping通外网

Android wpa_cli 调试方法(adb shell 命令)_第8张图片

你可能感兴趣的:(android)