remove unused imports, cleanup code

This commit is contained in:
uncor3
2026-04-05 23:33:06 +00:00
parent 7861d4acfb
commit 0f85563dc5
10 changed files with 365 additions and 72 deletions
+322 -11
View File
@@ -8,6 +8,27 @@ version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
[[package]]
name = "aead"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
dependencies = [
"crypto-common",
"generic-array",
]
[[package]]
name = "aes"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
dependencies = [
"cfg-if",
"cipher",
"cpufeatures 0.2.17",
]
[[package]]
name = "aho-corasick"
version = "1.1.4"
@@ -121,6 +142,12 @@ dependencies = [
"fs_extra",
]
[[package]]
name = "base64"
version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "base64"
version = "0.22.1"
@@ -148,6 +175,15 @@ dependencies = [
"generic-array",
]
[[package]]
name = "block-padding"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
dependencies = [
"generic-array",
]
[[package]]
name = "bumpalo"
version = "3.20.2"
@@ -166,6 +202,15 @@ version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
[[package]]
name = "cbc"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
dependencies = [
"cipher",
]
[[package]]
name = "cc"
version = "1.2.57"
@@ -184,6 +229,41 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "chacha20"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
dependencies = [
"cfg-if",
"cipher",
"cpufeatures 0.2.17",
]
[[package]]
name = "chacha20"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"rand_core 0.10.0",
]
[[package]]
name = "chacha20poly1305"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
dependencies = [
"aead",
"chacha20 0.9.1",
"cipher",
"poly1305",
"zeroize",
]
[[package]]
name = "chrono"
version = "0.4.44"
@@ -198,6 +278,17 @@ dependencies = [
"windows-link",
]
[[package]]
name = "cipher"
version = "0.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
dependencies = [
"crypto-common",
"inout",
"zeroize",
]
[[package]]
name = "clang-format"
version = "0.3.0"
@@ -309,6 +400,15 @@ dependencies = [
"libc",
]
[[package]]
name = "cpufeatures"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
dependencies = [
"libc",
]
[[package]]
name = "crc32fast"
version = "1.5.0"
@@ -353,9 +453,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
dependencies = [
"generic-array",
"rand_core 0.6.4",
"typenum",
]
[[package]]
name = "curve25519-dalek"
version = "4.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be"
dependencies = [
"cfg-if",
"cpufeatures 0.2.17",
"curve25519-dalek-derive",
"digest",
"fiat-crypto",
"rustc_version",
"subtle",
"zeroize",
]
[[package]]
name = "curve25519-dalek-derive"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "cxx"
version = "1.0.194"
@@ -543,6 +671,7 @@ dependencies = [
"block-buffer",
"const-oid",
"crypto-common",
"subtle",
]
[[package]]
@@ -562,6 +691,31 @@ version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
[[package]]
name = "ed25519"
version = "2.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
dependencies = [
"pkcs8",
"signature",
]
[[package]]
name = "ed25519-dalek"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9"
dependencies = [
"curve25519-dalek",
"ed25519",
"rand_core 0.6.4",
"serde",
"sha2",
"subtle",
"zeroize",
]
[[package]]
name = "enum_dispatch"
version = "0.3.13"
@@ -608,6 +762,12 @@ version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "fiat-crypto"
version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
[[package]]
name = "find-msvc-tools"
version = "0.1.9"
@@ -800,6 +960,7 @@ dependencies = [
"cfg-if",
"libc",
"r-efi 6.0.0",
"rand_core 0.10.0",
"wasip2",
"wasip3",
]
@@ -837,6 +998,24 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hkdf"
version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
dependencies = [
"hmac",
]
[[package]]
name = "hmac"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
"digest",
]
[[package]]
name = "http"
version = "1.4.0"
@@ -903,7 +1082,7 @@ version = "0.1.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0"
dependencies = [
"base64",
"base64 0.22.1",
"bytes",
"futures-channel",
"futures-util",
@@ -1055,36 +1234,59 @@ dependencies = [
[[package]]
name = "idevice"
version = "0.1.53"
version = "0.1.57"
dependencies = [
"aes",
"async-stream",
"async_zip",
"base64",
"base64 0.22.1",
"byteorder",
"bytes",
"cbc",
"chacha20poly1305",
"chrono",
"crossfire",
"ed25519-dalek",
"futures",
"hkdf",
"hmac",
"idevice-srp",
"indexmap",
"jktcp",
"json",
"ns-keyed-archive",
"plist",
"plist-macro",
"rand 0.9.2",
"rand 0.10.0",
"reqwest",
"rsa",
"rustls",
"serde",
"serde_json",
"sha1",
"sha2",
"thiserror 2.0.18",
"tokio",
"tokio-rustls",
"tracing",
"uuid",
"x25519-dalek",
"x509-cert",
]
[[package]]
name = "idevice-srp"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d84c9637ebbdfa523f352b62c8cf791288b3fbf59f6eac6c57c7c9949f5924b2"
dependencies = [
"base64 0.21.7",
"digest",
"generic-array",
"lazy_static",
"num-bigint",
"subtle",
]
[[package]]
name = "idna"
version = "1.1.0"
@@ -1127,6 +1329,16 @@ dependencies = [
"rustversion",
]
[[package]]
name = "inout"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
dependencies = [
"block-padding",
"generic-array",
]
[[package]]
name = "ipnet"
version = "2.12.0"
@@ -1149,6 +1361,19 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "jktcp"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a5e6f49d25ffd9617fde3b1f01b6bc349497affef78d5fc67f5b0f0b4b3924c"
dependencies = [
"crossfire",
"futures",
"rand 0.9.2",
"tokio",
"tracing",
]
[[package]]
name = "jobserver"
version = "0.1.34"
@@ -1243,6 +1468,16 @@ version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "md-5"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
dependencies = [
"cfg-if",
"digest",
]
[[package]]
name = "memchr"
version = "2.8.0"
@@ -1272,9 +1507,9 @@ dependencies = [
[[package]]
name = "ns-keyed-archive"
version = "0.1.4"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bc340e0b7a5bb4b06338cafa693d0b585d597b024fff876c5dad385a00d83e7"
checksum = "815e8c8171d033165fdda6d95630d6f447592ad5e6fbade9db26663970c6fae6"
dependencies = [
"nskeyedarchiver_converter",
"plist",
@@ -1290,6 +1525,16 @@ dependencies = [
"thiserror 2.0.18",
]
[[package]]
name = "num-bigint"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
dependencies = [
"num-integer",
"num-traits",
]
[[package]]
name = "num-bigint-dig"
version = "0.8.6"
@@ -1348,6 +1593,12 @@ version = "1.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
[[package]]
name = "opaque-debug"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "parking"
version = "2.2.1"
@@ -1457,7 +1708,7 @@ version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07"
dependencies = [
"base64",
"base64 0.22.1",
"indexmap",
"quick-xml",
"serde",
@@ -1473,6 +1724,17 @@ dependencies = [
"plist",
]
[[package]]
name = "poly1305"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
dependencies = [
"cpufeatures 0.2.17",
"opaque-debug",
"universal-hash",
]
[[package]]
name = "potential_utf"
version = "0.1.4"
@@ -1579,6 +1841,17 @@ dependencies = [
"rand_core 0.9.5",
]
[[package]]
name = "rand"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8"
dependencies = [
"chacha20 0.10.0",
"getrandom 0.4.2",
"rand_core 0.10.0",
]
[[package]]
name = "rand_chacha"
version = "0.3.1"
@@ -1617,6 +1890,12 @@ dependencies = [
"getrandom 0.3.4",
]
[[package]]
name = "rand_core"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba"
[[package]]
name = "redox_syscall"
version = "0.5.18"
@@ -1661,7 +1940,7 @@ version = "0.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801"
dependencies = [
"base64",
"base64 0.22.1",
"bytes",
"futures-core",
"http",
@@ -1746,6 +2025,15 @@ dependencies = [
"sqlite-wasm-rs",
]
[[package]]
name = "rustc_version"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
dependencies = [
"semver",
]
[[package]]
name = "rustls"
version = "0.23.37"
@@ -1855,7 +2143,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
dependencies = [
"cfg-if",
"cpufeatures",
"cpufeatures 0.2.17",
"digest",
]
@@ -1866,7 +2154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
dependencies = [
"cfg-if",
"cpufeatures",
"cpufeatures 0.2.17",
"digest",
]
@@ -2288,6 +2576,16 @@ version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
[[package]]
name = "universal-hash"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
dependencies = [
"crypto-common",
"subtle",
]
[[package]]
name = "untrusted"
version = "0.9.0"
@@ -2326,6 +2624,7 @@ checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37"
dependencies = [
"getrandom 0.4.2",
"js-sys",
"md-5",
"serde_core",
"wasm-bindgen",
]
@@ -2722,6 +3021,18 @@ version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
[[package]]
name = "x25519-dalek"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277"
dependencies = [
"curve25519-dalek",
"rand_core 0.6.4",
"serde",
"zeroize",
]
[[package]]
name = "x509-cert"
version = "0.2.5"
+3 -11
View File
@@ -1,15 +1,7 @@
use crate::{DeviceServices, run_sync};
use cxx_qt_lib::{QMap, QMapPair_QString_QVariant, QString, QVariant};
use idevice::{
provider::IdeviceProvider,
services::afc::{AfcClient, opcode::AfcFopenMode},
};
use std::{io::SeekFrom, pin::Pin};
use tokio::{
io::{AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufWriter},
net::TcpListener,
sync::{Semaphore, oneshot},
};
use idevice::services::afc::{AfcClient, opcode::AfcFopenMode};
use std::io::SeekFrom;
use tokio::io::{AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufWriter};
// FIXME: resolve symlinks
pub async fn check_is_dir_and_list(
+4 -7
View File
@@ -2,16 +2,13 @@ use cxx_qt::Threading;
use cxx_qt_lib::{QByteArray, QList, QMap, QMapPair_QString_QVariant, QString};
use crate::{APP_DEVICE_STATE, RUNTIME, VIDEO_STREAMS, afc, run_sync};
use idevice::{
IdeviceService,
afc::{AfcClient, opcode::AfcFopenMode},
};
use idevice::afc::{AfcClient, opcode::AfcFopenMode};
use once_cell::sync::Lazy;
use regex::Regex;
use std::{io::SeekFrom, pin::Pin};
use tokio::io::{AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufWriter};
use tokio::io::{AsyncReadExt, AsyncSeekExt};
use tokio::net::TcpListener;
use tokio::sync::{Semaphore, oneshot};
use tokio::sync::oneshot;
#[cxx_qt::bridge(namespace = "CXX")]
mod qobject {
@@ -749,7 +746,7 @@ impl qobject::Afc2Backend {
let provider = device.provider.lock().await;
match AfcClient::new_afc2(provider.as_ref()).await {
Ok(c) => c,
Err(e) => {
Err(_) => {
//FIXME
// eprintln!(
// "handle_http_connection: AfcClient::connect failed for {}: {:?}",
+3 -3
View File
@@ -9,9 +9,9 @@ use idevice::{
use once_cell::sync::Lazy;
use regex::Regex;
use std::{io::SeekFrom, pin::Pin};
use tokio::io::{AsyncReadExt, AsyncSeekExt, AsyncWriteExt, BufWriter};
use tokio::io::{AsyncReadExt, AsyncSeekExt};
use tokio::net::TcpListener;
use tokio::sync::{Semaphore, oneshot};
use tokio::sync::oneshot;
#[cxx_qt::bridge(namespace = "CXX")]
mod qobject {
@@ -665,7 +665,7 @@ impl qobject::AfcBackend {
let provider = device.provider.lock().await;
match AfcClient::connect(provider.as_ref()).await {
Ok(c) => c,
Err(e) => {
Err(_) => {
//FIXME
// eprintln!(
// "handle_http_connection: AfcClient::connect failed for {}: {:?}",
+1 -8
View File
@@ -55,10 +55,8 @@ mod qobject {
fn start_video_stream(self: &HauseArrest, file_path: &QString) -> QString;
}
// Required for CXX-Qt objects that will interact with a separate (Tokio) thread
impl cxx_qt::Threading for HauseArrest {}
// Custom constructor to initialize with device UDID and iOS version
impl cxx_qt::Constructor<(QString, QString), NewArguments = (QString, QString)> for HauseArrest {}
}
@@ -81,7 +79,7 @@ impl cxx_qt::Constructor<(QString, QString)> for qobject::HauseArrest {
Self::BaseArguments,
Self::InitializeArguments,
) {
(args, (), ()) // Pass the tuple through
(args, (), ())
}
fn new(args: (QString, QString)) -> RHauseArrestBackend {
@@ -94,11 +92,6 @@ impl cxx_qt::Constructor<(QString, QString)> for qobject::HauseArrest {
}
impl qobject::HauseArrest {
fn get_udid(&self) -> &QString {
use cxx_qt::CxxQtType;
&self.rust().udid
}
fn get_bundle_id(&self) -> &QString {
use cxx_qt::CxxQtType;
&self.rust().bundle_id
+2 -2
View File
@@ -28,7 +28,7 @@ mod qobject {
extern "RustQt" {
#[qobject]
type IOManager = super::R_IOManager;
type IOManager = super::RIOManager;
#[qinvokable]
fn start_export(
@@ -158,7 +158,7 @@ struct ExportItemResult {
}
#[derive(Default)]
pub struct R_IOManager {
pub struct RIOManager {
jobs: Arc<Mutex<HashMap<String, Arc<AtomicBool>>>>,
}
+2 -2
View File
@@ -6,7 +6,7 @@ use idevice::{
heartbeat,
lockdown::LockdownClient,
pairing_file::PairingFile,
provider::{IdeviceProvider, TcpProvider},
provider::{TcpProvider},
IdeviceError,
usbmuxd::{Connection, UsbmuxdAddr, UsbmuxdConnection, UsbmuxdListenEvent},
};
@@ -240,7 +240,7 @@ impl qobject::Core {
fn emit_pairing_failed(
qt_thread: cxx_qt::CxxQtThread<Core>,
udid: String,
reason : &str,
_reason : &str,
) {
// let reason_clone = reason.to_string();
//TODO: listen for this event
+9 -9
View File
@@ -71,14 +71,14 @@ impl cxx_qt::Constructor<(QString, u32)> for qobject::ScreenshotBackend {
}
impl qobject::ScreenshotBackend {
fn get_udid(&self) -> &QString {
use cxx_qt::CxxQtType;
&self.rust().udid
}
fn get_ios_version(&self) -> u32 {
use cxx_qt::CxxQtType;
self.rust().ios_version
}
// fn get_udid(&self) -> &QString {
// use cxx_qt::CxxQtType;
// &self.rust().udid
// }
// fn get_ios_version(&self) -> u32 {
// use cxx_qt::CxxQtType;
// self.rust().ios_version
// }
fn set_udid(mut self: Pin<&mut Self>, udid: &QString) {
use cxx_qt::CxxQtType;
@@ -150,7 +150,7 @@ async fn run_capture_ios17_and_above(
}
};
let rsd_port = proxy.handshake.server_rsd_port;
let rsd_port = proxy.tunnel_info().server_rsd_port;
let mut adapter = match proxy.create_software_tunnel() {
Ok(a) => a.to_async_handle(),
Err(e) => {
+18 -18
View File
@@ -1145,21 +1145,21 @@ async fn set_device_location_lockdown(
}
// iOS 17+:
async fn set_device_location_rsd(
proxy: CoreDeviceProxy,
latitude: f64,
longitude: f64,
) -> Result<(), idevice::IdeviceError> {
let rsd_port = proxy.handshake.server_rsd_port;
let adapter = proxy.create_software_tunnel()?;
let mut adapter = adapter.to_async_handle();
let stream = adapter.connect(rsd_port).await?;
let mut handshake = RsdHandshake::new(stream).await?;
let mut remote_server = RemoteServerClient::connect_rsd(&mut adapter, &mut handshake).await?;
remote_server.read_message(0).await?;
let mut location_client = LocationSimulationClient::new(&mut remote_server).await?;
location_client.set(latitude, longitude).await
}
async fn set_device_location_rsd(
proxy: CoreDeviceProxy,
latitude: f64,
longitude: f64,
) -> Result<(), idevice::IdeviceError> {
let rsd_port = proxy.tunnel_info().server_rsd_port;
let adapter = proxy.create_software_tunnel()?;
let mut adapter = adapter.to_async_handle();
let stream = adapter.connect(rsd_port).await?;
let mut handshake = RsdHandshake::new(stream).await?;
let mut remote_server = RemoteServerClient::connect_rsd(&mut adapter, &mut handshake).await?;
remote_server.read_message(0).await?;
let mut location_client = LocationSimulationClient::new(&mut remote_server).await?;
location_client.set(latitude, longitude).await
}