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 code (使用相機) 取得,或透過非頻道方式設定,例如使用 BLE 或 NFC。
Wi-Fi Easy Connect 會使用加密通道,在裝置之間傳送 Wi-Fi 憑證,而且由於使用的是公開動作框架,裝置可以使用現有的存取點。
Android 10 僅在啟動者模式下支援 Wi-Fi Easy Connect (不支援回應者模式)。支援下列運作模式:
- 啟動者設定工具:掃描 QR code,將網路憑證傳送至新裝置。
- 發起者-受試者:掃描網路 QR code 即可加入網路。
Android 10 支援 WPA2 適用的預先共用金鑰 (PSK) 通訊協定,以及 WPA3 的等於 (SAE) 通訊協定同步驗證。
Wi-Fi Easy Connect 僅支援用戶端模式 (不支援 SoftAP 模式)。
實作
如要支援 Wi-Fi Easy Connect,請實作 Android 開放原始碼計畫 (AOSP) 中提供的申請者介面。視實作的介面而定,這會位於:
hardware/interfaces/wifi/supplicant/1.2/
或較新版本的 HIDLhardware/interfaces/wifi/supplicant/aidl/
適用於 AIDL
如要支援 DPP,必須符合下列條件:
支援 DPP 的 Linux kernel 修補程式:
- cfg80211
- nl80211
wpa_supplicant
支援 DPP支援 DPP 的 Wi-Fi 驅動程式
支援 DPP 的 Wi-Fi 韌體
公開 API 可供 Android 10 中的應用程式使用:
WifiManager#isEasyConnectSupported
:查詢架構,判斷裝置是否支援 Wi-Fi 輕鬆連線。Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
:允許應用程式將 Wi-Fi 輕鬆連線功能整合至新手上路/設定流程。
啟用 Wi-Fi 輕鬆連線
如要在 Android 架構中啟用 Wi-Fi 輕鬆連線功能,請在 wpa_supplicant
設定檔 android.config
中加入 CONFIG_DPP
編譯選項:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
驗證
如要測試導入成果,請執行下列測試。
單元測試
執行 DppManagerTest
,驗證 DPP 功能旗標的行為。
atest DppManagerTest
VTS 測試
如果已實作 HIDL 介面,請執行 VtsHalWifiSupplicantV1_2TargetTest
來測試申請者 HAL 1.2 版的行為。
如果已實作 AIDL 介面,請執行 VtsHalWifiSupplicantStaIfaceTargetTest
來測試申請者 HAL 的行為。