Idevice

Struct Idevice 

Source
pub struct Idevice { /* private fields */ }
Expand description

Main handle for communicating with an iOS device

Manages the connection socket and provides methods for common device operations and message exchange.

Implementations§

Source§

impl Idevice

Source

pub fn new(socket: Box<dyn ReadWrite>, label: impl Into<String>) -> Self

Creates a new device connection handle

§Arguments
  • socket - The established connection socket
  • label - Unique identifier for this connection
Source

pub fn get_socket(self) -> Option<Box<dyn ReadWrite>>

Source

pub fn set_udid(&mut self, udid: impl Into<String>)

Sets cached UDID

Source

pub fn udid(&self) -> Option<&str>

Returns cached UDID if available

Source

pub async fn get_type(&mut self) -> Result<String, IdeviceError>

Queries the device type

Sends a QueryType request and parses the response

§Returns

The device type string on success

§Errors

Returns IdeviceError if communication fails or response is invalid

Source

pub async fn rsd_checkin(&mut self) -> Result<(), IdeviceError>

Performs RSD (Remote Service Discovery) check-in procedure

Establishes the basic service connection protocol

§Errors

Returns IdeviceError if the protocol sequence isn’t followed correctly

Source

pub async fn send_raw(&mut self, message: &[u8]) -> Result<(), IdeviceError>

Sends raw binary data to the device

§Arguments
  • message - The bytes to send
§Errors

Returns IdeviceError if transmission fails

Source

pub async fn send_raw_with_progress<Fut, S>( &mut self, message: &[u8], callback: impl Fn(((usize, usize), S)) -> Fut, state: S, ) -> Result<(), IdeviceError>
where Fut: Future<Output = ()>, S: Clone,

Sends raw binary data with progress callbacks

§Arguments
  • message - The bytes to send
  • callback - Progress callback invoked after each chunk
  • state - Arbitrary state passed to callback
§Type Parameters
  • Fut - Future type returned by callback
  • S - Type of state passed to callback
§Errors

Returns IdeviceError if transmission fails

Source

pub async fn read_raw(&mut self, len: usize) -> Result<Vec<u8>, IdeviceError>

Reads exactly len bytes from the device

§Arguments
  • len - Exact number of bytes to read
§Returns

The received bytes

§Errors

Returns IdeviceError if reading fails or connection is closed prematurely

Source

pub async fn read_any(&mut self, max_size: u32) -> Result<Vec<u8>, IdeviceError>

Reads up to max_size bytes from the device

§Arguments
  • max_size - Maximum number of bytes to read
§Returns

The received bytes (may be shorter than max_size)

§Errors

Returns IdeviceError if reading fails

Source

pub async fn start_session( &mut self, pairing_file: &PairingFile, ) -> Result<(), IdeviceError>

Upgrades the connection to TLS using device pairing credentials

§Arguments
  • pairing_file - Contains the device’s identity and certificates
§Errors

Returns IdeviceError if TLS handshake fails or credentials are invalid

Trait Implementations§

Source§

impl From<Idevice> for LockdownClient

Source§

fn from(value: Idevice) -> Self

Converts an existing device connection into a lockdown client

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,