Developer Tools
DVT Location Simulation
Set or clear simulated location through DVT.
DVT Location Simulation is a DVT client built on RemoteServerClient. It opens the com.apple.instruments.server.services.LocationSimulation channel.
Use It For
- Connect through the DVT remote server.
- Call the service-specific DTX methods.
- Use the matching
idevice-toolscommand when one exists.
Feature Flag
[dependencies]
idevice = { version = "0.1.64", features = ["usbmuxd", "location_simulation"] }Service Names
| Path | Value |
|---|---|
| DVT Lockdown | com.apple.instruments.remoteserver |
| DVT Lockdown fallback | com.apple.instruments.remoteserver.DVTSecureSocketProxy |
| DVT RSD | com.apple.instruments.dtservicehub |
| DVT channel | com.apple.instruments.server.services.LocationSimulation |
Rust Example
use idevice::dvt::{
RemoteServerClient,
location_simulation::LocationSimulationClient,
};
let mut remote = RemoteServerClient::connect(&provider).await?;
let mut client = LocationSimulationClient::new(&mut remote).await?;
client.set(37.3349, -122.0090).await?;
client.clear().await?;CLI Equivalent
idevice-tools location_simulation set 37.3349 -122.0090
idevice-tools location_simulation clearCommon Errors
| Error | What to check |
|---|---|
| Channel creation failed | The DVT remote server did not accept the channel identifier. |
| Protocol decode error | Check that the client and device service are using the expected DTX payload shape. |
| Developer service unavailable | Start from the iOS 17+ tunnel path or a device state that exposes developer services. |