WLAN HAL

 

 

WLAN HAL

WLAN 框架具備三個 WLAN HAL 表面,分別由三個不一樣的 HIDL 軟件包表示:android

  • 供應商 HAL:Android 專用命令的 HAL 表面。HIDL 文件位於 hardware/interfaces/wifi/1.x 中。
  • 客戶端 HAL:wpa_supplicant 的 HAL 表面。HIDL 文件位於 hardware/interfaces/supplicant/1.x 中。
  • Hostapd HAL:hostapd 的 HAL 表面。HIDL 文件位於 hardware/interfaces/hostapd/1.x 中。

供應商 HAL

供應商 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

客戶端 HAL 爲 wpa_supplicant 守護進程提供 HIDL 接口。ide

wpa_supplicant 源代碼位於 external/wpa_supplicant_8/wpa_supplicant 中。提供 HIDL 接口的 wpa_supplicant 代碼位於 hidl 子目錄中。ui

Hostapd HAL

Hostapd HAL 爲 hostapd 守護進程提供 HIDL 接口。spa

hostapd 源代碼位於 external/wpa_supplicant_8/hostapd 中。提供 HIDL 接口的 hostapd 代碼位於 hidl 子目錄中。code

WLAN 多接口併發

不一樣的 Android 設備能夠並行支持不一樣的 WLAN 接口組合。受支持的組合在 HAL 中定義,並提供給框架。規範格式在 android/hardware/interfaces/wifi/1.0/IWifiChip.hal 中定義。例如,一臺設備能夠支持一個 STA 和一個 NAN(WLAN 感知)類型或點對點(WLAN 直連)類型的接口(但不能同時支持這兩種接口)。這能夠表示爲:接口

[{STA} <= 1, {NAN,P2P} <= 1]進程

併發規範格式很是靈活,且是通用格式。它能夠表示框架尚不支持的組合。參考 HAL 具備適合多種組合的配置,這些配置可經過編譯標記進行啓用。有關配置說明,請參閱:

相關文章
相關標籤/搜索