libimobiledevice 1.3.0

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

Manage provisioning profiles. More...

## Macros
#define | MISAGENT_SERVICE_NAME "com.apple.misagent"

## Typedefs
typedef struct misagent_client_private | misagent_client_private
typedef misagent_client_private * | misagent_client_t
| The client handle.

## Enumerations
enum | misagent_error_t { MISAGENT_E_SUCCESS = 0, MISAGENT_E_INVALID_ARG = -1, MISAGENT_E_PLIST_ERROR = -2, MISAGENT_E_CONN_FAILED = -3, MISAGENT_E_REQUEST_FAILED = -4, MISAGENT_E_UNKNOWN_ERROR = -256 }
| Error Codes.

## Functions
misagent_error_t | misagent_client_new (idevice_t device, lockdownd_service_descriptor_t service, misagent_client_t *client)
| Connects to the misagent service on the specified device. More...
misagent_error_t | misagent_client_start_service (idevice_t device, misagent_client_t *client, const char *label)
| Starts a new misagent service on the specified device and connects to it. More...
misagent_error_t | misagent_client_free (misagent_client_t client)
| Disconnects an misagent client from the device and frees up the misagent client data. More...
misagent_error_t | misagent_install (misagent_client_t client, plist_t profile)
| Installs the given provisioning profile. More...
misagent_error_t | misagent_copy (misagent_client_t client, plist_t *profiles)
| Retrieves all installed provisioning profiles (iOS 9.2.1 or below). More...
misagent_error_t | misagent_copy_all (misagent_client_t client, plist_t *profiles)
| Retrieves all installed provisioning profiles (iOS 9.3 or higher). More...
misagent_error_t | misagent_remove (misagent_client_t client, const char *profileID)
| Removes a given provisioning profile. More...
int | misagent_get_status_code (misagent_client_t client)
| Retrieves the status code from the last operation. More...

## Detailed Description

Manage provisioning profiles.

## Function Documentation

## ◆ misagent_client_free()

misagent_error_t misagent_client_free | ( | misagent_client_t | client | ) |

Disconnects an misagent client from the device and frees up the misagent client data.

Parameters

  client | The misagent client to disconnect and free.

Returns
  MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is NULL, or an MISAGENT_E_* error code otherwise.

## ◆ misagent_client_new()

misagent_error_t misagent_client_new | ( | idevice_t | device,
|  | lockdownd_service_descriptor_t | service,
|  | misagent_client_t * | client
| ) |  |

Connects to the misagent service on the specified device.

Parameters

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

Returns
  MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is NULL, or an MISAGENT_E_* error code otherwise.

## ◆ misagent_client_start_service()

misagent_error_t misagent_client_start_service | ( | idevice_t | device,
|  | misagent_client_t * | client,
|  | const char * | label
| ) |  |

Starts a new misagent 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 misagent_client_t upon successful return. Must be freed using misagent_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
  MISAGENT_E_SUCCESS on success, or an MISAGENT_E_* error code otherwise.

## ◆ misagent_copy()

misagent_error_t misagent_copy | ( | misagent_client_t | client,
|  | plist_t * | profiles
| ) |  |

Retrieves all installed provisioning profiles (iOS 9.2.1 or below).

Parameters

  client | The connected misagent to use.
  profiles | Pointer to a plist_t that will be set to a PLIST_ARRAY if the function is successful.

Returns
  MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is invalid, or an MISAGENT_E_* error code otherwise.

Note
  This API call only works with iOS 9.2.1 or below. For newer iOS versions use misagent_copy_all() instead.
  If no provisioning profiles are installed on the device, this function still returns MISAGENT_E_SUCCESS and profiles will just point to an empty array.

## ◆ misagent_copy_all()

misagent_error_t misagent_copy_all | ( | misagent_client_t | client,
|  | plist_t * | profiles
| ) |  |

Retrieves all installed provisioning profiles (iOS 9.3 or higher).

Parameters

  client | The connected misagent to use.
  profiles | Pointer to a plist_t that will be set to a PLIST_ARRAY if the function is successful.

Returns
  MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is invalid, or an MISAGENT_E_* error code otherwise.

Note
  This API call only works with iOS 9.3 or higher. For older iOS versions use misagent_copy() instead.
  If no provisioning profiles are installed on the device, this function still returns MISAGENT_E_SUCCESS and profiles will just point to an empty array.

## ◆ misagent_get_status_code()

int misagent_get_status_code | ( | misagent_client_t | client | ) |

Retrieves the status code from the last operation.

Parameters

  client | The misagent to use.

Returns
  -1 if client is invalid, or the status code from the last operation

## ◆ misagent_install()

misagent_error_t misagent_install | ( | misagent_client_t | client,
|  | plist_t | profile
| ) |  |

Installs the given provisioning profile.

Only works with valid profiles.

Parameters

  client | The connected misagent to use for installation
  profile | The valid provisioning profile to install. This has to be passed as a PLIST_DATA, otherwise the function will fail.

Returns
  MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is invalid, or an MISAGENT_E_* error code otherwise.

## ◆ misagent_remove()

misagent_error_t misagent_remove | ( | misagent_client_t | client,
|  | const char * | profileID
| ) |  |

Removes a given provisioning profile.

Parameters

  client | The connected misagent to use.
  profileID | Identifier of the provisioning profile to remove. This is a UUID that can be obtained from the provisioning profile data.

See also
  misagent_copy

Returns
  MISAGENT_E_SUCCESS on success, MISAGENT_E_INVALID_ARG when client is invalid, or an MISAGENT_E_* error code otherwise.