libimobiledevice  1.2.0
Macros | Typedefs | Enumerations | 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 struct
mobile_image_mounter_client_private 
mobile_image_mounter_client_private
 
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
 

Enumerations

enum  mobile_image_mounter_error_t {
  MOBILE_IMAGE_MOUNTER_E_SUCCESS = 0,
  MOBILE_IMAGE_MOUNTER_E_INVALID_ARG = -1,
  MOBILE_IMAGE_MOUNTER_E_PLIST_ERROR = -2,
  MOBILE_IMAGE_MOUNTER_E_CONN_FAILED = -3,
  MOBILE_IMAGE_MOUNTER_E_COMMAND_FAILED = -4,
  MOBILE_IMAGE_MOUNTER_E_UNKNOWN_ERROR = -256
}
 Error Codes.
 

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, const char *signature, uint16_t signature_size, mobile_image_mounter_upload_cb_t upload_cb, void *userdata)
 Uploads an image with an optional signature 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 *signature, uint16_t signature_size, 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...
 

Detailed Description

Mount developer/debug disk images on the device.

Typedef Documentation

typedef mobile_image_mounter_client_private* mobile_image_mounter_client_t

The client handle.

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 *  signature,
uint16_t  signature_size,
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.
signaturePointer to a buffer holding the images' signature
signature_sizeLength 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.
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.
mobile_image_mounter_error_t mobile_image_mounter_upload_image ( mobile_image_mounter_client_t  client,
const char *  image_type,
size_t  image_size,
const char *  signature,
uint16_t  signature_size,
mobile_image_mounter_upload_cb_t  upload_cb,
void *  userdata 
)

Uploads an image with an optional signature to the device.

Parameters
clientThe connected mobile_image_mounter client.
image_typeType of image that is being uploaded.
image_sizeTotal size of the image.
signatureBuffer with a signature of the image being uploaded. If NULL, no signature will be used.
signature_sizeTotal size of the image signature buffer. If 0, no signature will be used.
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.