#if 1
--------- beginning of main
https://blog.csdn.net/zx54633089/article/details/110942431?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242
java端可参考上面链接
1.java端 WificondControl.scan(WificondControl.java:632)
进程号:2092
04-30 18:07:23.318 2092 2455 E WificondControl: scan wlan0
04-30 18:07:23.319 2092 2455 W System.err: simulator exception: java.lang.RuntimeException: error is here
04-30 18:07:23.320 2092 2455 D run stack: simulator
04-30 18:07:23.320 2092 2455 D run stack: java.lang.RuntimeException: error is here
04-30 18:07:23.320 2092 2455 D run stack: at com.android.server.wifi.WificondControl.scan(WificondControl.java:632)
04-30 18:07:23.320 2092 2455 D run stack: at com.android.server.wifi.WifiNative.scan(WifiNative.java:1169)
04-30 18:07:23.320 2092 2455 D run stack: at com.android.server.wifi.scanner.WificondScannerImpl.startSingleScan(WificondScannerImpl.java:193)
04-30 18:07:23.320 2092 2455 D run stack: at com.android.server.wifi.scanner.WifiScanningServiceImpl$WifiSingleScanStateMachine.tryToStartNewScan(WifiScanningServiceImpl.java:912)
04-30 18:07:23.320 2092 2455 D run stack: at com.android.server.wifi.scanner.WifiScanningServiceImpl$WifiSingleScanStateMachine$DriverStartedState.processMessage(WifiScanningServiceImpl.java:635)
04-30 18:07:23.320 2092 2455 D run stack: at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:993)
04-30 18:07:23.320 2092 2455 D run stack: at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:809)
04-30 18:07:23.320 2092 2455 D run stack: at android.os.Handler.dispatchMessage(Handler.java:106)
04-30 18:07:23.320 2092 2455 D run stack: at android.os.Looper.loop(Looper.java:193)
04-30 18:07:23.320 2092 2455 D run stack: at android.os.HandlerThread.run(HandlerThread.java:65)
2.hal端
IWifiScannerImpl.aidl
// Request a single scan using a SingleScanSettings parcelable object.
boolean scan(in SingleScanSettings scanSettings);
进程号:1898 进程号已经改变
--------- beginning of system
04-30 18:07:23.321 1898 1898 E wificond: NL80211_CMD_TRIGGER_SCAN not failed1: Success
04-30 18:07:23.364 1898 1898 D callstack: #00 pc 000207c5 /system/bin/wificond (android::wificond::ScanUtils::Scan(unsigned int, bool, int, std::__1::vector<std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, std::__1::allocator<std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>>> const&, std::__1::vector<unsigned int, std::__1::allocator<unsigned int>> const&, int*)+592)
04-30 18:07:23.365 1898 1898 D callstack: #01 pc 0002e3a3 /system/bin/wificond (android::wificond::ScannerImpl::scan(com::android::server::wifi::wificond::SingleScanSettings const&, bool*)+554)
04-30 18:07:23.365 1898 1898 D callstack: #02 pc 00031a11 /system/bin/wificond (android::net::wifi::BnWifiScannerImpl::onTransact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+288)
04-30 18:07:23.365 1898 1898 D callstack: #03 pc 0003613f /system/lib/libbinder.so (android::BBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+70)
04-30 18:07:23.365 1898 1898 D callstack: #04 pc 0003d99f /system/lib/libbinder.so (android::IPCThreadState::executeCommand(int)+410)
04-30 18:07:23.365 1898 1898 D callstack: #05 pc 0003d72b /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+106)
04-30 18:07:23.365 1898 1898 D callstack: #06 pc 0003dce5 /system/lib/libbinder.so (android::IPCThreadState::handlePolledCommands()+12)
04-30 18:07:23.365 1898 1898 D callstack: #07 pc 0001f3cf /system/bin/wificond ((anonymous namespace)::WatchFdCallback::handleEvent(int, int, void*)+26)
04-30 18:07:23.365 1898 1898 D callstack: #08 pc 0002b0c7 /system/bin/wificond (android::Looper::pollInner(int)+630)
04-30 18:07:23.365 1898 1898 D callstack: #09 pc 0002adcf /system/bin/wificond (android::Looper::pollOnce(int, int*, int*, void**)+26)
04-30 18:07:23.365 1898 1898 D callstack: #10 pc 0001f261 /system/bin/wificond (android::wificond::LooperBackedEventLoop::Poll()+24)
04-30 18:07:23.365 1898 1898 D callstack: #11 pc 0001233f /system/bin/wificond (main+726)
04-30 18:07:23.365 1898 1898 D callstack: #12 pc 0008bc15 /system/lib/libc.so (__libc_init+48)
04-30 18:07:23.365 1898 1898 D callstack: #13 pc 00012013 /system/bin/wificond (_start_main+46)
04-30 18:07:23.365 1898 1898 D callstack: #14 pc 0000031e <anonymous:a9f78000>
04-30 18:07:23.365 1898 1898 E wificond: NL80211_CMD_TRIGGER_SCAN not failed2: Success
3.wpa_supplicant
由hal发送 NL80211_CMD_TRIGGER_SCAN netlink消息,wpa_supplicant接收消息
进程号:2756 进程号再次发生改变
04-30 18:07:23.373 2756 2756 I wpa_supplicant: nl80211: Drv Event 33 (NL80211_CMD_TRIGGER_SCAN) received for wlan0
04-30 18:07:23.374 2756 2756 I wpa_supplicant: wlan0: nl80211: Scan trigger
04-30 18:07:23.374 1898 1898 E wificond: NL80211_CMD_TRIGGER_SCAN not failed5: Success
//hal端的日志
04-30 18:07:24.941 2756 2756 I wpa_supplicant: nl80211: Drv Event 34 (NL80211_CMD_NEW_SCAN_RESULTS) received for wlan0
04-30 18:07:24.941 2756 2756 E wpa_supplicant: wlan0: nl80211: New scan results available
04-30 18:07:24.941 2756 2756 I wpa_supplicant: nl80211: Scan probed for SSID ''
#endif
4.驱动 内核层
04-30 18:07:23.374 2756 2756 I wpa_supplicant: wlan0: nl80211: Scan trigger
通过网络通讯,再把scan的需求 发送给内核
由内核来完成scan动作,然后上报scan结果。