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
clientThe mobileactivation client
activation_recordThe 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
clientThe mobileactivation client
activation_recordThe activation record in plist format
headersA 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
clientThe 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
deviceThe device to connect to.
serviceThe service descriptor returned by lockdownd_start_service.
clientReference 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
deviceThe device to connect to.
clientPointer that will point to a newly allocated mobileactivation_client_t upon successful return. Must be freed using mobileactivation_client_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
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
clientThe mobileactivation client
infoPointer 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
clientThe mobileactivation client @aram handshake_response The handshake response returned from drmHandshake
infoPointer 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
clientThe mobileactivation client
blobPointer 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
clientThe 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
clientThe mobileactivation client.
statePointer 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.