CoreDevice
Display Stream
Start and stop CoreDevice media display streams.
Display Stream is a CoreDevice service reached through RSD and RemoteXPC. The client connects to com.apple.coredevice.displayservice.
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
[dependencies]
idevice = { version = "0.1.64", features = ["usbmuxd", "display_stream"] }Service Names
| Path | Value |
|---|---|
| RSD | com.apple.coredevice.displayservice |
Rust Example
use idevice::{RsdService, core_device::DisplayServiceClient};
let mut client: DisplayServiceClient<_> = rsd_handshake
.connect(&mut rsd_provider)
.await?;
let status = client.get_media_stream_server_status().await?;
println!("{status:#?}");CLI Equivalent
The display stream helper exists in tools/src/coredevice_stream.rs, but it is not registered as a top-level command in tools/src/main.rs.
Common Errors
| Error | What to check |
|---|---|
| RSD service not found | The connected device did not advertise the CoreDevice service name. |
| RemoteXPC error | Check the CoreDevice action and payload shape used by the client. |
| Tunnel unavailable | Create the iOS 17+ tunnel before connecting to CoreDevice services over USB. |