WLAN testen, Fehler beheben und optimieren

Auf dieser Seite wird beschrieben, wie Sie die WLAN-Implementierung mit den in AOSP bereitgestellten Tools testen, beheben und optimieren.

Testen

Zum Testen des WLAN-Frameworks bietet AOSP eine Mischung aus Unit-Tests und CTS-Tests.

Einheitentests

AOSP enthält Funktions- und Unit-Tests für das Standard-WLAN-Framework: sowohl für den WLAN-Manager (app-seitiger Code) als auch für den WLAN-Dienst.

WLAN-Manager-Tests:

  • Befindet sich in packages/modules/Wifi/framework/tests/
  • Führen Sie die Datei mit der folgenden ausführbaren Shell aus. Weitere Ausführungsoptionen finden Sie in der Datei:

    atest FrameworksWifiApiTests

WLAN-Diensttests:

  • Befindet sich in packages/modules/Wifi/service/tests/wifitests/
  • Führen Sie die Datei mit der folgenden ausführbaren Shell aus. Weitere Ausführungsoptionen finden Sie in der Datei:

    atest FrameworksWifiTests

CTS-Tests

Die Compatibility Test Suite (CTS) umfasst Tests für das Wi‑Fi-Framework. Sie befinden sich unter cts/tests/tests/net/src/android/net/wifi. Für die Wi‑Fi CTS-Tests muss das zu testende Gerät zu Beginn des Testlaufs mit einem Zugangspunkt verknüpft sein.

Erweiterte Protokollierungsoptionen zur Fehlerbehebung

In Android 9 wurde die WLAN-Protokollierung verbessert, um WLAN-Probleme leichter beheben zu können. Unter Android 9 oder höher können Treiber- oder Firmware-Ringpuffer immer aktiviert sein. Fehlerberichte können automatisch ausgelöst werden, wenn ein fehlerhafter Zustand erkannt wird (nur in userdebug- und eng-Builds). Wenn die Wi‑Fi HAL (AIDL- oder HIDL-Version 1.2 oder höher) verwendet wird, werden Firmware-Debug-Puffer im HAL anstelle des Frameworks gespeichert, um IPC-Kosten zu sparen.

Implementierung

Eine Referenzimplementierung findest du in der Standardimplementierung der HAL des Anbieters.

Sie können das Firmware-Logging deaktivieren, indem Sie die Ressource config_wifi_enable_wifi_firmware_debugging auf „false“ setzen.

Manueller Test

Führen Sie diesen manuellen Test aus, um zu prüfen, ob alte Dateien im Verzeichnis für Tombstones gelöscht werden.

  1. Aktivieren Sie die WLAN-Funktion.
  2. Stellen Sie eine Verbindung zu einem Netzwerk her.
  3. Erstellen Sie einen Fehlerbericht.
  4. Prüfen Sie die ZIP-Datei des Fehlerberichts und achten Sie darauf, dass die archivierten Firmware-Protokolle vorhanden sind. Sie finden die Protokolle an den folgenden Speicherorten:

    • AIDL HAL: Abschnitt dumpsys der Hauptdatei „bugreport“
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

Konfiguration optimieren

Um die Signalstärke zu steuern, mit der ein Gerät eine Verbindung zu einem Netzwerk herstellt oder trennt, verwendet das WLAN-Framework die RSSI-Grenzwerte entry (Eintritt) und exit (Austritt).

Die Grenzwerte für Eintritt und Austritt werden als überladbare Konfigurationsparameter mit den folgenden Namen gespeichert. Dabei bezieht sich der Parameter bad auf den RSSI-Grenzwert für den Austritt:

  • 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

Die Parameter werden in <root>/frameworks/base/core/res/res/values/config.xml gespeichert und können mit der Overlay-Datei <root>/device/<dev_dir>/overlay/frameworks/base/core/res/res/values/config.xml überschrieben werden.

Sie können neue Grenzwerte testen, indem Sie das Gerät mit ADB-Befehlen konfigurieren. Alternativ können Sie ein Build mit neuen Overlays erstellen, aber mit adb-Befehlen eine schnellere Testdurchlaufzeit erzielen.

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

Mit dem folgenden Befehl werden beispielsweise neue Grenzwertparameter konfiguriert. Die in diesem Beispielbefehl verwendeten Werte sind die konfigurierten Standardwerte in der AOSP-Codebasis:

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

Wenn Sie die vordefinierten Parameterwerte wiederherstellen möchten (d.h. die Überschreibungen entfernen), verwenden Sie den folgenden adb-Befehl:

adb shell settings delete global wifi_score_params