確認とデバッグ

Bluetooth スタックの検証とデバッグを行うには、AOSP で提供されているツールと Bluetooth Special Interest Group(SIG)のテストを使用します。

テストと検証

AOSP では、Bluetooth スタックのテストに際して、単体テストと CTS テストに加えて、Bluetooth プロファイル チューニング スイート用のツールを提供しています。

AOSP の単体テスト

AOSP では、デフォルトの Bluetooth スタックを対象に機能テストと単体テストを用意しています。これらのテストは /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/README.md にあります。

プロファイル チューニング スイート

Bluetooth SIG では Bluetooth プロファイル チューニング スイート(PTS)を提供しています。これは、プロトコルとプロファイルの相互運用性をテストするためのツールです。詳細については、Bluetooth プロファイル チューニング スイートのサイトをご覧ください。

CTS テスト

互換性テストスイート(CTS)には、Bluetooth スタックのテストが含まれています。これらは cts/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth にあります。

デバッグ オプション

AOSP では、ログやバグレポートなど、デバイスの Bluetooth スタックのデバッグを行うためのさまざまな方法を用意しています。ただし、再現性のない問題や音声の問題に関しては、プラットフォームやデバイスの複数の要素からの影響を受ける可能性があり、機能しない場合もあります。

バグレポートによるデバッグ

dumpsys を使用して Bluetooth サービスのステータスを確認するには、次のコマンドを使用します。

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 では、個人情報を含まない情報とイベントのみが記録されます。すべてのデータをログに記録するには、ユーザーが次の手順で Bluetooth HCI スヌープを有効にする必要があります。

  1. デバイスで [開発者向けオプション] を有効にします。
  2. [開発者向けオプション] メニューで、[Bluetooth HCI スヌープログ] を有効に切り替えます。
  3. Bluetooth を再起動してロギングを有効にします。