Android 10 引入了對 Wi-Fi Easy Connect 協議的支持,也稱為設備配置協議 (DPP)。 Wi-Fi Easy Connect由 Wi-Fi 聯盟 (WFA) 引入,作為 Wi-Fi 保護設置 (WPS) 的替代方案。 WPS 在 Android 9 中已棄用。
Wi-Fi Easy Connect 提供了一種簡單而安全的方法:
- 無需輸入密碼即可將 Wi-Fi 設備(包括無頭設備)板載到網絡。
- 在不知道或輸入密碼的情況下加入 Wi-Fi 網絡。
引導和身份驗證使用 URI 進行配置,該 URI 通過掃描 QR 碼(使用相機)獲取,或者在帶外配置,例如使用 BLE 或 NFC。
Wi-Fi Easy Connect 使用加密通道在設備之間發送 Wi-Fi 憑據,並且由於使用公共操作框架,設備可以使用現有接入點。
Android 10 僅在啟動器模式下支持 Wi-Fi Easy Connect(不支持響應器模式)。支持以下操作模式:
- Initiator-Configurator:通過掃描 QR 碼將網絡憑據發送到新設備。
- Initiator-Enrollee:掃描網絡二維碼加入網絡。
Android 10 支持 WPA2 的預共享密鑰 (PSK) 協議和 WPA3 的同時平等身份驗證 (SAE) 協議。
Wi-Fi Easy Connect 僅在客戶端模式下支持(不支持 SoftAP 模式)。
執行
要支持 Wi-Fi Easy Connect,請在hardware/interfaces/wifi/supplicant/1.2/
或更高版本中實現 Android 開源項目 (AOSP) 中提供的請求者 HAL 接口設計語言 (HIDL)。
支持 DPP 需要以下條件:
支持 DPP 的 Linux 內核補丁:
- cfg80211
- NL80211
支持 DPP 的
wpa_supplicant
支持 DPP 的 Wi-Fi 驅動程序
支持 DPP 的 Wi-Fi 固件
公共 API 在 Android 10 中可供應用使用:
-
WifiManager#isEasyConnectSupported
:查詢框架以確定設備是否支持 Wi-Fi Easy Connect。 -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
:允許應用程序將 Wi-Fi Easy Connect 集成到其載入/設置流程中。
啟用 Wi-Fi 輕鬆連接
要在 Android 框架中啟用 Wi-Fi Easy Connect,請在wpa_supplicant
配置文件android.config
中包含CONFIG_DPP
編譯選項:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
驗證
要測試您的實現,請運行以下測試。
單元測試
運行DppManagerTest
以驗證 DPP 的功能標誌的行為。
atest DppManagerTest
集成測試 (ACTS)
要運行集成測試,請使用位於tools/test/connectivity/acts_tests/tests/google/wifi
中的 Android Comms Test Suite (ACTS) 文件WifiDppTest.py
。
VTS 測試
運行VtsHalWifiSupplicantV1_2Host
以測試請求者 HAL v1.2 的行為。
vts-tradefed run commandAndExit vts --skip-all-system-status-check --primary-abi-only --skip-preconditions --module VtsHalWifiSupplicantV1_2Host