Wi-Fi 輕鬆連接

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 中可供應用使用:

啟用 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