查看wifi log从打开wifi开始,涉及到的文件packages/apps/Settings下面的WifiSettings.java,WifiEnabler.java。frameworks/base下面的WifiManager.java, WifiService.java,WifiSateMachine.java。external/wpa_supplicant8下面的wpa_supplicant.c。
其中WifiSettings.java对应wifi扫描的界面,switch on/off没有对应的log。WifiEnabler.java,WifiManager.java没有对应的log。
真正看wifi是否打开可以搜索关键字WifiService,可以看到setWifiEnabled: true/false,见hero2 log
更全面的log可以看WifiStateMachine,底层调用搜索关键字wpa_supplicant.
接着总结如何看WifiStateMachine.log。在高通平台Android 5.0中WifiStateMachine打印的log比较少,主要有
1 Invoking mWifiStateMachine.setWifiEnabled(true)
2 CMD_AUTO_CONNECT
3 WifiStateMachine CMD_START_SCAN(连接AP的时候扫描其他AP)
4 Invoking mWifiStateMachine.setWifiEnabled(false)
5 Leaving Connected State
接着来看更加详细的wpa_supplicant.log。
1 CTRL_IFACE:ENABLE_NETWORK id=0(选择需要连接的AP)
2 SCANNING-->ASSOCIATING-->ASSOCIATED Trying to associate with SSID 'PHONE-WIFI2', Associated on 2437MHz 连接AP
3 ASSOCIATED-->4WAY_HANDSHAKE 高通log中4次握手不明显,没有MTK log中的1/4,2/4.3/4.4/4。
4 4WAY_HANDSHAKE-->GROUP_HANDSHAKE-->COMPLETED 生成key,跟MTK log相比没有出现PTK,GTK等关键词
wpa_supplicant有9种状态DISCONNECTED-->SCANNING-->ASSOCIATING-->ASSOCIATED-->4WAY_HANDSHAKE-->GROUP_HANDSHAKE-->COMPLETED-->DISCONNECTED。
有Saved的AP时初始状态为DISCONNECTED,没有Saved的AP时初始状态为INACTIVE,且在INACTIVE和SCANNING状态之间来回切换。
另外查看wifi log时可以搜索SSID得到路由器的MAC地址,进而得到wifi正在使用的频率,或者直接搜索关键字frenqucy。