Android fournit une implémentation par défaut du framework Android qui inclut la prise en charge de divers protocoles et modes Wi-Fi, y compris :
- Infrastructure Wi-Fi (STA)
- Point d'accès Wi-Fi (Soft AP) en mode partage de connexion ou local uniquement
- Wi-Fi Direct (P2P)
- Wi-Fi Aware (NAN)
- Wi-Fi RTT (IEEE 802.11mc FTM)
Une application utilisant les services Wi-Fi communique directement avec les différents services Wi-Fi via Binder. Les services Wi-Fi s'exécutent dans le service système et communiquent avec le HAL via les interfaces HIDL et AIDL fournies. Ce diagramme montre la structure générale de la pile Wi-Fi Android.
Figure 1 : Architecture Wi-Fi Android
Framework d'application
Au niveau du framework d'application se trouve le code d'application, qui utilise les différentes API android.net.wifi
pour interagir avec le framework et le matériel Wi-Fi. En interne, ce code appelle le processus Wi-Fi via le mécanisme Binder IPC.
Services Wi-Fi
Les services Wi-Fi s'exécutent dans le service système et se trouvent dans packages/modules/Wifi/service/
. Le service Wi-Fi communique avec le HAL Wi-Fi via AIDL.
Il existe différents services Wi-Fi :
- Service Wi-Fi : mécanisme principal pour contrôler les modes d'infrastructure Wi-Fi (STA et AP).
- Service Wi-Fi P2P : gère le mode Wi-Fi Direct.
- Service Wi-Fi Aware : gère le mode Wi-Fi Aware.
- Service Wi-Fi RTT : gère la fonctionnalité FTM IEEE 802.11mc.
Le framework Wi-Fi inclut également un processus autonome, wificond, situé à l'adresse system/connectivity/wificond
. Le processus wificond communique avec le pilote Wi-Fi via des commandes nl80211
standards.
HAL Wi-Fi
Le framework Wi-Fi comporte trois surfaces Wi-Fi HAL représentées par trois interfaces différentes : Vendor HAL, Supplicant HAL et Hostapd HAL.
Pour en savoir plus sur les implémentations des différentes HAL, consultez HAL Wi-Fi.