idevice
CoreDevice

Diagnostics Service

Capture sysdiagnose through CoreDevice Diagnostics Service.

Diagnostics Service is a CoreDevice service reached through RSD and RemoteXPC. The client connects to com.apple.coredevice.diagnosticsservice.

Use It For

  • Connect through the iOS 17+ CoreDevice tunnel.
  • Call the typed CoreDevice client methods.
  • Use the matching tool command when one is registered.

Feature Flag

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

Service Names

PathValue
RSDcom.apple.coredevice.diagnosticsservice

Rust Example

src/main.rs
use idevice::{RsdService, core_device::DiagnostisServiceClient};

let mut client: DiagnostisServiceClient<_> = rsd_handshake
    .connect(&mut rsd_provider)
    .await?;
let response = client.capture_sysdiagnose(false).await?;
println!("{}", response.preferred_filename);

CLI Equivalent

Terminal
idevice-tools diagnosticsservice

Common Errors

ErrorWhat to check
RSD service not foundThe connected device did not advertise the CoreDevice service name.
RemoteXPC errorCheck the CoreDevice action and payload shape used by the client.
Tunnel unavailableCreate the iOS 17+ tunnel before connecting to CoreDevice services over USB.

Source

On this page