Testowanie, debugowanie i dostrajanie Wi-Fi

Z tego artykułu dowiesz się, jak testować, debugować i dostrajać implementację Wi-Fi za pomocą narzędzi dostępnych w AOSP.

Testowanie

Aby przetestować platformę Wi-Fi, AOSP udostępnia mieszankę testów jednostkowych i testów CTS.

Testy jednostkowe

AOSP zawiera 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:

  • Lokalizacja: packages/modules/Wifi/framework/tests/
  • Uruchom za pomocą tego pliku wykonywalnego powłoki (więcej opcji wykonania znajdziesz w pliku):

    atest FrameworksWifiApiTests

Testy usługi Wi-Fi:

  • Lokalizacja: packages/modules/Wifi/service/tests/wifitests/
  • Uruchom za pomocą tego pliku wykonywalnego powłoki (więcej opcji wykonania znajdziesz w pliku):

    atest FrameworksWifiTests

Testy CTS

Compatibility Test Suite (CTS) zawiera testy struktury Wi-Fi. Znajdują się one w cts/tests/tests/net/src/android/net/wifi. Testy CTS Wi-Fi wymagają, aby na początku testu urządzenie było połączone z punktem dostępu.

Ulepszone opcje logowania na potrzeby debugowania

W Androidzie 9 ulepszyliśmy rejestrowanie Wi-Fi, aby ułatwić debugowanie problemów z Wi-Fi. W Androidzie 9 lub nowszym bufory pierścieniowe sterownika lub oprogramowania sprzętowego mogą być zawsze włączone. Raporty o błędach mogą być automatycznie wywoływane po wykryciu nieprawidłowego stanu (tylko w wersjach userdebug i eng). Gdy używany jest interfejs HAL Wi-Fi (AIDL lub HIDL w wersji 1.2 lub nowszej), bufory debugowania oprogramowania układowego są przechowywane w interfejsie HAL zamiast w frameworku, aby obniżyć koszty IPC.

Implementacja

Implementację referencyjną znajdziesz w domyślnej implementacji w warstwie HAL dostawcy.

Rejestrowanie oprogramowania układowego możesz wyłączyć, ustawiając wartość zasobu config_wifi_enable_wifi_firmware_debugging na false.

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łącz się z siecią.
  3. Wygeneruj raport o błędzie.
  4. Sprawdź plik ZIP z raportem o błędzie i upewnij się, że zawiera on zarchiwizowane dzienniki oprogramowania. Dzienniki znajdują się w tych lokalizacjach:

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

Dostrajanie konfiguracji

Aby kontrolować siłę sygnału, przy której urządzenie łączy się z siecią lub odłącza od niej, platforma Wi-Fi używa progów RSSI wejściawyjścia.

Progi wejściawyjścia są przechowywane jako parametry konfiguracji, które można zastąpić, o tych nazwach (gdzie parametr bad odnosi się do progu RSSI wyjścia):

  • 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ążone za pomocą 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. (Możesz też utworzyć kompilację z nowymi nakładkami, ale użycie poleceń adb zapewni szybsze testowanie).

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

Na przykład to polecenie konfiguruje nowe parametry progowe (wartości użyte w tym przykładowym poleceniu to skonfigurowane wartości domyślne 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 (czyli usunąć zastąpienia), użyj tego polecenia adb:

adb shell settings delete global wifi_score_params