libimobiledevice
1.3.0
|
Service to 'preboard' a device, which allows to ask for passcode during firmware updates. More...
Macros | |
#define | PREBOARD_SERVICE_NAME "com.apple.preboardservice_v2" |
Typedefs | |
typedef struct preboard_client_private | preboard_client_private |
typedef preboard_client_private * | preboard_client_t |
The client handle. | |
typedef void(* | preboard_status_cb_t) (plist_t message, void *user_data) |
Reports the status response of the given command. | |
Enumerations | |
enum | preboard_error_t { PREBOARD_E_SUCCESS = 0, PREBOARD_E_INVALID_ARG = -1, PREBOARD_E_PLIST_ERROR = -2, PREBOARD_E_MUX_ERROR = -3, PREBOARD_E_SSL_ERROR = -4, PREBOARD_E_NOT_ENOUGH_DATA = -5, PREBOARD_E_TIMEOUT = -6, PREBOARD_E_OP_IN_PROGRESS = -10, PREBOARD_E_UNKNOWN_ERROR = -256 } |
Error Codes. | |
Functions | |
preboard_error_t | preboard_client_new (idevice_t device, lockdownd_service_descriptor_t service, preboard_client_t *client) |
Connects to the preboard service on the specified device. More... | |
preboard_error_t | preboard_client_start_service (idevice_t device, preboard_client_t *client, const char *label) |
Starts a new preboard service on the specified device and connects to it. More... | |
preboard_error_t | preboard_client_free (preboard_client_t client) |
Disconnects a preboard client from the device and frees up the preboard client data. More... | |
preboard_error_t | preboard_send (preboard_client_t client, plist_t plist) |
Sends a plist to the service. More... | |
preboard_error_t | preboard_receive (preboard_client_t client, plist_t *plist) |
Receives a plist from the service. More... | |
preboard_error_t | preboard_receive_with_timeout (preboard_client_t client, plist_t *plist, uint32_t timeout_ms) |
Receives a plist from the service with the specified timeout. More... | |
preboard_error_t | preboard_create_stashbag (preboard_client_t client, plist_t manifest, preboard_status_cb_t status_cb, void *user_data) |
Tells the preboard service to create a stashbag. More... | |
preboard_error_t | preboard_commit_stashbag (preboard_client_t client, plist_t manifest, preboard_status_cb_t status_cb, void *user_data) |
Instructs the preboard service to commit a previously created stashbag. More... | |
Service to 'preboard' a device, which allows to ask for passcode during firmware updates.
preboard_error_t preboard_client_free | ( | preboard_client_t | client | ) |
Disconnects a preboard client from the device and frees up the preboard client data.
client | The preboard client to disconnect and free. |
preboard_error_t preboard_client_new | ( | idevice_t | device, |
lockdownd_service_descriptor_t | service, | ||
preboard_client_t * | client | ||
) |
Connects to the preboard service on the specified device.
device | The device to connect to. |
service | The service descriptor returned by lockdownd_start_service. |
client | Pointer that will point to a newly allocated preboard_client_t upon successful return. Must be freed using preboard_client_free() after use. |
preboard_error_t preboard_client_start_service | ( | idevice_t | device, |
preboard_client_t * | client, | ||
const char * | label | ||
) |
Starts a new preboard service on the specified device and connects to it.
device | The device to connect to. |
client | Pointer that will point to a newly allocated preboard_client_t upon successful return. Must be freed using preboard_client_free() after use. |
label | The label to use for communication. Usually the program name. Pass NULL to disable sending the label in requests to lockdownd. |
preboard_error_t preboard_commit_stashbag | ( | preboard_client_t | client, |
plist_t | manifest, | ||
preboard_status_cb_t | status_cb, | ||
void * | user_data | ||
) |
Instructs the preboard service to commit a previously created stashbag.
client | The preboard client to use for receiving |
manifest | An optional manifest |
status_cb | Callback function that will receive status and error messages Can be NULL if you want to handle receiving messages in your own code. |
user_data | User data for callback function or NULL. |
The callback or following preboard_receive* invocations will usually receive a dictionary with: { StashbagCommitComplete: true } or in case of an error: { StashbagCommitComplete: 0, Error: 1, <optional> ErrorString: <error string>=""> }
preboard_error_t preboard_create_stashbag | ( | preboard_client_t | client, |
plist_t | manifest, | ||
preboard_status_cb_t | status_cb, | ||
void * | user_data | ||
) |
Tells the preboard service to create a stashbag.
This will make the device show a passcode entry so it can generate and store a token that is later used during restore.
client | The preboard client |
manifest | An optional manifest |
status_cb | Callback function that will receive status and error messages. Can be NULL if you want to handle receiving messages in your own code. |
user_data | User data for callback function or NULL. |
The callback or following preboard_receive* invocations will usually receive a dictionary with: { ShowDialog: true } If the user does not enter a passcode, after 2 minutes a timeout is reached and the device sends a dictionary with: { Timeout: true } followed by { HideDialog: true } If the user aborts the passcode entry, the device sends a dictionary: { Error: 1, ErrorString: <error string>=""> } followed by { HideDialog: true }
preboard_error_t preboard_receive | ( | preboard_client_t | client, |
plist_t * | plist | ||
) |
Receives a plist from the service.
client | The preboard client |
plist | Pointer to a plist_t what will be set to the received plist |
preboard_error_t preboard_receive_with_timeout | ( | preboard_client_t | client, |
plist_t * | plist, | ||
uint32_t | timeout_ms | ||
) |
Receives a plist from the service with the specified timeout.
client | The preboard client |
plist | Pointer to a plist_t what will be set to the received plist |
preboard_error_t preboard_send | ( | preboard_client_t | client, |
plist_t | plist | ||
) |
Sends a plist to the service.
client | The preboard client |
plist | The plist to send |