無線網絡 HAL

Wi-Fi 框架具有三個 Wi-Fi HAL 表面,由三個不同的 HIDL 包表示:

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

供應商 HAL

供應商 HAL 提供了特定於 Android 的命令。基礎設施站 (STA) 和軟 AP (SAP) 模式的功能是可選的(不是必需的)。但是,對於Wi-Fi AwareWi-Fi RTT服務,它是強制性的。

Pre-HIDL(即 Android 8.0 之前的版本)Android 使用了現在稱為legacy HAL的 HAL 機制。 Android 源代碼當前使用在舊版 HAL 之上運行的 shim 提供了 HIDL 的默認實現。

舊版 HAL 標頭位於hardware/libhardware_legacy/include/hardware_legacy/中。基於傳統 HAL 的實現位於hardware/interfaces/wifi/1.x/default中。

請求者 HAL

Supplicant HAL 為wpa_supplicant守護程序提供 HIDL 接口。

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

Hostapd HAL

Hostapd HAL 為hostapd守護程序提供 HIDL 接口。

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

Wi-Fi多接口並發

不同的Android設備可以同時支持不同的Wi-Fi接口組合。支持的組合在 HAL 中定義並暴露給框架。規範格式在android/hardware/interfaces/wifi/1.0/IWifiChip.hal中定義。例如,設備可能支持兩個 STA 和一個 NAN( Wi-Fi 感知)或 P2P( Wi-Fi Direct )類型(但不能同時支持兩者)的接口。這將表示為:

[{STA} <= 2, {NAN,P2P} <= 1]

並發規範格式靈活通用。它可以表達框架尚不支持的組合。要配置特定組合,請使用位於device/<oem>/<device>/BoardConfig-common.mkWIFI_HAL_INTERFACE_COMBINATIONS構建標誌。或者,參考 HAL 具有可以使用(舊版)構建標誌激活的幾種組合的配置。有關配置說明,請參閱: