Простое подключение к Wi-Fi

В 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 с открытым исходным кодом (AOSP). В зависимости от реализованного интерфейса это находится по адресу:

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

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

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

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

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

Публичные API доступны в Android 10 для использования приложениями:

Включение 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

Интеграционный тест (ACTS)

Чтобы запустить интеграционный тест, используйте файл Android Comms Test Suite (ACTS) WifiDppTest.py , расположенный в tools/test/connectivity/acts_tests/tests/google/wifi .

тесты СУДС

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

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