Wi-Fi Easy Connect

Android 10 引入了对 Wi-Fi Easy Connect 协议(也称为设备配置协议 [DPP])的支持。Wi-Fi Easy Connect 由 Wi-Fi 联盟 (WFA) 引入,用于替代 Wi-Fi 保护设置 (WPS)。WPS 在 Android 9 中已弃用。

WLAN Easy Connect 可提供实现以下目的的简单且安全的方法:

  • 在不输入密码的情况下将 WLAN 设备(包括无头设备)连接到网络。
  • 在不知道或不输入密码的情况下接入 Wi-Fi 网络。

引导和身份验证使用 URI 进行配置;URI 通过扫描二维码(使用摄像头)获得或在带外进行配置(例如使用 BLE 或 NFC)。

WLAN Easy Connect 使用加密渠道在设备之间发送 WLAN 凭据,而且由于使用了公开操作帧,设备可以使用现有接入点。

Android 10 仅在发起程序模式下支持 WLAN Easy Connect(不支持响应程序模式)。支持以下操作模式:

  • Initiator-Configurator:通过扫描网络凭据的二维码将其发送到新设备。
  • Initiator-Enrollee:通过扫描网络二维码接入网络。

Android 10 支持适用于 WPA2 的预共享密钥 (PSK) 协议和适用于 WPA3 的对等实体同时验证 (SAE) 协议。

WLAN Easy Connect 仅在客户端模式下受支持(不支持 SoftAP 模式)。

实现

如需支持 Wi-Fi Easy Connect,请实现 Android 开源项目 (AOSP) 中提供的客户端接口。根据已实现的接口,相应位置如下:

如需支持 DPP,必须具备以下几项:

  • 用以支持 DPP 的 Linux 内核补丁程序:

    • cfg80211
    • nl80211
  • 支持 DPP 的 wpa_supplicant

  • 支持 DPP 的 Wi-Fi 驱动程序

  • 支持 DPP 的 WLAN 固件

Android 10 中提供可供应用使用的公共 API:

启用 Wi-Fi Easy Connect

如需在 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 通讯测试套件 (ACTS) 文件 WifiDppTest.py

VTS 测试

如果实现了 HIDL 接口,请运行 VtsHalWifiSupplicantV1_2TargetTest 来测试客户端 HAL v1.2 的行为。

如果实现了 AIDL 接口,请运行 VtsHalWifiSupplicantStaIfaceTargetTest 来测试客户端 HAL 的行为。