이 페이지에서는 AOSP에서 제공한 도구를 사용하여 Wi-Fi 구현을 테스트, 디버그 및 미세 조정하는 방법을 설명합니다.
테스트
Wi-Fi 프레임워크를 테스트할 수 있도록 AOSP에서는 단위 테스트, 통합 테스트(ACTS) 및 CTS 테스트를 혼합하여 제공합니다.
단위 테스트
AOSP에는 기본 Wi-Fi 프레임워크, 즉 Wi-Fi 관리자(앱 측 코드)와 Wi-Fi 서비스의 기능 및 단위 테스트가 포함되어 있습니다.
Wi-Fi 관리자 테스트:
packages/modules/Wifi/framework/tests/
에 있습니다.다음 셸 실행 파일을 사용하여 실행합니다(자세한 실행 옵션은 파일 참조).
atest FrameworksWifiApiTests
Wi-Fi 서비스 테스트:
packages/modules/Wifi/service/tests/wifitests/
에 있습니다.다음 셸 실행 파일을 사용하여 실행합니다(자세한 실행 옵션은 파일 참조).
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(버전 1.2 이상)을 사용하면 펌웨어 디버그 버퍼가 프레임워크 대신 HAL에 저장되어 IPC 비용을 절감할 수 있습니다.
구현
참조 구현은 공급업체 HAL의 기본 구현을 참고하세요.
config_wifi_enable_wifi_firmware_debugging
리소스를 false로 설정하여 펌웨어 로깅을 사용 중지할 수 있습니다.
통합 테스트(ACTS)
통합 테스트는 /tools/test/connectivity/acts_tests/tests/google/wifi/WifiDiagnosticsTest.py
에서 찾을 수 있습니다.
확인된 펌웨어 덤프는 userdebug 빌드용 플래시의 적절한 Tombstone 디렉터리에 유지됩니다. dumpstate는 버그 신고를 생성할 때 이 디렉터리에서 수집합니다.
수동 테스트
이 수동 테스트를 실행하여 Tombstone 디렉터리의 이전 파일이 삭제되어 있는지 확인합니다.
- Wi-Fi를 사용 설정합니다.
- 네트워크에 연결합니다.
- 버그 신고를 생성합니다.
- bugreport ZIP 파일을 검사하여
/lshal-debug/android.hardware.wifi@1.2__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