測試、調試和調整 Wi-Fi

本頁面介紹如何使用 AOSP 中提供的工具測試、調試和調整 Wi-Fi 實施。

測試

為了測試 Wi-Fi 框架,AOSP 提供了單元測試、集成測試 (ACTS) 和 CTS 測試的組合。

單元測試

AOSP 包括針對默認 Wi-Fi 框架的功能和單元測試:針對 Wi-Fi 管理器(應用端代碼)和 Wi-Fi 服務。

Wi-Fi 管理器測試:

  • 位於packages/modules/Wifi/framework/tests/
  • 使用以下 shell 可執行文件運行(閱讀文件以獲取更多執行選項):

    atest FrameworksWifiApiTests
    

Wi-Fi 服務測試:

  • 位於packages/modules/Wifi/service/tests/wifitests/
  • 使用以下 shell 可執行文件運行(閱讀文件以獲取更多執行選項):

    atest FrameworksWifiTests
    

Android 通信測試套件

Android 通信測試套件 (ACTS) 對連接堆棧(例如 Wi-Fi、藍牙和蜂窩服務)執行自動測試。測試工具需要亞行和Python,它可以發現tools/test/connectivity/acts

用於Wi-Fi的測試中發現ACTS tools/test/connectivity/acts/tests/google/wifi :與在相同的目錄中的一個示例性測試構造example_config.json

CTS 測試

兼容性測試套件(CTS)包括了Wi-Fi架構測試。這些位於cts/tests/tests/net/src/android/net/wifi 。 Wi-Fi CTS 測試要求被測設備在測試運行開始時與接入點相關聯。

用於調試的增強日誌記錄選項

Android 9 改進了 Wi-Fi 日誌記錄,以便更輕鬆地調試 Wi-Fi 問題。在 Android 9 或更高版本中,驅動程序/固件環形緩衝區可以始終打開。當檢測到錯誤狀態時,可以自動觸發錯誤報告(僅在 userdebug 和 eng 構建中)。當使用 Wi-Fi HAL(版本 1.2 或更高版本)時,固件調試緩衝區存儲在 HAL 而不是框架中,以節省 IPC 成本。

執行

對於一個參考實現,看到默認實現在供應商HAL。

您可以通過設置資源,禁用固件記錄config_wifi_enable_wifi_firmware_debugging ,為false。

集成測試 (ACTS)

集成測試,可以發現/tools/test/connectivity/acts/tests/google/wifi/WifiDiagnosticsTest.py

經驗證的固件轉儲保存在閃存中相應的邏輯刪除目錄中,用於用戶調試版本。 Dumpstate 在創建錯誤報告時從此目錄收集。

手動測試

運行該手動測試,以驗證在舊文件墓碑目錄都被刪除。

  1. 打開 Wi-Fi。
  2. 連接到網絡。
  3. 生成錯誤報告
  4. 檢查錯誤報告的zip文件,並驗證/lshal-debug/android.hardware.wifi@1.2__IWifi_default.txt保存歸檔日誌的固件。

配置調優

以控制一個設備關聯到或解離從網絡,所述Wi-Fi框架使用的入口出口的RSSI閾值的信號強度。

入口出口的閾值被存儲為具有下列名稱(其中重載配置參數bad參數指的是出口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