Android bietet eine Standardimplementierung des Android-Frameworks, die Unterstützung für verschiedene WLAN-Protokolle und -Modi umfasst, darunter:
- WLAN-Infrastruktur
- WLAN-Hotspot (Soft-AP) im Tethering- oder lokal beschränkten Modus
- Wi‑Fi Direct (p2p)
- Wi‑Fi Aware (NAN)
- Wi‑Fi 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-Wi‑Fi-Stacks.
Abbildung 1: Android-WLAN-Architektur
Anwendungs-Framework
Auf dieser Ebene ist der Anwendungscode, der die verschiedenen android.net.wifi APIs verwendet, um mit dem WLAN-Framework und der WLAN-Hardware zu interagieren. Intern ruft dieser Code den WLAN-Prozess über den Binder IPC-Mechanismus auf.
WLAN-Dienste
Die WLAN-Dienste werden als Systemdienst ausgeführt und befinden sich in packages/modules/Wifi/service/
. Der WLAN-Dienst kommuniziert mit dem Wi-Fi-HAL über AIDL.
Es gibt verschiedene WLAN-Dienste:
- Wi-Fi Service: Primärer Mechanismus zur Steuerung der WLAN-Infrastrukturmodi (sowohl STA als auch ZP).
- WLAN-P2P-Dienst: Verwaltet den Wi‑Fi Direct-Modus.
- Wi-Fi Aware Service: Verwaltet den Wi-Fi Aware-Modus.
- Wi‑Fi RTT-Dienst: Verwaltet die FTM-Funktion (Fast Transfer Mode) von IEEE 802.11mc.
Das Wi-Fi-Framework umfasst auch einen eigenständigen Prozess, wificond, der sich unter system/connectivity/wificond
befindet. Der Prozess wificond kommuniziert über Standard-nl80211
-Befehle mit dem WLAN-Treiber.
WLAN-HALs
Das Wi‑Fi-Framework hat drei Wi‑Fi HAL-Oberflächen, die durch drei verschiedene Schnittstellen dargestellt werden: Vendor HAL, Supplicant HAL und Hostapd HAL.
Weitere Informationen zu den Implementierungen der verschiedenen HALs finden Sie unter Wi‑Fi HAL.