Android 10 支援 Wi-Fi Easy Connect 通訊協定,又稱裝置佈建通訊協定 (DPP)。Wi-Fi Easy Connect 是 Wi-Fi 聯盟 (WFA) 推出的功能,可做為 Wi-Fi 保護設定 (WPS) 的替代方案。Android 9 已淘汰 WPS。
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) 提供的 Supplicant 介面。視實作的介面而定,這項作業位於:
hardware/interfaces/wifi/supplicant/1.2/
或 HIDL 的後續版本hardware/interfaces/wifi/supplicant/aidl/
適用於 AIDL
如要支援 DPP,必須符合下列條件:
支援 DPP 的 Linux 核心修補程式:
- cfg80211
- nl80211
wpa_supplicant
支援 DPP支援 DPP 的 Wi-Fi 驅動程式
支援 DPP 的 Wi-Fi 韌體
Android 10 提供公開 API,供應用程式使用:
WifiManager#isEasyConnectSupported
: 查詢架構,判斷裝置是否支援 Wi-Fi Easy Connect。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
,測試 Supplicant HAL v1.2 的行為。
如果實作 AIDL 介面,請執行 VtsHalWifiSupplicantStaIfaceTargetTest
,測試 Supplicant HAL 的行為。