libimobiledevice  1.1.6
Macros | Typedefs | Functions
mobile_image_mounter.h File Reference

Mount developer/debug disk images on the device. More...

Macros

#define MOBILE_IMAGE_MOUNTER_SERVICE_NAME   "com.apple.mobile.mobile_image_mounter"
 

Typedefs

typedef int16_t mobile_image_mounter_error_t
 Represents an error code. More...
 
typedef
mobile_image_mounter_client_private
mobile_image_mounter_client_t
 The client handle. More...
 
typedef ssize_t(* mobile_image_mounter_upload_cb_t )(void *buffer, size_t length, void *user_data)
 callback for image upload
 

Functions

mobile_image_mounter_error_t mobile_image_mounter_new (idevice_t device, lockdownd_service_descriptor_t service, mobile_image_mounter_client_t *client)
 Connects to the mobile_image_mounter service on the specified device. More...
 
mobile_image_mounter_error_t mobile_image_mounter_start_service (idevice_t device, mobile_image_mounter_client_t *client, const char *label)
 Starts a new mobile_image_mounter service on the specified device and connects to it. More...
 
mobile_image_mounter_error_t mobile_image_mounter_free (mobile_image_mounter_client_t client)
 Disconnects a mobile_image_mounter client from the device and frees up the mobile_image_mounter client data. More...
 
mobile_image_mounter_error_t mobile_image_mounter_lookup_image (mobile_image_mounter_client_t client, const char *image_type, plist_t *result)
 Tells if the image of ImageType is already mounted. More...
 
mobile_image_mounter_error_t mobile_image_mounter_upload_image (mobile_image_mounter_client_t client, const char *image_type, size_t image_size, mobile_image_mounter_upload_cb_t upload_cb, void *userdata)
 Uploads an image to the device. More...
 
mobile_image_mounter_error_t mobile_image_mounter_mount_image (mobile_image_mounter_client_t client, const char *image_path, const char *image_signature, uint16_t signature_length, const char *image_type, plist_t *result)
 Mounts an image on the device. More...
 
mobile_image_mounter_error_t mobile_image_mounter_hangup (mobile_image_mounter_client_t client)
 Hangs up the connection to the mobile_image_mounter service. More...
 

Error Codes

#define MOBILE_IMAGE_MOUNTER_E_SUCCESS   0
 
#define MOBILE_IMAGE_MOUNTER_E_INVALID_ARG   -1
 
#define MOBILE_IMAGE_MOUNTER_E_PLIST_ERROR   -2
 
#define MOBILE_IMAGE_MOUNTER_E_CONN_FAILED   -3
 
#define MOBILE_IMAGE_MOUNTER_E_COMMAND_FAILED   -4
 
#define MOBILE_IMAGE_MOUNTER_E_UNKNOWN_ERROR   -256
 

Detailed Description

Mount developer/debug disk images on the device.

Typedef Documentation

The client handle.

Represents an error code.

Function Documentation

mobile_image_mounter_error_t mobile_image_mounter_free ( mobile_image_mounter_client_t  client)

Disconnects a mobile_image_mounter client from the device and frees up the mobile_image_mounter client data.

Parameters
clientThe mobile_image_mounter client to disconnect and free.
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is NULL.
mobile_image_mounter_error_t mobile_image_mounter_hangup ( mobile_image_mounter_client_t  client)

Hangs up the connection to the mobile_image_mounter service.

This functions has to be called before freeing up a mobile_image_mounter instance. If not, errors appear in the device's syslog.

Parameters
clientThe client to hang up
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if client is invalid, or another error code otherwise.
mobile_image_mounter_error_t mobile_image_mounter_lookup_image ( mobile_image_mounter_client_t  client,
const char *  image_type,
plist_t *  result 
)

Tells if the image of ImageType is already mounted.

Parameters
clientThe client use
image_typeThe type of the image to look up
resultPointer to a plist that will receive the result of the operation.
Note
This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the operation has failed. Check the resulting plist for further information.
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an error code on error
mobile_image_mounter_error_t mobile_image_mounter_mount_image ( mobile_image_mounter_client_t  client,
const char *  image_path,
const char *  image_signature,
uint16_t  signature_length,
const char *  image_type,
plist_t *  result 
)

Mounts an image on the device.

Parameters
clientThe connected mobile_image_mounter client.
image_pathThe absolute path of the image to mount. The image must be present before calling this function.
image_signaturePointer to a buffer holding the images' signature
signature_lengthLength of the signature image_signature points to
image_typeType of image to mount
resultPointer to a plist that will receive the result of the operation.
Note
This function may return MOBILE_IMAGE_MOUNTER_E_SUCCESS even if the operation has failed. Check the resulting plist for further information. Note that there is no unmounting function. The mount persists until the device is rebooted.
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if on ore more parameters are invalid, or another error code otherwise.
mobile_image_mounter_error_t mobile_image_mounter_new ( idevice_t  device,
lockdownd_service_descriptor_t  service,
mobile_image_mounter_client_t client 
)

Connects to the mobile_image_mounter service on the specified device.

Parameters
deviceThe device to connect to.
serviceThe service descriptor returned by lockdownd_start_service.
clientPointer that will be set to a newly allocated mobile_image_mounter_client_t upon successful return.
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, MOBILE_IMAGE_MOUNTER_E_INVALID_ARG if device is NULL, or MOBILE_IMAGE_MOUNTER_E_CONN_FAILED if the connection to the device could not be established.

Referenced by mobile_image_mounter_start_service().

mobile_image_mounter_error_t mobile_image_mounter_start_service ( idevice_t  device,
mobile_image_mounter_client_t client,
const char *  label 
)

Starts a new mobile_image_mounter service on the specified device and connects to it.

Parameters
deviceThe device to connect to.
clientPointer that will point to a newly allocated mobile_image_mounter_t upon successful return. Must be freed using mobile_image_mounter_free() after use.
labelThe label to use for communication. Usually the program name. Pass NULL to disable sending the label in requests to lockdownd.
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on success, or an MOBILE_IMAGE_MOUNTER_E_* error code otherwise.

References mobile_image_mounter_new(), and service_client_factory_start_service().

mobile_image_mounter_error_t mobile_image_mounter_upload_image ( mobile_image_mounter_client_t  client,
const char *  image_type,
size_t  image_size,
mobile_image_mounter_upload_cb_t  upload_cb,
void *  userdata 
)

Uploads an image to the device.

Parameters
clientThe connected mobile_image_mounter client.
image_typeType of image that is being uploaded.
image_sizeTotal size of the image.
upload_cbCallback function that gets the data chunks for uploading the image.
userdataUser defined data for the upload callback function.
Returns
MOBILE_IMAGE_MOUNTER_E_SUCCESS on succes, or a MOBILE_IMAGE_MOUNTER_E_* error code otherwise.

References service_send().