HAL Wi-Fi

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: