idevice
Device Info & System

Notification Proxy

Post and observe Darwin notification names on the device.

Notification Proxy exposes com.apple.mobile.notification_proxy through NotificationProxyClient. It can post notification identifiers and receive observed notifications.

Use It For

  • Observe a notification identifier.
  • Post a notification identifier.
  • Convert notifications into an async stream.

Feature Flag

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

Service Names

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

Rust Example

src/main.rs
use idevice::{
    IdeviceService,
    notification_proxy::NotificationProxyClient,
};

let provider = first_provider().await?;
let mut client = NotificationProxyClient::connect(&provider).await?;
client.observe_notification("com.apple.mobile.lockdown.host_attached").await?;
let notification = client.receive_notification().await?;
println!("{notification:#?}");

CLI Equivalent

Terminal
idevice-tools notification_proxy observe com.apple.mobile.lockdown.host_attached
idevice-tools notification_proxy post com.apple.mobile.lockdown.host_attached

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