El marco Wi-Fi tiene tres superficies HAL Wi-Fi representadas por tres paquetes HIDL diferentes:
- Proveedor HAL: una superficie HAL para comandos específicos de Android. Los archivos HIDL están en
hardware/interfaces/wifi/1.x
. - Supplicant HAL: una superficie HAL para wpa_supplicant . Los archivos HIDL están en
hardware/interfaces/supplicant/1.x
. - Hostapd HAL: una superficie HAL para hostapd . Los archivos HIDL están en
hardware/interfaces/hostapd/1.x
.
HAL del proveedor
La HAL del proveedor 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 los servicios Wi-Fi Aware y Wi-Fi RTT .
Android anterior a HIDL (es decir, anterior a Android 8.0) usaba un mecanismo HAL que ahora se llama HAL heredado . El código fuente de Android actualmente proporciona una implementación predeterminada de HIDL mediante un shim que se ejecuta sobre el HAL heredado.
Los encabezados HAL heredados se encuentran en hardware/libhardware_legacy/include/hardware_legacy/
. La implementación heredada basada en HAL se encuentra en hardware/interfaces/wifi/1.x/default
.
Suplicante HAL
Supplicant HAL proporciona una interfaz HIDL para el daemon wpa_supplicant .
El código fuente de 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 subdirectorio hidl
.
Hostapd HAL
Hostapd HAL proporciona una interfaz HIDL para el demonio hostapd .
El código fuente de hostapd se encuentra en external/wpa_supplicant_8/hostapd
. El código hostapd que proporciona la interfaz HIDL se encuentra en el subdirectorio hidl
.
Concurrencia multi-interfaz Wi-Fi
Diferentes dispositivos Android pueden admitir diferentes combinaciones de interfaces Wi-Fi al mismo tiempo. Las combinaciones admitidas se definen en 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 admitir dos STA y una interfaz de tipo NAN ( Wi-Fi Aware ) o P2P ( Wi-Fi Direct ) (pero no ambos). Esto se expresaría como:
[{STA} <= 2, {NAN,P2P} <= 1]
El formato de especificación de concurrencia es flexible y genérico. Puede expresar combinaciones que aún no son compatibles con el marco. Para configurar una combinación particular, use el indicador de compilación WIFI_HAL_INTERFACE_COMBINATIONS
ubicado en device/<oem>/<device>/BoardConfig-common.mk
. Alternativamente, la HAL de referencia tiene configuraciones para varias combinaciones que pueden activarse con indicadores de compilación (heredados). Para obtener instrucciones de configuración, consulte: