Ta strona opisuje, jak testować, debugować i dostrajać implementację Wi-Fi za pomocą narzędzi dostarczonych w AOSP.
Testowanie
Aby przetestować framework Wi-Fi, AOSP zapewnia mieszankę testów jednostkowych, testów integracyjnych (ACTS) i testów CTS.
Testy jednostkowe
AOSP obejmuje testy funkcjonalne i jednostkowe dla domyślnej struktury Wi-Fi: zarówno dla Menedżera Wi-Fi (kod po stronie aplikacji), jak i dla usługi Wi-Fi.
Testy Wi-Fi Managera:
- Znajduje się w
packages/modules/Wifi/framework/tests/
Uruchom przy użyciu następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonywania):
atest FrameworksWifiApiTests
Testy usługi Wi-Fi:
- Znajduje się w
packages/modules/Wifi/service/tests/wifitests/
Uruchom przy użyciu następującego pliku wykonywalnego powłoki (przeczytaj plik, aby uzyskać więcej opcji wykonywania):
atest FrameworksWifiTests
Pakiet testowy Android Comms
Pakiet Android Comms Test Suite (ACTS) przeprowadza automatyczne testy 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
Compatibility Test Suite (CTS) zawiera testy dla frameworka 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 testu.
Ulepszone opcje rejestrowania do debugowania
Android 9 poprawia rejestrowanie Wi-Fi, aby ułatwić debugowanie problemów z Wi-Fi. W systemie Android 9 lub nowszym bufory pierścieniowe sterowników/oprogramowania układowego mogą być zawsze włączone. Raporty o błędach mogą być automatycznie wyzwalane po wykryciu złego stanu (tylko w kompilacjach userdebug i eng). Gdy używana jest warstwa HAL Wi-Fi (wersja 1.2 lub nowsza), bufory debugowania oprogramowania układowego są przechowywane w warstwie HAL zamiast w strukturze, aby zaoszczędzić koszty IPC.
Realizacja
Aby zapoznać się z implementacją referencyjną, zobacz domyślną implementację w HAL dostawcy.
Rejestrowanie oprogramowania układowego można wyłączyć, ustawiając zasób config_wifi_enable_wifi_firmware_debugging
, na wartość false.
Test integracji (ACTS)
Test integracji można znaleźć pod adresem /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py
.
Zweryfikowane zrzuty oprogramowania układowego są utrwalane w odpowiednim katalogu tombstone we flashu dla kompilacji userdebug. 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.
- Włącz Wi-Fi.
- Połączyć się z siecią.
- Wygeneruj raport o błędzie .
- Sprawdź plik zip z raportem błędów i sprawdź, czy
/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt
zawiera zarchiwizowane dzienniki oprogramowania układowego.
Strojenie konfiguracji
Aby kontrolować siłę sygnału, przy której urządzenie łączy się lub rozłącza z siecią, struktura Wi-Fi używa progów wejściowych i wyjściowych RSSI.
Progi wejścia i wyjścia są przechowywane jako przeciążalne parametry konfiguracyjne o następujących nazwach (gdzie bad
parametr odnosi się do progu wyjścia 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ą zostać przeciążone 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 szybsze wykonanie 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ą skonfigurowanymi wartościami domyślnymi 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ć wbudowane wartości parametrów (tj. usunąć nadpisania) użyj następującego polecenia adb:
adb shell settings delete global wifi_score_params