同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。
从framework到wpa_supplicant的适配层,其中framework部分需要了注意的是wifiservice和wifimoniter两部分,这两块是一个是转发ap的cmd,另一个是接收来自wpa_supplicant的cmd,他们与本地库的连接都是通过JNi方法,具体事项方法在android_net_wifi.cpp中,在这个文件中可以打字看出ap会给wpa_supplicant下哪些命令,这些命令通过wifi.c的wifi_command发送给wpa_supplicant,在发送命令的过程中实际是调用wpa_ctrl_request来完成命令发送的,wpa_ctrl_supplicant是通过socket的方式与wpa_supplicant进行通信的,然后通过wpa_ctrl_recv来接收来自wpa_suppliacnt的命令,并返回标识给wifi_wait_for_event。
在driver.h文件中有个结构体wpa_driver_ops:
/*
*struct wpa_driver_ops –Driver interface API definition