В 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). В зависимости от реализованного интерфейса, он находится по адресу:
-
hardware/interfaces/wifi/supplicant/1.2/или более поздняя версия для HIDL -
hardware/interfaces/wifi/supplicant/aidl/for AIDL
Для поддержки DPP необходимы следующие условия:
Патчи ядра Linux для поддержки DPP:
- cfg80211
- nl80211
wpa_supplicantс поддержкой DPPДрайвер Wi-Fi с поддержкой DPP
Прошивка Wi-Fi с поддержкой DPP
В Android 10 доступны общедоступные API для использования приложениями:
-
WifiManager#isEasyConnectSupported: Запрашивает у платформы информацию о том, поддерживает ли устройство Wi-Fi Easy Connect. -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI): Позволяет приложениям интегрировать Wi-Fi Easy Connect в процесс регистрации или настройки.
Включите функцию 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 , чтобы проверить поведение HAL-интерфейса клиента версии 1.2.
Если интерфейс AIDL реализован, запустите VtsHalWifiSupplicantStaIfaceTargetTest , чтобы проверить поведение HAL-интерфейса, обращающегося к клиенту.