idevice
Developer Tools

DVT Remote Server

Open DVT channels over Instruments Remote Server or CoreDevice dtservicehub.

DVT Remote Server is the transport layer used by the DVT clients. RemoteServerClient opens channels and sends DTX method calls.

Use It For

  • Open the root DVT connection.
  • Create named DVT channels.
  • Call DTX methods on a channel.
  • Back higher-level DVT clients such as process control and sysmontap.

Feature Flag

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

Service Names

PathValue
Lockdowncom.apple.instruments.remoteserver
Lockdown fallbackcom.apple.instruments.remoteserver.DVTSecureSocketProxy
RSDcom.apple.instruments.dtservicehub

Rust Example

src/main.rs
use idevice::dvt::RemoteServerClient;

let provider = first_provider().await?;
let mut remote = RemoteServerClient::connect(&provider).await?;
let mut channel = remote
    .make_channel("com.apple.instruments.server.services.deviceinfo")
    .await?;

CLI Equivalent

Terminal
DVT-specific commands such as `process_control`, `sysmontap`, `graphics`, and `xctest` connect through this service.

Common Errors

ErrorWhat to check
Channel creation failedThe DVT remote server did not accept the channel identifier.
Protocol decode errorCheck that the client and device service are using the expected DTX payload shape.
Developer service unavailableStart from the iOS 17+ tunnel path or a device state that exposes developer services.

Source

On this page