Testowanie, debugowanie i dostrajanie Wi-Fi

Na tej stronie opisano, jak testować, debugować i dostrajać implementację Wi-Fi za pomocą narzędzi dostarczonych w AOSP.

Testowanie

Aby przetestować strukturę Wi-Fi, AOSP zapewnia mieszankę testów jednostkowych, testów integracyjnych (ACTS) i testów CTS.

Testy jednostkowe

AOSP obejmuje testy funkcjonalne i jednostkowe domyślnej struktury Wi-Fi: zarówno dla Menedżera Wi-Fi (kod po stronie aplikacji), jak i usługi Wi-Fi.

Testy Menedżera Wi-Fi:

  • Znajduje się w packages/modules/Wifi/framework/tests/
  • Uruchom, używając następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonania):

    atest FrameworksWifiApiTests
    

Testy usługi Wi-Fi:

  • Znajduje się w packages/modules/Wifi/service/tests/wifitests/
  • Uruchom, używając następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonania):

    atest FrameworksWifiTests
    

Zestaw testowy komunikacji Androida

Pakiet Android Comms Test Suite (ACTS) przeprowadza automatyczne testowanie stosów łączności, takich jak Wi-Fi, Bluetooth i usługi komórkowe. Narzędzie do testowania wymaga adb i Pythona i można je znaleźć w tools/test/connectivity/acts .

Testy ACTS dla Wi-FI można znaleźć w tools/test/connectivity/acts_tests/tests/google/wifi , z przykładową konfiguracją testu w tym samym katalogu: example_config.json .

Testy CTS

Zestaw testów zgodności (CTS) zawiera testy platformy Wi-Fi. Znajdują się one w cts/tests/tests/net/src/android/net/wifi . Testy Wi-Fi CTS wymagają, aby testowane urządzenie było powiązane z punktem dostępowym na początku przebiegu testowego.

Ulepszone opcje rejestrowania na potrzeby debugowania

W systemie Android 9 ulepszono rejestrowanie Wi-Fi, aby ułatwić debugowanie problemów z Wi-Fi. W systemie Android 9 lub nowszym bufory pierścieniowe sterownika/oprogramowania sprzętowego mogą być zawsze włączone. Raporty o błędach mogą być automatycznie generowane po wykryciu złego stanu (tylko w przypadku debugowania użytkownika i kompilacji eng). Kiedy używana jest Wi-Fi HAL (AIDL lub HIDL w wersji 1.2 lub nowszej), bufory debugowania oprogramowania sprzętowego są przechowywane w warstwie HAL zamiast w strukturze, aby zaoszczędzić na kosztach IPC.

Realizacja

Aby zapoznać się z implementacją referencyjną, zobacz domyślną implementację w warstwie HAL dostawcy.

Możesz wyłączyć rejestrowanie oprogramowania sprzętowego, ustawiając zasób config_wifi_enable_wifi_firmware_debugging na wartość false.

Test integracyjny (ACTS)

Test integracji można znaleźć pod adresem /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py .

Zweryfikowane zrzuty oprogramowania sprzętowego są zachowywane w odpowiednim katalogu nagrobków w pamięci flash na potrzeby kompilacji debugowania użytkownika. Dumpstate zbiera dane z tego katalogu podczas tworzenia raportu o błędzie.

Test ręczny

Uruchom ten test ręczny, aby sprawdzić, czy stare pliki w katalogu Tombstone są usuwane.

  1. Włącz Wi-Fi.
  2. Połączyć się z siecią.
  3. Wygeneruj raport o błędzie .
  4. Sprawdź plik ZIP raportu o błędzie i sprawdź, czy istnieją zarchiwizowane dzienniki oprogramowania sprzętowego. Dzienniki znajdują się w następujących lokalizacjach:

    • AIDL HAL: sekcja dumpsys głównego pliku raportu o błędach
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Strojenie konfiguracji

Aby kontrolować siłę sygnału, z jaką urządzenie łączy się z siecią lub odłącza się od niej, struktura Wi-Fi wykorzystuje progi wejściowe i wyjściowe RSSI.

Progi wejściowe i wyjściowe są przechowywane jako przeciążalne parametry konfiguracyjne o następujących nazwach (gdzie bad parametr odnosi się do progu wyjściowego 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

Parametry są przechowywane w <root>/frameworks/base/core/res/res/values/config.xml i mogą być przeciążane przy użyciu pliku nakładki <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml .

Możesz przetestować nowe progi, konfigurując urządzenie za pomocą poleceń adb. (Alternatywnie możesz utworzyć kompilację z nowymi nakładkami, ale użycie poleceń adb zapewnia szybszą realizację testów.)

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

Na przykład następujące polecenie konfiguruje nowe parametry progowe (wartości użyte w tym przykładowym poleceniu są wartościami domyślnymi skonfigurowanymi w bazie kodu AOSP):

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

Aby przywrócić wartości wbudowanych parametrów (tj. usunąć przesłonięcia), użyj następującego polecenia adb:

adb shell settings delete global wifi_score_params