HAL Wi-Fi

Le framework Wi-Fi comporte trois surfaces HAL Wi-Fi représentées par trois packages HIDL différents :

  • Vendor HAL : une surface HAL pour les commandes spécifiques à Android. Les fichiers HIDL se trouvent dans hardware/interfaces/wifi/1.x .
  • Suppliant HAL : une surface HAL pour wpa_supplicant . Les fichiers HIDL se trouvent dans hardware/interfaces/supplicant/1.x .
  • Hostapd HAL : Une surface HAL pour hostapd . Les fichiers HIDL se trouvent dans hardware/interfaces/hostapd/1.x .

Fournisseur HAL

Le fournisseur HAL fournit des commandes spécifiques à Android. Il est facultatif (non obligatoire) pour que les modes Infrastructure Station (STA) et Soft AP (SAP) fonctionnent. Cependant, il est obligatoire pour les services Wi-Fi Aware et pour les services Wi-Fi RTT .

Pré-HIDL (c'est-à-dire pré-Android 8.0) Android utilisait un mécanisme HAL maintenant appelé legacy HAL . Le code source Android fournit actuellement une implémentation par défaut de HIDL à l'aide d'un shim s'exécutant au-dessus de l'ancien HAL.

Les en-têtes HAL hérités se trouvent dans hardware/libhardware_legacy/include/hardware_legacy/ . L'implémentation basée sur HAL héritée se trouve dans hardware/interfaces/wifi/1.x/default .

Suppliant HAL

Le Supplicant HAL fournit une interface HIDL pour le démon wpa_supplicant .

Le code source de wpa_supplicant se trouve dans external/wpa_supplicant_8/wpa_supplicant . Le code wpa_supplicant fournissant l'interface HIDL se trouve dans le sous-répertoire hidl .

Hostapd HAL

La couche HAL Hostapd fournit une interface HIDL pour le démon hostapd .

Le code source hostapd se trouve dans external/wpa_supplicant_8/hostapd . Le code hostapd fournissant l'interface HIDL se trouve dans le sous-répertoire hidl .

Concurrence multi-interface Wi-Fi

Différents appareils Android peuvent prendre en charge simultanément différentes combinaisons d'interfaces Wi-Fi. Les combinaisons prises en charge sont définies dans HAL et sont exposées au framework. Le format de spécification est défini dans android/hardware/interfaces/wifi/1.0/IWifiChip.hal . Par exemple, un appareil peut prendre en charge deux STA et une interface de type NAN ( Wi-Fi Aware ) ou P2P ( Wi-Fi Direct ) (mais pas les deux). Cela s'exprimerait ainsi :

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

Le format de spécification de concurrence est flexible et générique. Il peut exprimer des combinaisons qui ne sont pas encore prises en charge par le framework. Pour configurer une combinaison particulière, utilisez l'indicateur de construction WIFI_HAL_INTERFACE_COMBINATIONS situé dans device/<oem>/<device>/BoardConfig-common.mk . Alternativement, la HAL de référence a des configurations pour plusieurs combinaisons qui peuvent être activées avec des drapeaux de construction (hérités). Pour obtenir des instructions de configuration, consultez :