Bluetoothのパケットキャプチャ
Linux: hcidump とかWiresharkとか
https://unarist.hatenablog.com/entry/2016/06/27/015349
Windows: Bluetooth Test Platform の btvs.exe を使うとよい
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/bluetooth/testing-btp-tools-btvs
https://impsbl.hatenablog.jp/entry/BluetoothPacketCaptureInWindows
https://learn.microsoft.com/en-us/windows-hardware/drivers/bluetooth/testing-btp-setup-package
デフォルトだと C:\BTP 下にインストールされる
Android: Bluetooth HCI snoop ログが取れるらしい(試してはいない)
https://expnote.com/android-bluetooth-sbc-bitpool/
mac/iOS: 開発者向け(要お布施)に PacketLogger なるツールがあるらしい(試してはいない)
https://zenn.dev/moutend/articles/36b1c43f4a97b8
↑はiOSで試してみた話だが、同じツールでmac上のキャプチャもいけそうな雰囲気
Wireshark上の頻出プロトコル名
HCI_CMD, HCI_EVT: Host Controller Interface なので、自身のBluetoothコントローラとの通信するやつ
L2CAP (btl2cap): L2層。論理チャンネルを生やす
SDP: Service Discovery Protocol。その名の通り。
RFCOMM (btrfcomm): Bluetooth上でシリアル通信するやつ。HFPのパラメータ交換とかはここが最上位。
AVDTP (btavdtp): Audio/Video Distribution Transport Protocol。A2DPとかで使うトランスポート層。A2DPのパラメータ交換とかはここが最上位。
AVストリーム自体はここを通らず、L2CAP/A2DP/RTP/SBCみたいなスタックで表示される
見所: コーデック選択とパラメータ設定、DelayReporting
AVRCP: Audio/Video Remote Control Protocol。だいたいA2DPと併用して曲名の転送や再生制御をするやつ