目录

Wi-Fi框架介绍

应用框架(Applicatin Framework)

WiFi 服务(Wi-Fi Service)

WIFI HAL

源码路径


Wi-Fi框架介绍

应用框架(Applicatin Framework)

应用(如 WiFi Setting)使用各种 android.net.wifi API 与 wifi 框架和硬件进行交互,内部通过 Binder IPC 调用 wifi 进程

WiFi 服务(Wi-Fi Service)

Wifi 服务在系统服务中运行,代码位于 frameworks/opt/net/wifi,Wifi 服务通过 HDIL 与 WiFi HAL 通信,
WIFI 服务有:
1) Wifi base 服务:控制 wifi 基础架构模式(STA\AP)的主要机制;
2) Wifi-p2p: 管理 wifi 直连模式
3) wifi 感知服务,管理感知模式
4) Wi-Fi RTT 服务:管理 IEEE 802.11mc FTM 功能。

此外,Wi-Fi 框架还包含一个独立的 wificond 进程,该进程位于 system/connectivity/wificond 中。wificond 进程通过标准的 nl80211 命令与 Wi-Fi 驱动程序进行通信。

WIFI HAL

Wifi 框架具有 3 个 wifi hal:
1) 是由各供应商提供的 Android 命令,对基础结构 STA 和软 AP 模式,不是必须的;
源码位于 hardware/interfaces/wifi/1.x/default。
2) Supplicant HAL
给 wpa_supplicant 守护进程提供一个 HIDL 接口;
wpa_supplicant 源码位于 external/wpa_supplicant_8/wpa_supplicant,用于控制无线连接。
3) Hostapd HAL
给 hostapd 守护程序提供 HIDL 接口;
hostapd 源码位于 external/wpa_supplicant_8/hostapd,能使得 wifi 切换为 master 模式,即说的 SoftAP。

源码路径

JAVA 层 :
packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.java
frameworks/base/wifi/java/android/net/wifi/WifiManager.java
frameworks/base/wifi/java/android/net/wifi/IWifiManager.aidl
WIFI SERVICE 层:
frameworks/opt/net/wifi/service/java/com/android/server/wifi/BaseWifiService.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiServiceImpl.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/ActiveModeWarden.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/ClientModeManager.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiNative.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/WifiVendorHal.java
frameworks/opt/net/wifi/service/java/com/android/server/wifi/HalDeviceManager.java
WiFi HIDL 层 :
hardware/interfaces/wifi/1.0/IWifi.hal
hardware/interface/wifi/1.4/default/wifi.cpp
hardware/interfaces/wifi/1.4/default/wifi_mode_controller.cpp
WiFi HAL 层:
frameworks/opt/net/wifi/libwifi_hal/driver_tool.cpp
out/target/product/t982_ar301/vendor/lib/libwifi-hal-common-ext.so (不开源)
frameworks/opt/net/wifi/libwifi_hal/wifi_hal_common.cpp
vendor/amlogic/common/wifi_bt/wifi/configs/wifi.mk
WiFi DRIVER 层:
common/drivers/amlogic/wifi/wifi_dt.c
common/arch/arm64/boot/dts/amlogic/t3_t982_ar301-2g.dts
vendor/wifi_driver