Как тестировать, отлаживать и настраивать Wi-Fi

На этой странице рассказывается, как тестировать, отлаживать и настраивать реализацию Wi-Fi с помощью инструментов, предоставляемых в AOSP.

Тестирование

Для тестирования фреймворка Wi-Fi в AOSP предусмотрены модульные тесты и тесты CTS.

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

AOSP включает функциональные и модульные тесты для стандартного фреймворка Wi-Fi: как для Wi-Fi Manager (код на стороне приложения), так и для Wi-Fi Service.

Тесты Wi-Fi Manager:

  • Адрес: packages/modules/Wifi/framework/tests/
  • Запустите исполняемый файл оболочки (чтобы узнать больше о вариантах запуска, прочитайте файл):

    atest FrameworksWifiApiTests

Тесты сервиса Wi-Fi:

  • Адрес: packages/modules/Wifi/service/tests/wifitests/
  • Запустите исполняемый файл оболочки (чтобы узнать больше о вариантах запуска, прочитайте файл):

    atest FrameworksWifiTests

Тесты CTS

Compatibility Test Suite (CTS) включает тесты для фреймворка Wi-Fi. Они находятся в разделе cts/tests/tests/net/src/android/net/wifi. Для проведения тестов CTS Wi-Fi необходимо, чтобы тестируемое устройство было подключено к точке доступа в начале тестирования.

Расширенные возможности ведения журналов для отладки

В Android 9 улучшено ведение журналов Wi-Fi, чтобы упростить отладку проблем с Wi-Fi. В Android 9 и более поздних версиях буферы кольцевой памяти драйвера или встроенного ПО могут быть включены всегда. Отчеты об ошибках могут создаваться автоматически при обнаружении некорректного состояния (только в сборках userdebug и eng). При использовании Wi-Fi HAL (AIDL или HIDL версии 1.2 или выше) буферы отладки встроенного ПО хранятся в HAL, а не в платформе, чтобы снизить затраты на IPC.

Реализация

Пример реализации можно найти в реализации по умолчанию в Vendor HAL.

Чтобы отключить ведение журнала встроенного ПО, задайте для ресурса config_wifi_enable_wifi_firmware_debugging значение false.

Тестирование вручную

Выполните этот тест вручную, чтобы убедиться, что старые файлы в каталоге tombstone удаляются.

  1. Включите Wi-Fi.
  2. Подключите устройство к сети.
  3. Создайте отчет об ошибке.
  4. Проверьте ZIP-файл отчета об ошибке и убедитесь, что в нем есть заархивированные журналы встроенного ПО. Журналы находятся в следующих местах:

    • AIDL HAL: раздел dumpsys основного файла bugreport
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Настройка конфигурации

Чтобы управлять уровнем сигнала, при котором устройство подключается к сети или отключается от нее, фреймворк Wi-Fi использует пороговые значения RSSI entry и exit.

Пороговые значения входа и выхода хранятся как перегружаемые параметры конфигурации со следующими названиями (параметр bad относится к пороговому значению RSSI выхода):

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

Параметры хранятся в файле <root>/frameworks/base/core/res/res/values/config.xml и могут быть переопределены с помощью файла оверлея <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml.

Вы можете протестировать новые пороговые значения, настроив устройство с помощью команд adb. Вы также можете создать сборку с новыми оверлеями, но использование команд adb ускорит тестирование.

adb shell settings put global wifi_score_params \
                             [rssi2|rssi5]=<bad>:<entry>:<low>:<good>

Например, следующая команда задает новые пороговые значения (в этом примере используются значения по умолчанию, заданные в кодовой базе AOSP):

adb shell settings put global wifi_score_params \
                       rssi2=-85:-85:-73:-60,rssi5=-82:-82:-70:-57

Чтобы восстановить встроенные значения параметров (то есть удалить переопределения), используйте следующую команду adb:

adb shell settings delete global wifi_score_params