idevice
Logs & Capture

Bluetooth Packet Logger

Capture Bluetooth packet logger frames.

Bluetooth Packet Logger exposes com.apple.bluetooth.BTPacketLogger through BtPacketLoggerClient. It reads Bluetooth frames and can be used as a stream.

Use It For

  • Read Bluetooth packet logger frames.
  • Convert frames into a stream.
  • Write captured traffic from the bundled tool.

Feature Flag

Cargo.toml
[dependencies]
idevice = { version = "0.1.64", features = ["usbmuxd", "bt_packet_logger"] }

Service Names

PathValue
Lockdowncom.apple.bluetooth.BTPacketLogger
RSDcom.apple.bluetooth.BTPacketLogger.shim.remote

Rust Example

src/main.rs
use idevice::{
    IdeviceService,
    bt_packet_logger::BtPacketLoggerClient,
};

let provider = first_provider().await?;
let mut client = BtPacketLoggerClient::connect(&provider).await?;
let frame = client.next_packet().await?;
println!("{:?}", frame.kind);

CLI Equivalent

Terminal
idevice-tools bt_packet_logger capture.pcap
idevice-tools bt_packet_logger -

Common Errors

ErrorWhat to check
Service not foundThe device/iOS version does not advertise this service on the selected transport.
Connection failedCheck pairing, trust state, and whether the selected provider can reach the device.
Permission errorThe service requires a device state, entitlement, or developer setting that is not active.

Source

On this page