高通平台wifi命令行调试
1. 进入命令行窗口,#adb shell
2. #su 命令获取root权限
3. #lsmod 命令来查看wlan.ko是否加载
如果没有加载,运行 #insmod /system/lib/modules/wlan.ko
重新查看 #lsmod,如下显示表示加载成功:
root@msm8974:/ # lsmod
lsmod
Module Size Used by
wlan 4197051 0
4. copy文件wpa_supplicant.conf到/data/misc/wifi,以便测试
#cp /system/etc/wifi/wpa_supplicant.conf /data/misc/wifi/
5. 更改文件wpa_supplicant.conf的ownership,以允许读(root:root->system:wifi)
#chown system:wifi /data/misc/wifi/wpa_supplicant.conf
6. Enable wpa_supplicant
#wpa_supplicant -iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf -O/data/misc/wifi/sockets -ddd &
使用‘ps’命令查看wpa_supplicant是否enable成功,ps wpa_supplicant,如下显示表示enable成功:
root@msm8974:/ # ps wpa_supplicant
ps wpa_supplicant
USER PID PPID VSIZE RSS WCHAN PC NAME
wifi 19184 1 7772 2884 poll_sched b6e35b54 S wpa_supplicant
7. 执行wpa_cli命令用于scan和连接网络
#wpa_cli -i wlan0 -p /data/misc/wifi/sockets
127|root@msm8974:/ # wpa_cli -i wlan0 -p /data/misc/wifi/sockets
wpa_cli -i wlan0 -p /data/misc/wifi/sockets
wpa_cli v2.5-devel-6.0.1
Copyright (c) 2004-2015, Jouni Malinen <j@w1.fi> and contributors
This software may be distributed under the terms of the BSD license.
See README for more details.
Interactive mode
8. 使用wpa_cli中的scan命令来搜索附近的APs
#scan
> scan
scan
OK
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=3 BSSID=00:00:00:00:00:00 SSID=
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>CTRL-EVENT-STATE-CHANGE id=-1 state=0 BSSID=00:00:00:00:00:00 SSID=
查看搜索的结果
#scan_results
> scan_results
scan_results
bssid / frequency / signal level / flags / ssid
5c:93:a2:fd:1b:9f 2462 -77 [WPA2-PSK-CCMP][ESS] XXX
bc:85:56:c1:9e:fa 2462 -90 [WPA2-PSK-CCMP][ESS] TP-LINK_MSUI
18:64:72:54:81:11 5300 -74 [WPA2-EAP-CCMP][ESS] XXX
9. adb pull /data/misc/wifi/wpa_supplicant.conf and add the AP profile for association testing change ctrl_interface parameter to /data/misc/wifi
#exit
#exit
#adb pull /data/misc/wifi/wpa_supplicant.conf .
add:
ctrl_interface=/data/misc/wifi/sockets
// For AP without security, add
network={
# The ssid of the AP is AP_WITHOUT_SECURITY
ssid="AP_WITHOUT_SECURITY"
key_mgmt=NONE
}
// For AP using WEP security with passphrase 1234567890 and key index 1, add
network={
ssid="AP_WEP_SECURITY"
key_mgmt=NONE
auth_alg=OPEN SHARED
wep_key0=1234567890
}
//For AP using WPA-PSK/WPA2-PSK mixed mode, add
network={
ssid="CH5_OPEN_TEST"
key_mgmt=WPA-PSK
psk="1234567890"
}
10. adb push wpa_supplicant.conf back to /data/misc/wifi with new settings and enforce wpa_supplicant to read new configuration setting by executing "reconfigure" command in wpa_cli
#adb push ./wpa_supplicant.conf /data/misc/wifi
#adb shell
#su
#reconfigure
11. wpa_supplicant would trigger auto connection to the APs set in wpa_supplicant.conf12. Suppose the AP's IP address is 192.168.0.1, set the DUT's IP address to same network like 192.168.0.100
#ifconfig wlan0 192.168.0.100
13. Ping AP's address
#ping 192.168.0.1
14. When test is done, remove temporarily created /data/misc/wifi/wpa_supplicant.conf
#rm /data/misc/wifi/wpa_supplicant.conf
其它厂商的进入交互模式后和高通一样,没什么差异。
wpa_cli三星平台
连接wpa工具,进入配置wlan0接口的配置交互模式
wpa_cli -i wlan0 -p /data/misc/wifi/sockets
交互模式下常用命令如下:
查看当前网络接口信息
list_network
扫描其能探测到的wifi信号
scan
显示探测到的wifi连接结果,
scan_results
按如下格式显示bssid / frequency / signal level / flags / ssid
添加网络接口
> add_network
1
设置其ssid
> set_network 1 ssid "you ssid"
OK
设置其加密方式>set_network 1 psk "your pre-shared key"
使能该网络
enable_network 1
保存网络配置
save_config
以上命令可以不进入交互模式,在终端下敲入:wpa_cli -i wlan0 -p /data/misc/wifi/sockets list_networks
wpa_cli -i wlan0 -p /data/misc/wifi/sockets add_network
wpa_cli -i wlan0 -p /data/misc/wifi/sockets set_network 0 ssid '"XXX"'
wpa_cli -i wlan0 -p /data/misc/wifi/sockets set_network 0 key_mgmt WPA-PSK
wpa_cli -i wlan0 -p /data/misc/wifi/sockets set_network 0 psk '"XXXX"'
wpa_cli -i wlan0 -p /data/misc/wifi/sockets enable_network 0
wpa_cli -i wlan0 -p /data/misc/wifi/sockets save_config
对于无密码的ssid其key_mgmt的设置如下:
set_network 0 key_mgmt NONE
以上的命令都在修改wpa_supplicant.conf 文件的内容,另外还有一个比较有用的命令来查看网络的状态,status。
2断开android启动wifi相关服务,手动启动wpa_supplicant工具
svc wifi disable
wpa_supplicant -Dwext -iwlan0 -c /data/misc/wifi/wpa_supplicant.conf -O /data/misc/wifi/sockets -e /data/misc/wifi/entropy.bin -B
wpa_cli -i wlan0 -p /data/misc/wifi/sockets
在静态IP设置时,为了防止dhcp刷掉配置的静态ip等,可能会使用该命令。
3san_result的意义
> scan_results
bssid / frequency / signal level / flags / ssid
a4:6c:2a:63:38:5f 5745 -44 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
ac:e0:10:0f:6b:41 2422 -48 [WPA2-PSK-CCMP][ESS] Bruce
18:8b:9d:91:51:2f 5260 -71 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
18:8b:9d:91:53:7f 5220 -72 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
dc:eb:94:22:17:f0 2447 -68 [WPA2-PSK-CCMP][ESS] ROKID-SHOW
18:8b:9d:6a:fe:1f 5180 -79 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
18:8b:9d:91:51:20 2447 -70 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]dc:eb:94:38:0d:30 5825 -81 [WPA2-PSK-CCMP][ESS] ROKID-SHOW
18:8b:9d:90:3b:0f 5320 -81 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
b0:7d:47:63:d4:90 5805 -83 [WPA2-PSK-CCMP][ESS] ROKID-SHOW
18:8b:9d:6a:fe:10 2447 -74 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
b0:7d:47:61:d4:90 2447 -81 [WPA2-PSK-CCMP][ESS] ROKID-SHOW
a4:6c:2a:63:3a:00 2472 -82 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP-preauth][ESS]
04:18:d6:b4:82:e0 2437 -87 [WPA-PSK-CCMP][WPA2-PSK-CCMP]
78:1d:ba:33:55:86 2417 -65 [WPS][ESS] WirelessNet
天线厂会进行无源和有源测试,无源测试使用网络分析仪分析天线的频率-增益关系;有源测试测试系统的发射衰减和接收灵敏度,上面的负数就是探测到的信号的灵敏度,单位是dbm,需要注意的是探测到并不等于可以使用,这牵涉到丢包率,即通信的可靠性问题。一般天线厂在微波暗室里会测出一组数据,其中TIS就是指接收灵敏度,scan_results显示的值大于TIS值才能保证可靠的通信,TRP是强发命令,通常在3C等认证中会使用到,好的天线的衰减一般在3db以内,强发测试通常是固件厂商提供的测试固件和测试命令。这个在传导测试时也会使用到,并且天线有源测试结果需要传导测试的结果才能分析出正确的结果。