El marco Wi-Fi tiene tres superficies Wi-Fi HAL representadas por tres paquetes HIDL diferentes:
- Vendor HAL: una superficie HAL para comandos específicos de Android. Los archivos están en HIDL
hardware/interfaces/wifi/1.x
. - Suplicante HAL: HAL Una superficie de wpa_supplicant. Los archivos están en HIDL
hardware/interfaces/supplicant/1.x
. - Hostapd HAL: HAL Una superficie de hostapd. Los archivos están en HIDL
hardware/interfaces/hostapd/1.x
.
Proveedor HAL
Vendor HAL proporciona comandos específicos de Android. Es opcional (no obligatorio) para que funcionen los modos de estación de infraestructura (STA) y Soft AP (SAP). Sin embargo, es obligatorio para Wi-Fi Consciente y de conexión Wi-Fi RTT servicios.
Pre-HIDL (es decir, pre-Android 8.0) Android utiliza un mecanismo de HAL ahora llamado legado HAL. El código fuente de Android proporciona actualmente una implementación predeterminada de HIDL mediante una corrección que se ejecuta sobre la HAL heredada.
Las cabeceras legado HAL se encuentran en hardware/libhardware_legacy/include/hardware_legacy/
. La implementación basada en el legado HAL se encuentra en hardware/interfaces/wifi/1.x/default
.
HAL suplicante
El suplicante HAL proporciona una interfaz HIDL para el daemon wpa_supplicant.
El código fuente wpa_supplicant se encuentra en external/wpa_supplicant_8/wpa_supplicant
. El código wpa_supplicant que proporciona la interfaz HIDL se encuentra en el hidl
subdirectorio.
Hostapd HAL
El hostapd HAL proporciona una interfaz HIDL para el demonio hostapd.
El código fuente hostapd se encuentra en external/wpa_supplicant_8/hostapd
. El código hostapd que proporciona la interfaz HIDL se encuentra en el hidl
subdirectorio.
Simultaneidad de múltiples interfaces Wi-Fi
Diferentes dispositivos Android pueden admitir diferentes combinaciones de interfaces Wi-Fi al mismo tiempo. Las combinaciones admitidas se definen en la HAL y se exponen al marco. El formato de especificación se define en android/hardware/interfaces/wifi/1.0/IWifiChip.hal
. Por ejemplo, un dispositivo puede soportar dos STA y una interfaz de cualquiera de NAN ( Wi-Fi Aware ) o P2P ( Wi-Fi Direct tipo) (pero no ambos). Esto se expresaría como:
[{STA} <= 2, {NAN,P2P} <= 1]
El formato de especificación de simultaneidad es flexible y genérico. Puede expresar combinaciones que aún no son compatibles con el marco. Para configurar una combinación particular, utilice el WIFI_HAL_INTERFACE_COMBINATIONS
bandera construcción situado en device/<oem>/<device>/BoardConfig-common.mk
. Alternativamente, la referencia HAL tiene configuraciones para varias combinaciones que pueden activarse con indicadores de compilación (heredados). Para obtener instrucciones de configuración, consulte: