Mit Android 10 wird das Wi‑Fi Easy Connect-Protokoll, auch bekannt als Gerätebereitstellungsprotokoll (DPP), eingeführt. Wi‑Fi Easy Connect wurde von der Wi‑Fi Alliance (WFA) als Alternative zu Wi‑Fi Protected Setup (WPS) eingeführt. WPS wurde in Android 9 eingestellt.
Wi‑Fi Easy Connect bietet eine sichere Methode für Folgendes:
- WLAN-Geräte (einschließlich Headless-Geräte) ohne Eingabe eines Passworts in ein Netzwerk einbinden.
- Sie können sich mit WLANs verbinden, ohne ein Passwort zu kennen oder eingeben zu müssen.
Das Bootstrapping und die Authentifizierung werden über einen URI konfiguriert, der durch Scannen eines QR-Codes (mit einer Kamera) abgerufen oder out-of-band konfiguriert wird, z. B. über BLE oder NFC.
Wi‑Fi Easy Connect verwendet einen verschlüsselten Kanal, um WLAN-Anmeldedaten zwischen Geräten zu senden. Da öffentliche Aktions-Frames verwendet werden, können Geräte vorhandene Zugriffspunkte nutzen.
Android 10 unterstützt Wi-Fi Easy Connect nur im Initiatormodus (der Antwortmodus wird nicht unterstützt). Die folgenden Betriebsarten werden unterstützt:
- Initiator-Konfigurator:Senden Sie Anmeldedaten für das Netzwerk an ein neues Gerät, indem Sie den QR‑Code des Geräts scannen.
- Initiator-Enrollee:Sie können einem Netzwerk beitreten, indem Sie den QR-Code des Netzwerks scannen.
Android 10 unterstützt das PSK-Protokoll (Pre-Shared Key) für WPA2 und das SAE-Protokoll (Simultaneous Authentication of Equals) für WPA3.
Wi‑Fi Easy Connect wird nur im Clientmodus unterstützt (der SoftAP-Modus wird nicht unterstützt).
Implementierung
Um Wi‑Fi Easy Connect zu unterstützen, implementieren Sie die Supplicant-Schnittstelle, die im Open-Source-Projekt für Android (AOSP) bereitgestellt wird. Je nach implementierter Schnittstelle befindet sich die Datei unter:
hardware/interfaces/wifi/supplicant/1.2/oder eine neuere Version für HIDLhardware/interfaces/wifi/supplicant/aidl/für AIDL
Folgendes ist erforderlich, um DPP zu unterstützen:
Linux-Kernel-Patches zur Unterstützung von DPP:
- cfg80211
- nl80211
wpa_supplicantmit Unterstützung für DPPWLAN-Treiber mit Unterstützung für DPP
WLAN-Firmware mit Unterstützung für DPP
Die folgenden öffentlichen APIs sind in Android 10 für die Verwendung durch Apps verfügbar:
WifiManager#isEasyConnectSupported: Fragt das Framework ab, um festzustellen, ob das Gerät Wi-Fi Easy Connect unterstützt.Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI): Ermöglicht Apps, Wi-Fi Easy Connect in ihren Onboarding- oder Einrichtungsprozess zu integrieren.
WLAN Easy Connect aktivieren
Wenn Sie Wi-Fi Easy Connect im Android-Framework aktivieren möchten, fügen Sie die Kompilierungsoption CONFIG_DPP in die Konfigurationsdatei wpa_supplicant ein: android.config:
# Easy Connect (Device Provisioning Protocol - DPP)
CONFIG_DPP=y
Validierung
Führen Sie die folgenden Tests aus, um Ihre Implementierung zu testen.
Einheitentests
Führen Sie DppManagerTest aus, um das Verhalten der Funktionsflags für DPP zu prüfen.
atest DppManagerTestVTS-Tests
Wenn die HIDL-Schnittstelle implementiert ist, führen Sie VtsHalWifiSupplicantV1_2TargetTest aus, um das Verhalten des Supplicant-HAL v1.2 zu testen.
Wenn die AIDL-Schnittstelle implementiert ist, führen Sie VtsHalWifiSupplicantStaIfaceTargetTest aus, um das Verhalten der Supplicant-HAL zu testen.