Change to tokio for io

This commit is contained in:
Jackson Coxson
2025-01-14 21:13:32 -07:00
parent d9aa9c1798
commit 45811dc977
12 changed files with 302 additions and 93 deletions

View File

@@ -15,7 +15,8 @@ use std::{
str::FromStr,
};
fn main() {
#[tokio::main]
async fn main() {
env_logger::init();
let mut host = None;
let mut pairing_file = None;
@@ -64,30 +65,31 @@ fn main() {
let ip = Ipv4Addr::from_str(host.unwrap().as_str()).unwrap();
let socket = SocketAddrV4::new(ip, lockdownd::LOCKDOWND_PORT);
let socket = std::net::TcpStream::connect(socket).unwrap();
let socket = tokio::net::TcpStream::connect(socket).await.unwrap();
let socket = Box::new(socket);
let idevice = Idevice::new(socket, "mounter_client");
let p = PairingFile::read_from_file(pairing_file.as_ref().unwrap()).unwrap();
let mut lockdown_client = LockdowndClient { idevice };
lockdown_client.start_session(&p).unwrap();
lockdown_client.start_session(&p).await.unwrap();
let (port, _) = lockdown_client
.start_service("com.apple.mobile.mobile_image_mounter")
.await
.unwrap();
let socket = SocketAddrV4::new(ip, port);
let socket = std::net::TcpStream::connect(socket).unwrap();
let socket = tokio::net::TcpStream::connect(socket).await.unwrap();
let socket = Box::new(socket);
let mut idevice = Idevice::new(socket, "mounter_client");
let p = PairingFile::read_from_file(pairing_file.unwrap()).unwrap();
idevice.start_session(&p).unwrap();
idevice.start_session(&p).await.unwrap();
let mut mounter_client = ImageMounter::new(idevice);
let images = mounter_client.copy_devices().unwrap();
let images = mounter_client.copy_devices().await.unwrap();
println!("Images: {images:#?}");
let image = std::fs::read("Image.dmg").unwrap();
@@ -97,6 +99,7 @@ fn main() {
let manifest = mounter_client
.query_personalization_manifest("DeveloperDiskImage", hash.to_vec())
.await
.unwrap();
println!("len: {}", manifest.len());
}