Android 10 bietet Unterstützung für das Wi‑Fi Easy Connect-Protokoll, auch bekannt als Device Provisioning Protocol (DPP). 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 einfache und 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.
Bei Wi‑Fi Easy Connect wird ein verschlüsselter Kanal verwendet, 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, müssen Sie die Supplicant-Schnittstelle implementieren, die im Android Open Source Project (AOSP) bereitgestellt wird. Je nach implementierter Schnittstelle befindet sich die Datei an einem der folgenden Speicherorte:
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_supplicant
mit 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-/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
Zertifizierungsstufe
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 DppManagerTest
VTS-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.