Функция Wi-Fi Aware , добавленная в Android 8.0, позволяет поддерживающим устройствам обнаруживать, подключаться и устанавливать диапазон (добавлено в Android 9) друг к другу напрямую с использованием протокола Wi-Fi Aware без доступа к Интернету или сотовой сети. Эта функция, созданная на основе спецификации Wi-Fi Aware (версии 2.0 и 3.0) Wi-Fi Alliance (WFA), позволяет легко обмениваться данными с высокой пропускной способностью между доверенными устройствами и приложениями, которые в противном случае находятся вне сети.
Примеры и источник
Чтобы использовать эту функцию, производители устройств должны внедрить язык проектирования аппаратного интерфейса Wi-Fi (HIDL) , предоставленный в рамках проекта Android с открытым исходным кодом (AOSP). HIDL заменяет предыдущую структуру уровня аппаратной абстракции (HAL) , используемую для упрощения реализации путем указания типов и вызовов методов, собранных в интерфейсы и пакеты.
Следуйте Wi-Fi HIDL, чтобы использовать функцию Wi-Fi Aware: оборудование/интерфейсы/wifi/1.2 или выше. Поверхность Wi-Fi Aware HAL очень велика; файл hardware/interfaces/wifi/1.2/README-NAN.md описывает подмножество, которое в настоящее время используется фреймворком.
Вы можете сослаться на устаревший HAL Wi-Fi, чтобы увидеть, как он коррелирует с новым интерфейсом HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/wifi_nan.h .
Реализация
Производители устройств должны обеспечить поддержку как фреймворка, так и HAL/прошивки:
- Рамки:
- Код АОСП
- Включить осведомленность: требуется как флаг функции, так и флаг сборки HIDL.
- Поддержка Wi-Fi Aware (NAN) HAL (что подразумевает поддержку прошивки)
Чтобы реализовать эту функцию, производители устройств внедряют Wi-Fi HIDL и включают два флага функции:
В
BoardConfig.mk
илиBoardConfig-common.mk
расположенный вdevice/<oem>/<device>
, добавьте следующий флаг:WIFI_HIDL_FEATURE_AWARE := true
В
device.mk
расположенном вdevice/<oem>/<device>
, измените переменную средыPRODUCT_COPY_FILES
, чтобы включить поддержку функции Wi-Fi Aware:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml
Wi-Fi Aware включает ранжирование до одноранговых устройств с использованием протокола IEEE 802.11mc, также известного как время приема-передачи (RTT). Эта подфункция Wi-Fi Aware зависит от устройства, поддерживающего функцию Wi-Fi RTT, то есть она требует, чтобы устройство поддерживало как Wi-Fi Aware, так и Wi-Fi RTT. Дополнительные сведения см. в разделе Wi-Fi RTT .
В противном случае все необходимое для этой функции включено в AOSP.
Флаг WIFI_HIDL_FEATURE_AWARE
игнорируется, если указан флаг WIFI_HAL_INTERFACE_COMBINATIONS
. Дополнительные сведения см. в статье Параллелизм нескольких интерфейсов Wi-Fi .
Рандомизация MAC
Android требует, чтобы MAC-адрес обнаружения Wi-Fi Aware (NMI) и интерфейсов данных (NDP) был рандомизирован и не совпадал с истинным MAC-адресом устройства. MAC-адреса должны быть:
- Рандомизируется при каждом включении или повторном включении Wi-Fi Aware.
Когда Wi-Fi Aware включен, MAC-адрес должен рандомизироваться с регулярным интервалом, заданным параметром
NanConfigRequest.macAddressRandomizationIntervalSec
HIDL. По умолчанию фреймворк настраивает его на 30 минут.
Проверка
Android предоставляет набор модульных тестов, интеграционных тестов (ACTS), тестов Compatibility Test Suite (CTS) и тестов CTS Verifier для проверки функции Wi-Fi Aware. Wi-Fi Aware также можно протестировать с помощью Vendor Test Suite (VTS) .
Модульные тесты
Тесты пакета Wi-Fi Aware выполняются с использованием:
Сервисные тесты:
atest com.android.server.wifi.aware
Тесты менеджера:
atest android.net.wifi.aware
Интеграционные тесты (ACTS)
Набор тестов acts/sl4a
, описанный в tools/test/connectivity/acts_tests/tests/google/wifi/aware/README.md
, обеспечивает функциональные тесты, тесты производительности и стресс-тесты.
Тесты набора тестов совместимости (CTS)
Используйте тесты CTS для проверки функции Wi-Fi Aware. CTS определяет, когда эта функция включена, и автоматически включает связанные тесты.
Тесты CTS могут быть запущены с помощью:
atest SingleDeviceTest
Тесты проверки CTS
Тесты CTS Verifier проверяют поведение Wi-Fi Aware с использованием двух устройств: тестового устройства и заведомо исправного устройства. Чтобы запустить тесты, откройте CTS Verifier и перейдите в раздел «Тесты с поддержкой Wi-Fi».