このページでは、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 ディレクトリの古いファイルが削除されていることを確認します。
- Wi-Fi をオンにします。
- ネットワークに接続します。
- バグレポートを生成します。
バグレポートの ZIP ファイルを調べ、ファームウェア ログのアーカイブが存在するかどうかを確認します。ログは以下の場所にあります。
- AIDL HAL: メインのバグレポート ファイルの
dumpsys
セクション - HIDL HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
- AIDL HAL: メインのバグレポート ファイルの
構成のチューニング
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