Übersicht

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.

WLAN-Architektur

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.