idevice
Logs & Capture

Screenshotr

Take screenshots through the classic screenshot service.

Screenshotr exposes com.apple.mobile.screenshotr through ScreenshotService. It is separate from CoreDevice Screen Capture.

Use It For

  • Capture a screenshot through Lockdown-started screenshotr.
  • Receive device link messages from the service.
  • Save screenshot data from the bundled tool.

Feature Flag

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

Service Names

PathValue
Lockdowncom.apple.mobile.screenshotr
RSDcom.apple.screenshotr.shim.remote

Rust Example

src/main.rs
use idevice::{
    IdeviceService,
    screenshotr::ScreenshotService,
};

let provider = first_provider().await?;
let mut client = ScreenshotService::connect(&provider).await?;
let screenshot = client.take_screenshot().await?;
tokio::fs::write("screenshot.tiff", screenshot).await?;

CLI Equivalent

Terminal
idevice-tools screenshot screenshot.tiff

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