Wi-Fi HAL

A estrutura Wi-Fi possui três superfícies Wi-Fi HAL representadas por três pacotes HIDL diferentes:

  • Vendor HAL: uma superfície HAL para comandos específicos do Android. Os arquivos HIDL estão em hardware/interfaces/wifi/1.x .
  • Supplicant HAL: Uma superfície HAL para wpa_supplicant . Os arquivos HIDL estão em hardware/interfaces/supplicant/1.x .
  • Hostapd HAL: Uma superfície HAL para hostapd . Os arquivos HIDL estão em hardware/interfaces/hostapd/1.x .

Fornecedor HAL

O Vendor HAL fornece comandos específicos do Android. É opcional (não obrigatório) para que os modos de estação de infraestrutura (STA) e Soft AP (SAP) funcionem. No entanto, é obrigatório para serviços Wi-Fi Aware e Wi-Fi RTT .

Pré-HIDL (ou seja, pré-Android 8.0) O Android usava um mecanismo HAL agora chamado HAL legado . O código-fonte do Android atualmente fornece uma implementação padrão de HIDL usando um shim executado em cima do HAL legado.

Os cabeçalhos HAL legados estão localizados em hardware/libhardware_legacy/include/hardware_legacy/ . A implementação baseada em HAL legada está localizada em hardware/interfaces/wifi/1.x/default .

Suplicante HAL

O Supplicant HAL fornece uma interface HIDL para o daemon wpa_supplicant .

O código-fonte wpa_supplicant está localizado em external/wpa_supplicant_8/wpa_supplicant . O código wpa_supplicant que fornece a interface HIDL está localizado no subdiretório hidl .

Hostapd HAL

O Hostapd HAL fornece uma interface HIDL para o daemon hostapd .

O código-fonte do hostapd está localizado em external/wpa_supplicant_8/hostapd . O código hostapd que fornece a interface HIDL está localizado no subdiretório hidl .

Simultaneidade de várias interfaces Wi-Fi

Diferentes dispositivos Android podem suportar diferentes combinações de interfaces Wi-Fi simultaneamente. As combinações com suporte são definidas no HAL e expostas à estrutura. O formato de especificação é definido em android/hardware/interfaces/wifi/1.0/IWifiChip.hal . Por exemplo, um dispositivo pode suportar dois STAs e uma interface do tipo NAN ( Wi-Fi Aware ) ou P2P ( Wi-Fi Direct ) (mas não ambos). Isso seria expresso como:

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

O formato de especificação de simultaneidade é flexível e genérico. Ele pode expressar combinações que ainda não são suportadas pelo framework. Para configurar uma combinação específica, use o sinalizador de compilação WIFI_HAL_INTERFACE_COMBINATIONS localizado em device/<oem>/<device>/BoardConfig-common.mk . Alternativamente, o HAL de referência possui configurações para várias combinações que podem ser ativadas com sinalizadores de compilação (legado). Para instruções de configuração, consulte: