확인 및 디버깅

블루투스 스택을 확인하고 디버깅하려면 AOSP에서 제공하는 도구 및 블루투스 SIG(Special Interest Group)의 테스트를 사용하세요.

테스트 및 확인

블루투스 스택을 테스트할 수 있도록 AOSP는 단위 테스트, CTS 테스트, 블루투스 프로필 미세조정 모음용 도구를 제공합니다.

AOSP의 단위 테스트

AOSP에는 기본 블루투스 스택용 기능 및 단위 테스트가 포함되어 있습니다. 이러한 테스트는 /packages/modules/Bluetooth/system/test/에 있습니다. AOSP 테스트를 실행하려면 다음 단계를 따르세요.

  1. Android 런타임을 중지합니다.
    adb shell stop
  2. 테스트 디렉터리에서 셸 실행 파일을 실행하고 특정 테스트 또는 테스트 모음을 실행하려는 경우 옵션을 포함합니다.
    ./run_unit_tests.sh TEST_GROUP_NAME TEST_NAME OPTIONS
  3. 테스트가 완료되면 Android 런타임을 다시 사용 설정합니다.
    adb shell start

테스트 이름의 목록은 /packages/modules/Bluetooth/system/test/run_unit_tests.sh 파일에서 찾을 수 있습니다.

Android 커뮤니케이션 테스트 모음

Android 커뮤니케이션 테스트 모음(ACTS)은 Wi-Fi, 블루투스 및 이동통신 서비스와 같은 연결 스택의 자동 테스트를 실행합니다. 테스트 도구는 adb 및 Python이 필요하며 tools/test/connectivity/acts에서 찾을 수 있습니다.

블루투스 및 저전력 블루투스용 ACTS 테스트는 각각 tools/test/connectivity/acts_tests/tests/google/bt/ tools/test/connectivity/acts_tests/tests/google/ble/에서 찾을 수 있습니다.

프로필 미세 조정 모음

블루투스 SIG는 프로토콜 및 프로필 상호 운용성 테스트 도구인 블루투스 프로필 미세 조정 모음(PTS)을 제공합니다. 자세한 내용은 블루투스 프로필 미세 조정 모음 사이트를 참고하세요.

AOSP는 블루투스 PTS를 보완하는 추가 도구를 제공합니다. 이 도구는 tools/test/connectivity/acts_tests/tests/google/bt/pts/에 있습니다.

CTS 테스트

호환성 테스트 모음(CTS)에는 블루투스 스택용 테스트가 포함되어 있습니다. 이 테스트는 cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth에 있습니다.

디버깅 옵션

AOSP에서는 로그 및 버그 신고를 포함하여 기기의 블루투스 스택을 디버깅하는 다양한 방법을 제공합니다. 이러한 방법은 재현할 수 없는 문제나 플랫폼 및 기기의 여러 부분에 의해 영향받을 수 있는 오디오 문제에는 효과가 없을 수도 있습니다.

버그 신고를 사용하여 디버깅

dumpsys를 사용하여 블루투스 서비스 상태를 확인하려면 다음 명령어를 사용하세요.

adb shell dumpsys bluetooth_manager

기본적으로 모든 로그 메시지는 트레이스 수준 2입니다. 로깅 수준에 관해 자세히 알아보고 다양한 프로필의 로깅 수준을 변경하려면 system/bt/conf/bt_stack.conf를 참고하세요.

버그 신고에서 스누프 로그를 추출하려면 btsnooz 스크립트를 사용하세요.

  1. btsnooz.py를 다운로드합니다.
  2. 버그 신고의 텍스트 버전을 추출합니다.
  3. 버그 신고의 텍스트 버전에서 btsnooz.py를 실행합니다.
    btsnooz.py BUG_REPORT.txt > BTSNOOP.log

로그를 사용하여 디버깅

Android 4.4 이상에서는 RFC 1761의 스누프 형식과 유사한 BTSnoop 로그를 수동으로 수집할 수 있습니다. 이러한 로그는 호스트 컨트롤러 인터페이스(HCI) 패킷을 캡처합니다. 대부분의 Android 기기에서 로그는 data/misc/bluetooth/logs에 저장됩니다.

개인 정보 보호를 위해 항상 사용되는 '메모리 내' BTSnoop는 개인 정보가 아닌 정보와 이벤트만 로깅합니다. 모든 데이터를 로깅하려면 사용자가 다음을 실행하여 블루투스 HCI 스누프를 사용 설정해야 합니다.

  1. 기기에서 개발자 옵션을 사용 설정합니다.
  2. 개발자 옵션 메뉴에서 블루투스 HCI 스누프 로그 사용 설정 전환 버튼을 활성화합니다.
  3. 블루투스를 다시 시작하여 로깅을 적용합니다.