Wi-Fi Easy Connect

В Android 10 добавлена поддержка протокола Wi-Fi Easy Connect, также известного как протокол подготовки устройства (DPP). Wi-Fi Easy Connect – это технология, разработанная Wi-Fi Alliance (WFA) в качестве альтернативы Wi-Fi Protected Setup (WPS). Поддержка WPS была прекращена в Android 9.

Wi-Fi Easy Connect позволяет:

  • Подключать к сети устройства с поддержкой Wi-Fi (в том числе без экрана), не вводя пароль.
  • Подключайтесь к сетям Wi-Fi, не зная и не вводя пароль.

Настройка и аутентификация выполняются с помощью URI, который можно получить, отсканировав QR-код (с помощью камеры) или настроив вне диапазона, например с помощью BLE или NFC.

Wi-Fi Easy Connect использует зашифрованный канал для передачи учетных данных Wi-Fi между устройствами. Поскольку используются общедоступные кадры действий, устройства могут использовать существующие точки доступа.

Android 10 поддерживает Wi-Fi Easy Connect только в режиме инициатора (режим ответчика не поддерживается). Поддерживаются следующие режимы работы:

  • Инициатор-конфигуратор. Отправляет учетные данные сети на новое устройство, сканируя его QR-код.
  • Инициатор-участник. Подключитесь к сети, отсканировав ее QR-код.

Android 10 поддерживает протокол общего ключа (PSK) для WPA2 и протокол одновременной аутентификации равных узлов (SAE) для WPA3.

Wi-Fi Easy Connect поддерживается только в режиме клиента (режим SoftAP не поддерживается).

Реализация

Чтобы поддерживать Wi-Fi Easy Connect, реализуйте интерфейс клиента, предоставленный в Android Open Source Project (AOSP). В зависимости от реализованного интерфейса это можно сделать:

Для поддержки DPP требуется следующее:

  • Исправления ядра Linux для поддержки DPP:

    • cfg80211
    • nl80211
  • wpa_supplicant с поддержкой DPP

  • Драйвер Wi-Fi с поддержкой DPP

  • Встроенное ПО Wi-Fi с поддержкой DPP

В Android 10 доступны следующие общедоступные API для приложений:

Включить Wi-Fi Easy Connect

Чтобы включить Wi-Fi Easy Connect в фреймворке Android, добавьте параметр компиляции CONFIG_DPP в файл конфигурации wpa_supplicant:android.config.

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

Проверка

Чтобы проверить реализацию, выполните следующие тесты.

Модульные тесты

Выполните команду DppManagerTest, чтобы проверить поведение флагов возможностей для DPP.

atest DppManagerTest

Тесты VTS

Если реализован интерфейс HIDL, выполните команду VtsHalWifiSupplicantV1_2TargetTest, чтобы проверить поведение supplicant HAL версии 1.2.

Если интерфейс AIDL реализован, запустите команду VtsHalWifiSupplicantStaIfaceTargetTest, чтобы проверить поведение HAL-компонента supplicant.