From b4f1d85c03b5ddafafc735dea5ac5d4f61ae9b38 Mon Sep 17 00:00:00 2001 From: Jackson Coxson Date: Sat, 1 Feb 2025 17:11:24 -0700 Subject: [PATCH] Start lockdown session for services --- idevice/src/core_device_proxy.rs | 4 ++++ idevice/src/heartbeat.rs | 4 ++++ idevice/src/installation_proxy.rs | 3 +++ idevice/src/mounter.rs | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/idevice/src/core_device_proxy.rs b/idevice/src/core_device_proxy.rs index 2d1b11b..7ec4864 100644 --- a/idevice/src/core_device_proxy.rs +++ b/idevice/src/core_device_proxy.rs @@ -73,6 +73,10 @@ impl IdeviceService for CoreDeviceProxy { provider: &dyn crate::provider::IdeviceProvider, ) -> Result { let mut lockdown = LockdowndClient::connect(provider).await?; + lockdown + .start_session(&provider.get_pairing_file().await?) + .await?; + let (port, ssl) = lockdown.start_service(Self::service_name()).await?; let mut idevice = provider.connect(port).await?; diff --git a/idevice/src/heartbeat.rs b/idevice/src/heartbeat.rs index 563a9a6..6025ad1 100644 --- a/idevice/src/heartbeat.rs +++ b/idevice/src/heartbeat.rs @@ -16,6 +16,10 @@ impl IdeviceService for HeartbeatClient { provider: &dyn crate::provider::IdeviceProvider, ) -> Result { let mut lockdown = LockdowndClient::connect(provider).await?; + lockdown + .start_session(&provider.get_pairing_file().await?) + .await?; + let (port, ssl) = lockdown.start_service(Self::service_name()).await?; let mut idevice = provider.connect(port).await?; diff --git a/idevice/src/installation_proxy.rs b/idevice/src/installation_proxy.rs index 3fcf5b5..b02b701 100644 --- a/idevice/src/installation_proxy.rs +++ b/idevice/src/installation_proxy.rs @@ -18,6 +18,9 @@ impl IdeviceService for InstallationProxyClient { provider: &dyn crate::provider::IdeviceProvider, ) -> Result { let mut lockdown = LockdowndClient::connect(provider).await?; + lockdown + .start_session(&provider.get_pairing_file().await?) + .await?; let (port, ssl) = lockdown.start_service(Self::service_name()).await?; let mut idevice = provider.connect(port).await?; diff --git a/idevice/src/mounter.rs b/idevice/src/mounter.rs index d555d49..ab3bc56 100644 --- a/idevice/src/mounter.rs +++ b/idevice/src/mounter.rs @@ -15,6 +15,10 @@ impl IdeviceService for ImageMounter { provider: &dyn crate::provider::IdeviceProvider, ) -> Result { let mut lockdown = LockdowndClient::connect(provider).await?; + lockdown + .start_session(&provider.get_pairing_file().await?) + .await?; + let (port, ssl) = lockdown.start_service(Self::service_name()).await?; let mut idevice = provider.connect(port).await?;