Android 10 導入了 Wi-Fi Easy Connect 通訊協定 (又稱為裝置佈建通訊協定 (DPP)) 的支援。Wi-Fi Easy Connect 是由 Wi-Fi 聯盟 (WFA) 推出,做為 Wi-Fi 保護設定 (WPS) 的替代方案。WPS 已於 Android 9 淘汰。
Wi-Fi 輕鬆連線可讓您以簡單又安全的方式執行下列操作:
- 將 Wi-Fi 裝置 (包括無頭裝置) 加入網路,且不必輸入密碼。
- 不必輸入密碼或輸入密碼,就能加入 Wi-Fi 網路。
啟動與驗證是使用 URI 設定,URI 透過掃描 QR code 取得,或是使用 BLE 或 NFC 等頻外模式。
Wi-Fi Easy Connect 使用加密管道在裝置之間傳送 Wi-Fi 憑證,而且由於會搭配使用公開動作頁框,因此裝置可以使用現有的存取點。
Android 10 僅在啟動器模式下支援 Wi-Fi 簡易連線 (不支援回應器模式)。系統支援下列作業模式:
- Initiator-Configurator:掃描裝置的 QR code,將網路憑證傳送至新裝置。
- Initiator-enrollee:掃描網路 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 韌體
Android 10 提供公用 API,供應用程式使用:
WifiManager#isEasyConnectSupported
:查詢架構,判斷裝置是否支援 Wi-Fi 輕鬆連線。Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI)
:允許應用程式將 Wi-Fi Easy Connect 整合至新手上路/設定流程。
啟用 Wi-Fi 輕鬆連線
如要在 Android 架構中啟用 Wi-Fi Easy Connect,請在 wpa_supplicant
設定檔中加入 CONFIG_DPP
編譯選項,android.config
:
# Easy Connect (Device Provisioning Protocol - DPP) CONFIG_DPP=y
驗證
如要測試實作成果,請執行下列測試。
單元測試
執行 DppManagerTest
以驗證 DPP 功能旗標的行為。
atest DppManagerTest
VTS 測試
如果已實作 HIDL 介面,請執行 VtsHalWifiSupplicantV1_2TargetTest
來測試候選 HAL 1.2 版的行為。
如果已實作 AIDL 介面,請執行 VtsHalWifiSupplicantStaIfaceTargetTest
來測試抑制 HAL 的行為。