В 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 внедрите запрашивающий язык проектирования интерфейса HAL (HIDL), предоставленный в Android Open Source Project (AOSP) в hardware/interfaces/wifi/supplicant/1.2/ или более поздней версии.
Для поддержки DPP требуется следующее:
Патчи ядра Linux для поддержки DPP:
- cfg80211
- nl80211
wpa_supplicantс поддержкой DPPДрайвер Wi-Fi с поддержкой DPP
Прошивка Wi-Fi с поддержкой DPP
Общедоступные API доступны в Android 10 для использования приложениями:
-
WifiManager#isEasyConnectSupported: запрашивает платформу, чтобы определить, поддерживает ли устройство Wi-Fi Easy Connect. -
Activity#startActivityForResult(ACTION_PROCESS_WIFI_EASY_CONNECT_URI): позволяет приложениям интегрировать Wi-Fi Easy Connect в процесс подключения/настройки.
Включение простого подключения Wi-Fi
Чтобы включить 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 .
СУДС-тесты
Запустите VtsHalWifiSupplicantV1_2Host , чтобы проверить поведение запрашивающего HAL v1.2.
vts-tradefed run commandAndExit vts --skip-all-system-status-check --primary-abi-only --skip-preconditions --module VtsHalWifiSupplicantV1_2Host