Wi-Fi Прямой

Функция Wi-Fi Direct , также известная как Wi-Fi P2P, позволяет поддерживающим устройствам обнаруживать и подключаться друг к другу напрямую с использованием протокола Wi-Fi Direct без доступа к Интернету или сотовой сети. Эта функция, основанная на спецификации Wi-Fi Direct Wi-Fi Alliance (WFA), позволяет обмениваться данными с высокой пропускной способностью между доверенными устройствами и приложениями, которые в противном случае находятся вне сети.

Примеры и источник

Чтобы использовать эту функцию, производители устройств должны внедрить язык проектирования аппаратного интерфейса Wi-Fi (HIDL) , предоставленный в рамках проекта Android с открытым исходным кодом (AOSP). HIDL заменяет предыдущую структуру уровня аппаратной абстракции (HAL) , используемую для упрощения реализации путем указания типов и вызовов методов, собранных в интерфейсы и пакеты.

Для использования функции Wi-Fi Direct требуются следующие поверхности Wi-Fi HAL: + hardware/interfaces/wifi/1.3 или выше + hardware/interfaces/wifi/supplicant/1.2 или выше

Реализация

Производители устройств должны обеспечить поддержку как фреймворка, так и HAL/прошивки:

  • Рамки:
    • Код АОСП
    • Включить Wi-Fi Direct: требуется флаг функции
  • Поддержка HAL Wi-Fi Direct (P2P) (подразумевается поддержка встроенного ПО)

Чтобы реализовать эту функцию, производители устройств внедряют Wi-Fi HIDL и включают флаг функции для Wi-Fi Direct. В device.mk расположенном в device/<oem>/<device> , измените переменную среды PRODUCT_COPY_FILES , чтобы включить поддержку функции Wi-Fi Direct:

```
PRODUCT_COPY_FILES +=
frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml
```

Все остальные требования для поддержки Wi-FI Direct включены в AOSP.

Рандомизация MAC

Android требует, чтобы адрес устройства Wi-Fi Direct и адрес интерфейса были рандомизированы. Они должны отличаться от истинного MAC-адреса устройства и соответствовать следующим требованиям:

  • Адрес устройства Wi-Fi Direct должен быть рандомизирован при создании интерфейса, если не сохранена постоянная группа; в противном случае адрес устройства должен продолжать использовать последний сгенерированный MAC-адрес.
  • Адрес интерфейса Wi-Fi Direct, также известный как групповой адрес, должен рандомизироваться каждый раз при установлении соединения.

Рандомизация MAC-адресов Wi-Fi Direct реализована в «wpa_supplicant» и контролируется двумя конфигурациями: p2p_device_random_mac_addr и p2p_interface_random_mac_addr .

Чтобы включить эту функцию, производители устройств должны: + Реализовать Wi-Fi Supplicant HIDL API ISupplicantP2pIface::setMacRandomization в hardware/interface/wifi/supplicant/1.2 .

  • Установите для config_wifi_p2p_mac_randomization_supported значение «true» в пользовательском наложении устройства.

Проверка

Android предоставляет набор модульных тестов, интеграционных тестов (Android Connectivity Test Suite или ACTS), тестов Compatibility Test Suite (CTS) и тестов CTS Verifier для проверки функции Wi-Fi Direct. Wi-Fi Direct также можно протестировать с помощью Vendor Test Suite (VTS) .

Модульные тесты

Проверьте пакет Wi-Fi Direct, используя следующие тесты.

Сервисные тесты:

atest com.android.server.wifi.p2p

Тесты менеджера:

atest android.net.wifi.p2p

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

Набор тестов ACTS Wi-Fi Direct, расположенный в tools/test/connectivity/acts_tests/tests/google/wifi/p2p , реализует функциональные тесты Wi-Fi Direct.

Тесты набора тестов совместимости (CTS)

Используйте тесты CTS для проверки функции Wi-Fi Direct. CTS определяет, когда эта функция включена, и автоматически включает связанные тесты.

Чтобы запустить тесты CTS, запустите:

% atest android.net.wifi.p2p.cts

Тесты проверки CTS

Тесты CTS Verifier проверяют поведение Wi-Fi Direct с использованием двух устройств: тестового устройства и заведомо исправного устройства. Чтобы запустить тесты, откройте CTS Verifier и перейдите в раздел под названием Wi-Fi Direct Tests.