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
[dependencies]
idevice = { version = "0.1.64", features = ["usbmuxd", "misagent"] }Service Names
| Path | Value |
|---|---|
| Lockdown service | com.apple.misagent |
| RSD service | com.apple.misagent.shim.remote |
Rust Example
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
idevice-tools misagent list
idevice-tools misagent install ./profile.mobileprovision
idevice-tools misagent remove <profile-id>Common Errors
| Error | What to check |
|---|---|
MisagentFailure | The device returned a non-zero status for the operation. |
| Install fails | Check the profile bytes and whether the device permits installing it. |
| Remove fails | Confirm the profile ID exists on the device. |