idevice
Files & Apps

Misagent

Install, remove, and list provisioning profiles.

MisagentClient connects to the iOS Mobile Installation Agent service. It manages provisioning profiles through install, remove, and copy-all operations.

Use It For

  • Installing provisioning profiles.
  • Removing provisioning profiles by ID.
  • Reading installed provisioning profiles.

Feature Flag

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

Service Names

PathValue
Lockdown servicecom.apple.misagent
RSD servicecom.apple.misagent.shim.remote

Rust Example

src/main.rs
use idevice::{IdeviceService, misagent::MisagentClient};

let provider = first_provider().await?;
let mut misagent = MisagentClient::connect(&provider).await?;

let profile = tokio::fs::read("./profile.mobileprovision").await?;
misagent.install(profile).await?;

let profiles = misagent.copy_all().await?;
println!("{} profiles installed", profiles.len());

CLI Equivalent

Terminal
idevice-tools misagent list
idevice-tools misagent install ./profile.mobileprovision
idevice-tools misagent remove <profile-id>

Common Errors

ErrorWhat to check
MisagentFailureThe device returned a non-zero status for the operation.
Install failsCheck the profile bytes and whether the device permits installing it.
Remove failsConfirm the profile ID exists on the device.

Source

On this page