libimobiledevice 1.3.0

Macros | Typedefs | Enumerations | Functions
mobileactivation.h File Reference

Handle device activation and deactivation. More...

## Macros
#define | MOBILEACTIVATION_SERVICE_NAME "com.apple.mobileactivationd"

## Typedefs
typedef struct mobileactivation_client_private | mobileactivation_client_private
typedef mobileactivation_client_private * | mobileactivation_client_t
| The client handle.

## Enumerations
enum | mobileactivation_error_t { MOBILEACTIVATION_E_SUCCESS = 0, MOBILEACTIVATION_E_INVALID_ARG = -1, MOBILEACTIVATION_E_PLIST_ERROR = -2, MOBILEACTIVATION_E_MUX_ERROR = -3, MOBILEACTIVATION_E_UNKNOWN_REQUEST = -4, MOBILEACTIVATION_E_REQUEST_FAILED = -5, MOBILEACTIVATION_E_UNKNOWN_ERROR = -256 }
| Error Codes.

## Functions
mobileactivation_error_t | mobileactivation_client_new (idevice_t device, lockdownd_service_descriptor_t service, mobileactivation_client_t *client)
| Connects to the mobileactivation service on the specified device. More...
mobileactivation_error_t | mobileactivation_client_start_service (idevice_t device, mobileactivation_client_t *client, const char *label)
| Starts a new mobileactivation service on the specified device and connects to it. More...
mobileactivation_error_t | mobileactivation_client_free (mobileactivation_client_t client)
| Disconnects a mobileactivation client from the device and frees up the mobileactivation client data. More...
mobileactivation_error_t | mobileactivation_get_activation_state (mobileactivation_client_t client, plist_t *state)
| Retrieves the device's activation state. More...
mobileactivation_error_t | mobileactivation_create_activation_session_info (mobileactivation_client_t client, plist_t *blob)
| Retrieves a session blob required for 'drmHandshake' via albert.apple.com. More...
mobileactivation_error_t | mobileactivation_create_activation_info (mobileactivation_client_t client, plist_t *info)
| Retrieves the activation info required for device activation. More...
mobileactivation_error_t | mobileactivation_create_activation_info_with_session (mobileactivation_client_t client, plist_t handshake_response, plist_t *info)
| Retrieves the activation info required for device activation in 'session' mode. More...
mobileactivation_error_t | mobileactivation_activate (mobileactivation_client_t client, plist_t activation_record)
| Activates the device with the given activation record. More...
mobileactivation_error_t | mobileactivation_activate_with_session (mobileactivation_client_t client, plist_t activation_record, plist_t headers)
| Activates the device with the given activation record in 'session' mode. More...
mobileactivation_error_t | mobileactivation_deactivate (mobileactivation_client_t client)
| Deactivates the device. More...

## Detailed Description

Handle device activation and deactivation.

## Function Documentation

## ◆ mobileactivation_activate()

mobileactivation_error_t mobileactivation_activate | ( | mobileactivation_client_t | client,
|  | plist_t | activation_record
| ) |  |

Activates the device with the given activation record.

The activation record plist dictionary must be obtained using the activation protocol requesting from Apple's https webservice.

Parameters

  client | The mobileactivation client
  activation_record | The activation record plist dictionary

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.

## ◆ mobileactivation_activate_with_session()

mobileactivation_error_t mobileactivation_activate_with_session | ( | mobileactivation_client_t | client,
|  | plist_t | activation_record,
|  | plist_t | headers
| ) |  |

Activates the device with the given activation record in 'session' mode.

The activation record plist must be obtained using the activation protocol requesting from Apple's https webservice.

Parameters

  client | The mobileactivation client
  activation_record | The activation record in plist format
  headers | A plist dictionary with the activation response headers as returned from Apple's https webservice with the activation record

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.

## ◆ mobileactivation_client_free()

mobileactivation_error_t mobileactivation_client_free | ( | mobileactivation_client_t | client | ) |

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

Parameters

  client | The mobileactivation client to disconnect and free.

Returns
  MOBILEACTIVATION_E_SUCCESS on success, MOBILEACTIVATION_E_INVALID_ARG when one of client or client->parent is invalid, or MOBILEACTIVATION_E_UNKNOWN_ERROR when the was an error freeing the parent property_list_service client.

## ◆ mobileactivation_client_new()

mobileactivation_error_t mobileactivation_client_new | ( | idevice_t | device,
|  | lockdownd_service_descriptor_t | service,
|  | mobileactivation_client_t * | client
| ) |  |

Connects to the mobileactivation service on the specified device.

Parameters

  device | The device to connect to.
  service | The service descriptor returned by lockdownd_start_service.
  client | Reference that will point to a newly allocated mobileactivation_client_t upon successful return.

Returns
  MOBILEACTIVATION_E_SUCCESS on success, MOBILEACTIVATION_E_INVALID_ARG when one of the parameters is invalid, or MOBILEACTIVATION_E_MUX_ERROR when the connection failed.

## ◆ mobileactivation_client_start_service()

mobileactivation_error_t mobileactivation_client_start_service | ( | idevice_t | device,
|  | mobileactivation_client_t * | client,
|  | const char * | label
| ) |  |

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

Parameters

  device | The device to connect to.
  client | Pointer that will point to a newly allocated mobileactivation_client_t upon successful return. Must be freed using mobileactivation_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.

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.

## ◆ mobileactivation_create_activation_info()

mobileactivation_error_t mobileactivation_create_activation_info | ( | mobileactivation_client_t | client,
|  | plist_t * | info
| ) |  |

Retrieves the activation info required for device activation.

Parameters

  client | The mobileactivation client
  info | Pointer to a plist_t variable that will be set to the activation info created by the mobileactivation service. The consumer is responsible for freeing the returned object using plist_free().

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.

## ◆ mobileactivation_create_activation_info_with_session()

mobileactivation_error_t mobileactivation_create_activation_info_with_session | ( | mobileactivation_client_t | client,
|  | plist_t | handshake_response,
|  | plist_t * | info
| ) |  |

Retrieves the activation info required for device activation in 'session' mode.

This function expects a handshake result retrieved from https://albert.apple.com/deviceservies/drmHandshake with a blob provided by mobileactivation_create_activation_session_info().

Parameters

  client | The mobileactivation client @aram handshake_response The handshake response returned from drmHandshake
  info | Pointer to a plist_t variable that will be set to the activation info created by the mobileactivation service. The consumer is responsible for freeing the returned object using plist_free().

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.

## ◆ mobileactivation_create_activation_session_info()

mobileactivation_error_t mobileactivation_create_activation_session_info | ( | mobileactivation_client_t | client,
|  | plist_t * | blob
| ) |  |

Retrieves a session blob required for 'drmHandshake' via albert.apple.com.

Parameters

  client | The mobileactivation client
  blob | Pointer to a plist_t variable that will be set to the session blob created by the mobielactivation service. The consumer is responsible for freeing the returned object using plist_free().

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.

## ◆ mobileactivation_deactivate()

mobileactivation_error_t mobileactivation_deactivate | ( | mobileactivation_client_t | client | ) |

Deactivates the device.

Parameters

  client | The mobileactivation client

## ◆ mobileactivation_get_activation_state()

mobileactivation_error_t mobileactivation_get_activation_state | ( | mobileactivation_client_t | client,
|  | plist_t * | state
| ) |  |

Retrieves the device's activation state.

Parameters

  client | The mobileactivation client.
  state | Pointer to a plist_t variable that will be set to the activation state reported by the mobileactivation service. The consumer is responsible for freeing the returned object using plist_free().

Returns
  MOBILEACTIVATION_E_SUCCESS on success, or an MOBILEACTIVATION_E_* error code otherwise.