Wi-Fi 테스트, 디버그, 조정

이 페이지에서는 AOSP에서 제공한 도구를 사용하여 Wi-Fi 구현을 테스트, 디버그, 미세 조정하는 방법을 설명합니다.

테스트

Wi-Fi 프레임워크를 테스트할 수 있도록 AOSP에서는 단위 테스트와 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

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로 설정하여 펌웨어 로깅을 사용 중지할 수 있습니다.

수동 테스트

이 수동 테스트를 실행하여 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 프레임워크는 기기가 네트워크와 연결되거나 연결 해제되는 신호 강도를 제어하기 위해 entryexit RSSI 임계값을 사용합니다.

entryexit 임계값은 다음 이름이 포함된 오버로드 가능한 구성 매개변수로 저장됩니다 (여기서 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