网络工具
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通信
获取扫描结果:
(五十四)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动作
上层发起一次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
wpa_supplicant中接收客户端的大多数命令的在wpa_supplicant_ctrl_iface_receive接收并解析:
external\wpa_supplicant_8\wpa_supplicant\ctrl_iface_unix.c
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
mSupplicantStaIfaceHal.connectToNetwork(configuration);
\frameworks\opt\net\wifi\service\java\com\android\server\wifi\SupplicantStaIfaceHal.java
connectToNetwork-》addNetworkAndSaveConfig-》
addNetwork-》addNetworkInternal-》wpa_supplicant_add_network
连接网络:
\frameworks\opt\net\wifi\service\java\com\android\server\wifi\SupplicantStaIfaceHal.java
connectToNetwork
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[]
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函数检查
处理扫描:
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);
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)