如果你也是年轻的程序员,关注我一起学习探讨
Wifi中主要通过WifiNative与WPAS通信。如果想从framework层控制WPAS层的OKC,步骤如下:
WifiNative–>com_android_server_wifi_WifiNative.cpp–>wifi.c–>wpa_supplicant.c
com_android_server_wifi_WifiNative.cpp是WifiNative的JNI,
wifi.c是底层wifi_start_supplicant() native方法的定义,
wifi.c中通过wifi_send_command() 使用ctrl_conn 中的wpa_ctrl 对象向WPAS 发送命令并接收回复。
wifi_ctrl_recv() 使用monitor_conn 中的wpa_ctrl 对象接收来自WPAS 的消息:
代码路径:
/frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java
/frameworks/opt/net/wifi/service/jni/com_android_server_wifi_WifiNative.cpp
/hardware/libhardware_legacy/wifi/wifi.c
/external/wpa_supplicant_8/wpa_supplicant/wpa_supplicant.c