Wi-Fi をテスト、デバッグ、チューニングする

このページでは、AOSP で提供されているツールを使用して Wi-Fi の実装をテスト、デバッグ、チューニングする方法について説明します。

テスト

Wi-Fi フレームワークをテストするために、AOSP には単体テストと CTS テストがあります。

単体テスト

AOSP には、デフォルトの Wi-Fi フレームワークの機能テストと単体テストが用意されており、Wi-Fi マネージャー(アプリ側のコード)と Wi-Fi Service の両方に対応しています。

Wi-Fi マネージャーのテスト:

  • packages/modules/Wifi/framework/tests/ にあります
  • 次のシェル実行可能ファイルを使用して実行します(ファイルを読んで実行オプションを確認してください)

    atest FrameworksWifiApiTests
    

Wi-Fi Service のテスト:

  • packages/modules/Wifi/service/tests/wifitests/ にあります
  • 次のシェル実行可能ファイルを使用して実行します(ファイルを読んで実行オプションを確認してください)

    atest FrameworksWifiTests
    

CTS テスト

互換性テストスイート(Compatibility Test Suite、CTS)には、Wi-Fi フレームワークのテストが用意されています。これらは cts/tests/tests/net/src/android/net/wifi にあります。Wi-Fi CTS テストでは、テスト実行開始時にアクセス ポイントに device-under-test を関連付ける必要があります。

デバッグ用の拡張ロギング オプション

Android 9 では Wi-Fi ロギングが改善されており、Wi-Fi の問題を簡単にデバッグできます。Android 9 以降では、ドライバやファームウェアのリングバッファを常にオンに設定できます。バグレポートは、不正な状態が検出されたときに自動的にトリガーできます(userdebug ビルドと eng ビルドの場合のみ)。Wi-Fi HAL(AIDL または HIDL のバージョン 1.2 以降)が使用された場合、ファームウェアのデバッグ バッファは、IPC コスト削減のためフレームワークではなく HAL に保存されます。

実装

参照の実装については、ベンダー HAL のデフォルト実装をご覧ください。

ファームウェア ロギングを無効にするには、リソース config_wifi_enable_wifi_firmware_debugging を false に設定します。

手動テスト

手動テストを実行して、tombstone ディレクトリの古いファイルが削除されていることを確認します。

  1. Wi-Fi をオンにします。
  2. ネットワークに接続します。
  3. バグレポートを生成します。
  4. バグレポートの ZIP ファイルを調べ、ファームウェア ログのアーカイブが存在するかどうかを確認します。ログは以下の場所にあります。

    • AIDL HAL: メインのバグレポート ファイルの dumpsys セクション
    • HIDL HAL: /lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt

構成のチューニング

Wi-Fi フレームワークは、デバイスがネットワークにアソシエートまたはアソシエーション解除する電波強度を制御するために、entry と exit の RSSI しきい値を使用します。

entry と exit のしきい値は、次の名前を持つオーバーロード可能な構成パラメータとして格納されます。その際、bad パラメータは exit の 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