Connection
CoreDevice Proxy
Establish the CoreDevice CDTunnel used for iOS 17+ service access.
CoreDeviceProxy connects to the device service
com.apple.internal.devicecompute.CoreDeviceProxy and performs the CDTunnel
handshake. The tunnel carries raw IPv6 packets and exposes tunnel metadata,
including the device's RSD port.
Use It For
- Creating the USB tunnel used to reach iOS 17+ RSD services.
- Reading tunnel addresses, MTU, and server RSD port.
- Creating the in-process TCP adapter with
tunnel_tcp_stack.
Feature Flags
[dependencies]
idevice = { version = "0.1.64", features = ["core_device_proxy", "tunnel_tcp_stack"] }Use usbmuxd too when connecting over USB through a normal provider.
Service Name
com.apple.internal.devicecompute.CoreDeviceProxyRust Example
use idevice::{IdeviceService, core_device_proxy::CoreDeviceProxy};
let proxy = CoreDeviceProxy::connect(&provider).await?;
let rsd_port = proxy.tunnel_info().server_rsd_port;
let adapter = proxy.create_software_tunnel()?;
let mut adapter = adapter.to_async_handle();
let rsd_stream = adapter.connect(rsd_port).await?;From there, pass rsd_stream into RsdHandshake::new(...).
CLI Equivalent
idevice-tools remotexpcidevice-tools rppairing tunnelCommon Errors
| Error | What to check |
|---|---|
| CoreDeviceProxy connect failed | The device did not start com.apple.internal.devicecompute.CoreDeviceProxy. |
| Software tunnel failed | Build with tunnel_tcp_stack and confirm tunnel setup succeeded. |
| RSD connect failed | Use proxy.tunnel_info().server_rsd_port for the RSD connection. |