WLAN 框架具有三个 WLAN HAL 表面,分别由三个不同的 HIDL 软件包表示:
hardware/interfaces/wifi/1.x
中。hardware/interfaces/supplicant/1.x
中。hardware/interfaces/hostapd/1.x
中。供应商 HAL 提供 Android 专用命令。供应商 HAL 对于基础架构 Station (STA) 和 Soft AP (SAP) 模式的正常运行而言是可选的(不是必需的)。不过,对于 WLAN 感知和 WLAN RTT 服务而言,供应商 HAL 是必需的。
在 HIDL 之前(即 Android 8.0 版本之前),Android 使用的是现在称为“旧版 HAL”的 HAL 机制。Android 源代码目前使用在旧版 HAL 之上运行的 shim 来提供 HIDL 默认实现。
旧版 HAL 标头位于 hardware/libhardware_legacy/include/hardware_legacy/
中。基于旧版 HAL 的实现位于 hardware/interfaces/wifi/1.2/default
中。
客户端 HAL 为 wpa_supplicant 守护进程提供 HIDL 接口。
wpa_supplicant 源代码位于 external/wpa_supplicant_8/wpa_supplicant
中。提供 HIDL 接口的 wpa_supplicant 代码位于 hidl
子目录中。
Hostapd HAL 为 hostapd 守护进程提供 HIDL 接口。
hostapd 源代码位于 external/wpa_supplicant_8/hostapd
中。提供 HIDL 接口的 hostapd 代码位于 hidl
子目录中。
不同的 Android 设备可以并行支持不同的 WLAN 接口组合。受支持的组合在 HAL 中定义,并提供给框架。规范格式在 android/hardware/interfaces/wifi/1.0/IWifiChip.hal
中定义。例如,一台设备可以支持一个 STA 和一个 NAN(WLAN 感知)类型或点对点(WLAN 直连)类型的接口(但不能同时支持这两种接口)。这可以表示为:
[{STA} <= 1, {NAN,P2P} <= 1]
并发规范格式非常灵活,且是通用格式。它可以表示框架尚不支持的组合。参考 HAL 具有适合多种组合的配置,这些配置可通过编译标记进行启用。有关配置说明,请参阅:
手机扫一扫
移动阅读更方便
你可能感兴趣的文章