Android 10 führt Unterstützung für das Wi-Fi Easy Connect-Protokoll ein, 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 veraltet.
Wi-Fi Easy Connect bietet eine einfache und sichere Methode für:
- Integrieren Sie Wi-Fi-Geräte (einschließlich Headless-Geräte) in ein Netzwerk, ohne ein Passwort einzugeben.
- Treten Sie Wi-Fi-Netzwerken bei, ohne ein Passwort zu kennen oder einzugeben.
Bootstrapping und Authentifizierung werden mithilfe eines URI konfiguriert, der durch Scannen eines QR-Codes (mit einer Kamera) erfasst wird, oder werden Out-of-Band, beispielsweise mithilfe von BLE oder NFC, konfiguriert.
Wi-Fi Easy Connect verwendet einen verschlüsselten Kanal, um Wi-Fi-Anmeldeinformationen zwischen Geräten zu senden. Da öffentliche Aktionsrahmen verwendet werden, können Geräte vorhandene Zugriffspunkte verwenden.
Android 10 unterstützt Wi-Fi Easy Connect nur im Initiatormodus (Responder-Modus wird nicht unterstützt). Diese Betriebsarten werden unterstützt:
- Initiator-Konfigurator: Senden Sie Netzwerkanmeldeinformationen an ein neues Gerät, indem Sie dessen QR-Code scannen.
- Initiator-Anmelder: Treten Sie einem Netzwerk bei, indem Sie den Netzwerk-QR-Code scannen.
Android 10 unterstützt das Pre-Shared-Key-Protokoll (PSK) für WPA2 und das Simultaneous Authentication of Equals-Protokoll (SAE) für WPA3.
Wi-Fi Easy Connect wird nur im Client-Modus unterstützt (SoftAP-Modus wird nicht unterstützt).
Implementierung
Um Wi-Fi Easy Connect zu unterstützen, implementieren Sie die im Android Open Source Project (AOSP) bereitgestellte Supplicant-Schnittstelle. Abhängig von der implementierten Schnittstelle ist dies:
-
hardware/interfaces/wifi/supplicant/1.2/
oder eine spätere Version für HIDL -
hardware/interfaces/wifi/supplicant/aidl/
für AIDL
Zur Unterstützung von DPP ist Folgendes erforderlich:
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
Wi-Fi-Firmware mit Unterstützung für DPP
Öffentliche 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 die Integration von Wi-Fi Easy Connect in ihren Onboarding-/Setup-Ablauf.
Aktivieren von Wi-Fi Easy Connect
Um Wi-Fi Easy Connect im Android-Framework zu aktivieren, fügen Sie die Kompilierungsoption CONFIG_DPP
in die wpa_supplicant
Konfigurationsdatei android.config
ein:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
Validierung
Führen Sie die folgenden Tests aus, um Ihre Implementierung zu testen.
Unit-Tests
Führen Sie DppManagerTest
aus, um das Verhalten der Funktionsflags für DPP zu überprüfen.
atest DppManagerTest
Integrationstest (ACTS)
Um einen Integrationstest auszuführen, verwenden Sie die Android Comms Test Suite (ACTS)-Datei WifiDppTest.py
, die sich unter tools/test/connectivity/acts_tests/tests/google/wifi
befindet.
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 des Supplicant-HAL zu testen.