本頁介紹如何使用 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、藍牙和蜂窩服務)執行自動測試。測試工具需要 adb 和 Python,可以在tools/test/connectivity/acts
中找到。
Wi-FI 的 ACTS 測試位於tools/test/connectivity/acts_tests/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(AIDL 或 HIDL 版本 1.2 或更高版本)時,韌體偵錯緩衝區儲存在 HAL 而不是框架中,以節省 IPC 成本。
執行
有關參考實現,請參閱供應商 HAL 中的預設實現。
您可以將資源config_wifi_enable_wifi_firmware_debugging
設定為 false 來停用韌體日誌記錄。
整合測試(ACTS)
整合測試可以在/tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py
找到。
經過驗證的韌體轉儲將保留在快閃記憶體中對應的邏輯刪除目錄中,以供使用者偵錯建置使用。建立錯誤報告時,Dumpstate 從此目錄收集。
手動測試
執行此手動測試以驗證邏輯刪除目錄中的舊檔案是否已刪除。
- 開啟 Wi-Fi。
- 連接網路。
- 產生錯誤報告。
檢查錯誤報告 Zip 檔案並驗證已存檔的韌體日誌是否存在。日誌可在以下位置找到:
- AIDL HAL:主錯誤報告檔案的
dumpsys
部分 - HIDL HAL:
/lshal-debug/android.hardware.wifi@1.x::IWifi_default.txt
::IWifi_default.txt
- AIDL HAL:主錯誤報告檔案的
配置調整
為了控制設備與網路關聯或斷開關聯的訊號強度,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
進行重載<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