Android bietet eine Standardimplementierung des Android-Frameworks, die Unterstützung für verschiedene WLAN-Protokolle und ‑Modi umfasst, darunter:
- WLAN-Infrastruktur (STA)
- WLAN-Hotspot (Soft-AP) im Tethering- oder Nur-lokal-Modus
- Wi‑Fi Direct (P2P)
- Wi‑Fi Aware (NAN)
- WLAN-RTT (IEEE 802.11mc FTM)
Eine Anwendung, die WLAN-Dienste verwendet, kommuniziert direkt über Binder mit den verschiedenen WLAN-Diensten. Die WLAN-Dienste werden im Systemdienst ausgeführt und kommunizieren über die bereitgestellten HIDL- und AIDL-Schnittstellen mit der HAL. Dieses Diagramm zeigt die allgemeine Struktur des Android-WLAN-Stacks.
Abbildung 1: Android-WLAN-Architektur
Anwendungs-Framework
Auf der Ebene des Anwendungsframeworks befindet sich der Anwendungscode, der die verschiedenen android.net.wifi
-APIs verwendet, um mit dem WLAN-Framework und der Hardware zu interagieren. Intern wird mit diesem Code der WLAN-Prozess über den Binder-IPC-Mechanismus aufgerufen.
WLAN-Dienste
Die WLAN-Dienste werden im Systemdienst ausgeführt und befinden sich unter packages/modules/Wifi/service/
. Der WLAN-Dienst kommuniziert über AIDL mit dem WLAN-HAL.
Es gibt verschiedene WLAN-Dienste:
- WLAN-Dienst: Primärer Mechanismus zum Steuern von WLAN-Infrastrukturmodi (sowohl STA als auch AP).
- WLAN-P2P-Dienst: Verwaltet den Wi-Fi Direct-Modus.
- Wi-Fi Aware-Dienst: Verwaltet den Wi-Fi Aware-Modus.
- Wi‑Fi RTT-Dienst: Verwaltet die IEEE 802.11mc FTM-Funktion.
Das WLAN-Framework umfasst auch einen eigenständigen Prozess namens wificond, der sich unter system/connectivity/wificond
befindet. Der wificond-Prozess kommuniziert über standardmäßige nl80211
-Befehle mit dem WLAN-Treiber.
WLAN-HALs
Das WLAN-Framework hat drei WLAN-HAL-Oberflächen, die durch drei verschiedene Schnittstellen dargestellt werden: Vendor HAL, Supplicant HAL und Hostapd HAL.
Weitere Informationen zu Implementierungen der verschiedenen HALs finden Sie unter WLAN-HAL.