supplicant 启动流程梳理,适用于AndroidO
目录
1.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiController.java
2.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
3.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java
4.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WificondControl.java
5.system/connectivity/wificond/client_interface_binder.cpp
6.system/connectivity/wificond/client_interface_impl.cpp
7.frameworks/opt/net/wifi/libwifi_system/supplicant_manager.cpp
1.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiController.java
在WifiController进入StaEnabledState时,调用WifiStateMachine的setSupplicantRunning(true)方法。
2.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiStateMachine.java
发送CMD_START_SUPPLICANT消息出去。
在消息处理流程中,先加载驱动,加载成功后,然后再调用WifiNative的enableSupplicant()方法。3
3.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java
调到WificondController中的enableSupplicant()方法。
4.frameworks/opt/net/wifi/service/java/com/android/server/wifi/WificondControl.java
5.system/connectivity/wificond/client_interface_binder.cpp
调用到client_interface_impl中的EnableSupplicant()的方法。
6.system/connectivity/wificond/client_interface_impl.cpp
7.frameworks/opt/net/wifi/libwifi_system/supplicant_manager.cpp
通过setprop ctl.start servicename的方式来启动wpa_suppllicant