Wi-Fi с поддержкой

Функция Wi-Fi Aware , добавленная в Android 8.0, позволяет поддерживающим устройствам обнаруживать, подключаться и устанавливать диапазон (добавлено в Android 9) друг к другу напрямую с использованием протокола Wi-Fi Aware без доступа к Интернету или сотовой сети. Эта функция, созданная на основе спецификации Wi-Fi Aware (версии 2.0, 3.0 и 3.1) 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».