wifi收集

网络工具
SRSniffer

Broadcom softmac WLAN 驱动解析(1)

Broadcom softmac WLAN 驱动解析(2)

空间流就是WIFI同步收发,目前厂商的WIFI设备收和发都是相等的,4X4就是4发4收

无线基础知识

Linux内核之mmc子系统-sdio

Android O

Android wifi打开流程(Android O)

/system/connectivity/wificond/ 最底层的扫描代码
(五十) Android O WiFi的扫描流程梳理
五十七)Android O WiFi的扫描流程梳理续——梳理java与c++之间的aidl-cpp通信
wifi收集_第1张图片
获取扫描结果:
(五十四)Android O WiFi 获取扫描结果流程梳理
Android O WiFi的扫描流程

1) Android O开始scan的命令不是通过wpa_supplicant下发到kernel,而是直接由wificond传送到kernel,而scan results的结果也是直接由kernel传给wificond,再由wificond传送给上层去显示
2) 在framework层,现在scan改由scanner这个类去使用,之前从6.0开始慢慢用起来,现在到了8.0,可以说已经用了近95%了,剩下了目前google还在修改中,google的目标应该是想把scan整个完全独立出来,不跟其他的扯太大,例如WifiStateMachine
3) 目前上层下发的scan,已经改由SettingsLib去定时下,不交给apk去做了。
在android 8.0之前的版本,scan的定时扫描都是在上层app做的,但从8.0开始,google把这个定时器改到了framework中的SettingsLib(frameworks/base/packages/SettingsLib)中去了
4) 之前的版本scan操作,当同一时间下两次scan时,是直接交由wpa_supplicant去隔开的,现在由于直接把scan下发给kernel。所以,google已经把上层下的scan跟framework的自动scan也实现了分离,不让这两种flow打到,让同一时间只下一次scan,后一次则做pending动作
wifi收集_第2张图片

上层发起一次scan命令->wifi进行各个信道的sacn->驱动包扫描结果存储在scanned_queue->扫面完成->通过cfg80211_inform_bss_width_frame-》cfg80211_bss_update加到dev->bss_list链表中(有的为cfg80211_inform_bss_frame)把扫描的ap结果通知内核net/wireless/scan.c->通过(cfg80211_scan_done)通知内核、上层扫描结束

android O以后密码存储位置发生了变化:
Android 8.0+查看wifi密码

android O以后为以下路径存储

/data/misc/wifi/WifiConfigStore.xml

wifi收集_第3张图片

wpa_supplicant中接收客户端的大多数命令的在wpa_supplicant_ctrl_iface_receive接收并解析:

external\wpa_supplicant_8\wpa_supplicant\ctrl_iface_unix.c

wifi收集_第4张图片
wifi收集_第5张图片

android O连接热点

07-28 09:52:20.522589   481   560 W WifiConfigManager: Looking up network with invalid networkId -1
07-28 09:52:20.527674   481   560 W WifiConfigManager: Looking up network with invalid networkId -1
07-28 09:52:20.528730   481   560 D WifiStateMachine: CMD_START_CONNECT sup state UninitializedState my state DisconnectedState nid=0 roam=false
07-28 09:52:20.531508   481   560 D SupplicantStaIfaceHal: connectToNetwork "TP_2.4_C2"WPA_PSK
07-28 09:52:20.532549   481   560 I SupplicantStaIfaceHal: addSupplicantStaNetwork via HIDL
07-28 09:52:20.533355   880   880 I wpa_supplicant: wlan0: zyk addNetworkInternal (535)++
07-28 09:52:20.533598   880   880 I wpa_supplicant: wlan0: zyk wpa_supplicant_add_network (2919)-->>
07-28 09:52:20.533652   880   880 I wpa_supplicant: wlan0: zyk addNetworkInternal (539)--
07-28 09:52:20.536551   252   396 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 09:52:20.542387   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 09:52:20.559794   252   396 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 09:52:20.580175   880   880 I wpa_supplicant: wlan0: wpa_supplicant_connect 1454 zhonyukang 
07-28 09:52:20.580277   880   880 E wpa_supplicant: wlan0: wpa_supplicant_associate 1839 zhonyukang 
07-28 09:52:20.580348   880   880 I wpa_supplicant: wlan0: sme_authenticate 711 zhonyukang 
07-28 09:52:20.580615   880   880 E wpa_supplicant: wlan0: sme_auth_start_cb 669 zhonyukang 
07-28 09:52:20.580917   880   880 I wpa_supplicant: wlan0: zhongyukang sSME: Trying to authenticate with b0:95:8e:6a:60:45 (SSID='TP_2.4_C2' freq=2412 MHz)
07-28 09:52:20.583207   252   396 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 09:52:20.584738   481   560 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 09:52:20.606433   252   396 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 09:52:20.610152   880   880 E wpa_supplicant: wlan0: wpa_supplicant_event 3741 zhonyukang 
07-28 09:52:20.610293   880   880 I wpa_supplicant: wlan0: Trying to associate with b0:95:8e:6a:60:45 (SSID='TP_2.4_C2' freq=2412 MHz)
07-28 09:52:20.612532   481   560 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 09:52:20.627753   880   880 I wpa_supplicant: wlan0: Associated with b0:95:8e:6a:60:45
07-28 09:52:20.627948   880   880 I wpa_supplicant: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
07-28 09:52:20.629888   252   396 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 09:52:20.634947   481   560 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 09:52:20.638974   481   560 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 09:52:20.653510   252   396 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 09:52:20.658995   481   560 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 09:52:20.670158   880   880 I wpa_supplicant: wlan0: WPA: Key negotiation completed with b0:95:8e:6a:60:45 [PTK=CCMP GTK=CCMP]

ConnectModeState状态的
CMD_START_CONNECT
-》frameworks\opt\net\wifi\service\java\com\android\server\wifi\WifiNative.java
wifi收集_第6张图片

mSupplicantStaIfaceHal.connectToNetwork(configuration);
\frameworks\opt\net\wifi\service\java\com\android\server\wifi\SupplicantStaIfaceHal.java

connectToNetwork-》addNetworkAndSaveConfig-》

wifi收集_第7张图片
addNetwork-》addNetworkInternal-》wpa_supplicant_add_network

连接网络:
\frameworks\opt\net\wifi\service\java\com\android\server\wifi\SupplicantStaIfaceHal.java
connectToNetwork
wifi收集_第8张图片

frameworks\opt\net\wifi\service\java\com\android\server\wifi\SupplicantStaNetworkHal.java

select-》 mISupplicantStaNetwork.select();-》
wpa_supplicant hidl:
StaNetwork::select-》

external\wpa_supplicant_8\wpa_supplicant\hidl\1.0\sta_network.cpp

selectInternal->
wpa_supplicant_select_network-》
wpa_supplicant_fast_associate -》
wpas_select_network_from_last_scan-》
wpa_supplicant_connect-》
wpa_supplicant_associate-》
sme_authenticate(wpa_s, bss, ssid);->sme_auth_start_cb->
sme_send_authentication->wpa_drv_authenticate->wpa_s->driver->authenticate->wpa_driver_nl80211_associate

再通过nl80211接口与内核的cfg80211 ops通信

	msg = nl80211_drv_msg(drv, 0, NL80211_CMD_ASSOCIATE);
	if (!msg)
		return -1;

	ret = nl80211_connect_common(drv, params, msg);
	if (ret)
		goto fail;

sme发起与目标ap的关联动作

07-28 14:28:41.932833   468   547 D WifiStateMachine: CMD_START_CONNECT sup state UninitializedState my state DisconnectedState nid=0 roam=false
07-28 14:28:41.934552   468   547 D SupplicantStaIfaceHal: connectToNetwork "TP-5-C2"WPA_PSK
07-28 14:28:41.935557   468   547 I SupplicantStaIfaceHal: addSupplicantStaNetwork via HIDL
07-28 14:28:41.935874  2009  2009 I wpa_supplicant: wlan0: zyk addNetworkInternal (535)++
07-28 14:28:41.936036  2009  2009 I wpa_supplicant: wlan0: zyk wpa_supplicant_add_network (2919)-->>
07-28 14:28:41.936093  2009  2009 I wpa_supplicant: wlan0: zyk addNetworkInternal (539)--
07-28 14:28:41.936998   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:41.960215   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:41.977854   468   547 E SupplicantStaNetworkHal: zyk : ++select
07-28 14:28:41.978259  2009  2009 E wpa_supplicant: zyk: selectInternal 1531++
07-28 14:28:41.978331  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_select_network 3088 zyk-> connect_without_scan:0 
07-28 14:28:41.978394  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_select_network 3118 zyk-> connect_without_scan:0 
07-28 14:28:41.978447  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_select_network 3131 zyk-> connect_without_scan:0 
07-28 14:28:41.978496  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_select_network 3151 zyk-> connect_without_scan:0 
07-28 14:28:41.978540  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_fast_associate 2022 zyk->
07-28 14:28:41.978862  2009  2009 E wpa_supplicant: wlan0: wpas_select_network_from_last_scan 1868 zyk->
07-28 14:28:41.978997  2009  2009 E wpa_supplicant: wlan0: Request association with b0:95:8e:6a:60:47
07-28 14:28:41.979041  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_connect 1454 zhonyukang 
07-28 14:28:41.979091  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_associate 1839 zhonyukang 
07-28 14:28:41.979157  2009  2009 I wpa_supplicant: wlan0: sme_authenticate 715 zhonyukang 
07-28 14:28:41.979247  2009  2009 E wpa_supplicant: zyk: wpa_supplicant_select_network 3163++
07-28 14:28:41.979275  2009  2009 E wpa_supplicant: zyk: wpa_supplicant_select_network 3168--
07-28 14:28:41.979300  2009  2009 E wpa_supplicant: zyk: selectInternal 1534--
07-28 14:28:41.979501  2009  2009 E wpa_supplicant: wlan0: sme_auth_start_cb 673 zhonyukang 
07-28 14:28:41.979792  2009  2009 I wpa_supplicant: wlan0: zhongyukang sSME: Trying to authenticate with b0:95:8e:6a:60:47 (SSID='TP-5-C2' freq=5805 MHz)
07-28 14:28:41.980319  2009  2009 I wpa_supplicant: wlan0: zhongyukang SME: Authentication request to the driver ++
07-28 14:28:41.981219   468   547 E SupplicantStaNetworkHal: zyk : --select
07-28 14:28:41.983633   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:41.984276   468   547 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 14:28:41.998551  2009  2009 I wpa_supplicant: wlan0: zhongyukang SME: Authentication request to the driver --
07-28 14:28:42.000545  2009  2009 E wpa_supplicant: wlan0: wpa_supplicant_event 3746 zhonyukang 
07-28 14:28:42.000702  2009  2009 I wpa_supplicant: wlan0: Trying to associate with b0:95:8e:6a:60:47 (SSID='TP-5-C2' freq=5805 MHz)
07-28 14:28:42.001208  2009  2009 I wpa_supplicant: wlan0: zhongyukang SME: wpa_drv_associate 0xaa01dee1Fdriver -->>
07-28 14:28:42.001281  2009  2009 E wpa_supplicant: zhongyukang nl80211: Associate (ifindex=6)
07-28 14:28:42.001540  2009  2009 E wpa_supplicant: nl80211: Association request send successfully
07-28 14:28:42.003155   468   547 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 14:28:42.006968   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.015410  2009  2009 I wpa_supplicant: wlan0: Associated with b0:95:8e:6a:60:47
07-28 14:28:42.015610  2009  2009 I wpa_supplicant: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
07-28 14:28:42.019475   468   547 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 14:28:42.030178   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.053540   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 1 line
07-28 14:28:42.076997   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.083379   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 14:28:42.100371   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.170267   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 3 lines
07-28 14:28:42.193599   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.205286   258   258 I stp_dump: stp_dump_ctrl_iface_trace_logger_sendto_fd succeed
07-28 14:28:42.205447   258   258 E stp_dump: received error
07-28 14:28:42.205512   258   258 E stp_dump: Unable to get family id, Retry
07-28 14:28:42.217014   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.357007   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 6 lines
07-28 14:28:42.380179   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.383559   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 14:28:42.403654   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.660289   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 11 lines
07-28 14:28:42.683691   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.683804   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 14:28:42.707221   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.940361   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 10 lines
07-28 14:28:42.963788   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:42.984021   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 14:28:42.987001   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.243602   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 11 lines
07-28 14:28:43.267174   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.284346   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 14:28:43.290324   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.547078   250   389 I chatty  : uid=1000(system) HwBinder:250_1 identical 11 lines
07-28 14:28:43.570558   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.584697   255   255 I wmt_launcher: get property(service.wcn.driver.ready) is no
07-28 14:28:43.593744   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.614960   468   547 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 14:28:43.617044   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.636429   468   547 D WifiStateMachine: Update NetworkId of WifiInfo for WPS case,mLastNetworkId=-1
07-28 14:28:43.640282   250   389 W HWComposer: Ignoring duplicate VSYNC event from HWC (t=0)
07-28 14:28:43.643858  2009  2009 I wpa_supplicant: wlan0: WPA: Key negotiation completed with b0:95:8e:6a:60:47 [PTK=CCMP GTK=CCMP]
07-28 14:28:43.644442  2009  2009 I wpa_supplicant: wlan0: CTRL-EVENT-CONNECTED - Connection to b0:95:8e:6a:60:47 completed [id=0 id_str=%7B%22configKey%22%3A%22%5C%22TP-5-C2%5C%22WPA_PSK%22%2C%22creatorUid%22%3A%221000%22%7D]

内核对应响应命令处:

kernel-3.18/net/wireless/nl80211.c

static const struct genl_ops nl80211_ops[]
wifi收集_第9张图片
nl80211_associate-》

cfg80211_mlme_assoc-》

rdev_assoc-》

ret = rdev->ops->assoc(&rdev->wiphy, dev, req);

rdev为wiphy_new_nm注册时申请的结构体,并将mac80211_config_ops赋给rdev->ops

wifi的扫描调用过程(从supplicant到kernel)

对于接收到的beacon帧,由OnBeacon处理,只有在扫描状态的时候,beacon的ap才会被加入到scanned_queue,其它情况根据WIFI_FW状态进行不同操作,有触发start_clnt_auth,有更新ap信息等操作。
◆net/wireless中使用bss_list保存扫描到的ap结果,扫描结束后,应用层通过NL80211_CMD_GET_SCAN命令,由内核nl80211_dump_scan函数把结果发送给应用层,内核中保存ap有效时间为3s,超过3s该ap的信息会从bss_lis移除。
◆supplicant中通过wpa_s->bss保存扫描的ap,如果一个ap在180s(DEFAULT_BSS_EXPIRATION_AGE)内没有更新,就会删除该ap,每10s进行一次检测,由wpa_bss_timeout函数检查

处理扫描:
wifi收集_第10张图片
process_global_event
do_process_drv_event

7-28 17:49:33.515  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:49:42.151  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:49:43.520  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:49:52.153  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:49:53.524  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:50:02.175  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:50:03.526  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:50:12.181  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:50:13.528  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:50:22.179  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:50:23.529  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:50:32.175  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:50:33.532  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:50:42.186  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:50:43.537  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:50:52.176  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:50:53.543  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:51:02.186  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:51:03.553  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:51:12.188  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:51:13.551  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:51:22.188  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:51:23.554  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:51:32.151  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:51:33.553  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:51:42.187  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:51:43.556  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:51:52.191  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:51:53.557  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
7-28 17:52:02.189  1817  1817 E wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
7-28 17:52:03.562  1817  1817 E wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0

android wpa_supplicant scan流程及wifi scan失败原因分析

Android wpa_supplicant源码分析–扫描scan过程

android 调试 wpa_supplicant 小技巧
可以打开如下打印:

git diff external/wpa_supplicant_8/wpa_supplicant/bss.c
diff --git a/external/wpa_supplicant_8/wpa_supplicant/bss.c b/external/wpa_supplicant_8/wpa_supplicant/bss.c
index 914bd5d..3a83976 100644
--- a/external/wpa_supplicant_8/wpa_supplicant/bss.c
+++ b/external/wpa_supplicant_8/wpa_supplicant/bss.c
@@ -452,7 +452,7 @@ static struct wpa_bss * wpa_bss_add(struct wpa_supplicant *wpa_s,
        dl_list_add_tail(&wpa_s->bss, &bss->list);
        dl_list_add_tail(&wpa_s->bss_id, &bss->list_id);
        wpa_s->num_bss++;
-       wpa_dbg(wpa_s, MSG_DEBUG, "BSS: Add new id %u BSSID " MACSTR
+       wpa_dbg(wpa_s, MSG_ERROR, "BSS: Add new id %u BSSID " MACSTR
                " SSID '%s' freq %d",
                bss->id, MAC2STR(bss->bssid), wpa_ssid_txt(ssid, ssid_len),
                bss->freq);

wifi收集_第11张图片
后面将打印全打开:

git diff external/wpa_supplicant_8/src/utils/wpa_debug.c
diff --git a/external/wpa_supplicant_8/src/utils/wpa_debug.c b/external/wpa_supplicant_8/src/utils/wpa_debug.c
index af05dad..a429490 100644
--- a/external/wpa_supplicant_8/src/utils/wpa_debug.c
+++ b/external/wpa_supplicant_8/src/utils/wpa_debug.c
@@ -29,7 +29,7 @@ static FILE *wpa_debug_tracing_file = NULL;
 #endif /* CONFIG_DEBUG_LINUX_TRACING */
 
 
-int wpa_debug_level = MSG_INFO;
+int wpa_debug_level = MSG_MSGDUMP;
 int wpa_debug_show_keys = 0;
 int wpa_debug_timestamp = 0;
 
@@ -206,7 +206,7 @@ void wpa_printf(int level, const char *fmt, ...)
        va_list ap;
 
        va_start(ap, fmt);
-       if (level >= wpa_debug_level) {
+       if (1) {
 #ifdef CONFIG_ANDROID_LOG
                __android_log_vprint(wpa_to_android_level(level),
                                     ANDROID_LOG_NAME, fmt, ap);
(END)

wifi收集_第12张图片

你可能感兴趣的:(Linux驱动)