Starting March 27, 2025, we recommend using android-latest-release instead of aosp-main to build and contribute to AOSP. For more information, see Changes to AOSP.

Wi-Fi Easy Connect

Android 10 introduces support for the Wi-Fi Easy Connect protocol, also known as the device provisioning protocol (DPP). Wi-Fi Easy Connect was introduced by the Wi-Fi Alliance (WFA) as an alternative to Wi-Fi Protected Setup (WPS). WPS was deprecated in Android 9.

Wi-Fi Easy Connect provides a secure method to:

  • Onboard Wi-Fi devices (including headless devices) to a network without entering a password.
  • Join Wi-Fi networks without knowing or entering a password.

Bootstrapping and authentication is configured using a URI, which is acquired by scanning a QR code (using a camera), or is configured out-of-band, for example, using BLE or NFC.

Wi-Fi Easy Connect uses an encrypted channel to send Wi-Fi credentials between devices, and because public action frames are used, devices can use existing access points.

Android 10 supports Wi-Fi Easy Connect only in initiator mode (responder mode is not supported). These modes of operation are supported:

  • Initiator-Configurator: Send network credentials to a new device by scanning its QR code.
  • Initiator-Enrollee: Join a network by scanning the network QR code.

Android 10 supports the pre-shared key (PSK) protocol for WPA2 and the simultaneous authentication of equals (SAE) protocol for WPA3.

Wi-Fi Easy Connect is only supported in client mode (SoftAP mode is not supported).

Implementation

To support Wi-Fi Easy Connect, implement the supplicant interface provided in the Android Open Source Project (AOSP). Depending on the interface that was implemented, this is at:

The following are required to support DPP:

  • Linux kernel patches to support DPP:

    • cfg80211
    • nl80211
  • wpa_supplicant with support for DPP

  • Wi-Fi driver with support for DPP

  • Wi-Fi firmware with support for DPP

Public APIs are available in Android 10 for use by apps:

Enable Wi-Fi Easy Connect

To enable Wi-Fi Easy Connect in the Android framework, include the CONFIG_DPP compilation option in the wpa_supplicant configuration file, android.config:

# Easy Connect (Device Provisioning Protocol - DPP)
CONFIG_DPP=y

Validation

To test your implementation, run the following tests.

Unit tests

Run DppManagerTest to verify the behavior of the capability flags for DPP.

atestDppManagerTest

VTS tests

If the HIDL interface is implemented, run VtsHalWifiSupplicantV1_2TargetTest to test the behavior of the supplicant HAL v1.2.

If the AIDL interface is implemented, run VtsHalWifiSupplicantStaIfaceTargetTest to test the behavior of the supplicant HAL.

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2025年12月02日 UTC.