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 이상)을 사용하는 경우 펌웨어는 디버그 버퍼는 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