libimobiledevice: libimobiledevice/diagnostics_relay.h File Reference

libimobiledevice 1.3.0

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

Request iOS diagnostic information from device. More...

## Macros
#define | DIAGNOSTICS_RELAY_SERVICE_NAME "com.apple.mobile.diagnostics_relay"
#define | DIAGNOSTICS_RELAY_REQUEST_TYPE_ALL "All"
#define | DIAGNOSTICS_RELAY_REQUEST_TYPE_WIFI "WiFi"
#define | DIAGNOSTICS_RELAY_REQUEST_TYPE_GAS_GAUGE "GasGauge"
#define | DIAGNOSTICS_RELAY_REQUEST_TYPE_NAND "NAND"

## Typedefs
typedef struct diagnostics_relay_client_private | diagnostics_relay_client_private
typedef diagnostics_relay_client_private * | diagnostics_relay_client_t
| The client handle.

## Enumerations
enum | diagnostics_relay_error_t { DIAGNOSTICS_RELAY_E_SUCCESS = 0, DIAGNOSTICS_RELAY_E_INVALID_ARG = -1, DIAGNOSTICS_RELAY_E_PLIST_ERROR = -2, DIAGNOSTICS_RELAY_E_MUX_ERROR = -3, DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST = -4, DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR = -256 }
| Error Codes.
enum | diagnostics_relay_action_t { DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT = 1 << 1, DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS = 1 << 2, DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL = 1 << 3 }

## Functions
diagnostics_relay_error_t | diagnostics_relay_client_new (idevice_t device, lockdownd_service_descriptor_t service, diagnostics_relay_client_t *client)
| Connects to the diagnostics_relay service on the specified device. More...
diagnostics_relay_error_t | diagnostics_relay_client_start_service (idevice_t device, diagnostics_relay_client_t *client, const char *label)
| Starts a new diagnostics_relay service on the specified device and connects to it. More...
diagnostics_relay_error_t | diagnostics_relay_client_free (diagnostics_relay_client_t client)
| Disconnects a diagnostics_relay client from the device and frees up the diagnostics_relay client data. More...
diagnostics_relay_error_t | diagnostics_relay_goodbye (diagnostics_relay_client_t client)
| Sends the Goodbye request signaling the end of communication. More...
diagnostics_relay_error_t | diagnostics_relay_sleep (diagnostics_relay_client_t client)
| Puts the device into deep sleep mode and disconnects from host. More...
diagnostics_relay_error_t | diagnostics_relay_restart (diagnostics_relay_client_t client, diagnostics_relay_action_t flags)
| Restart the device and optionally show a user notification. More...
diagnostics_relay_error_t | diagnostics_relay_shutdown (diagnostics_relay_client_t client, diagnostics_relay_action_t flags)
| Shutdown of the device and optionally show a user notification. More...
diagnostics_relay_error_t | diagnostics_relay_request_diagnostics (diagnostics_relay_client_t client, const char *type, plist_t *diagnostics)
| Shutdown of the device and optionally show a user notification. More...
diagnostics_relay_error_t | diagnostics_relay_query_mobilegestalt (diagnostics_relay_client_t client, plist_t keys, plist_t *result)
diagnostics_relay_error_t | diagnostics_relay_query_ioregistry_entry (diagnostics_relay_client_t client, const char *entry_name, const char *entry_class, plist_t *result)
diagnostics_relay_error_t | diagnostics_relay_query_ioregistry_plane (diagnostics_relay_client_t client, const char *plane, plist_t *result)

## Detailed Description

Request iOS diagnostic information from device.

## Function Documentation

## ◆ diagnostics_relay_client_free()

diagnostics_relay_error_t diagnostics_relay_client_free | ( | diagnostics_relay_client_t | client | ) |

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

Parameters

  client | The diagnostics_relay client to disconnect and free.

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when one of client or client->parent is invalid, or DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR when the was an error freeing the parent property_list_service client.

## ◆ diagnostics_relay_client_new()

diagnostics_relay_error_t diagnostics_relay_client_new | ( | idevice_t | device,
|  | lockdownd_service_descriptor_t | service,
|  | diagnostics_relay_client_t * | client
| ) |  |

Connects to the diagnostics_relay 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 diagnostics_relay_client_t upon successful return.

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when one of the parameters is invalid, or DIAGNOSTICS_RELAY_E_MUX_ERROR when the connection failed.

## ◆ diagnostics_relay_client_start_service()

diagnostics_relay_error_t diagnostics_relay_client_start_service | ( | idevice_t | device,
|  | diagnostics_relay_client_t * | client,
|  | const char * | label
| ) |  |

Starts a new diagnostics_relay 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 diagnostics_relay_client_t upon successful return. Must be freed using diagnostics_relay_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
  DIAGNOSTICS_RELAY_E_SUCCESS on success, or an DIAGNOSTICS_RELAY_E_* error code otherwise.

## ◆ diagnostics_relay_goodbye()

diagnostics_relay_error_t diagnostics_relay_goodbye | ( | diagnostics_relay_client_t | client | ) |

Sends the Goodbye request signaling the end of communication.

Parameters

  client | The diagnostics_relay client

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL, DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the request

## ◆ diagnostics_relay_request_diagnostics()

diagnostics_relay_error_t diagnostics_relay_request_diagnostics | ( | diagnostics_relay_client_t | client,
|  | const char * | type,
|  | plist_t * | diagnostics
| ) |  |

Shutdown of the device and optionally show a user notification.

Parameters

  client | The diagnostics_relay client
  flags | A binary flag combination of DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until diagnostics_relay_client_free() disconnects before execution and DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL, DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the request

## ◆ diagnostics_relay_restart()

diagnostics_relay_error_t diagnostics_relay_restart | ( | diagnostics_relay_client_t | client,
|  | diagnostics_relay_action_t | flags
| ) |  |

Restart the device and optionally show a user notification.

Parameters

  client | The diagnostics_relay client
  flags | A binary flag combination of DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until diagnostics_relay_client_free() disconnects before execution and DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL, DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the request

## ◆ diagnostics_relay_shutdown()

diagnostics_relay_error_t diagnostics_relay_shutdown | ( | diagnostics_relay_client_t | client,
|  | diagnostics_relay_action_t | flags
| ) |  |

Shutdown of the device and optionally show a user notification.

Parameters

  client | The diagnostics_relay client
  flags | A binary flag combination of DIAGNOSTICS_RELAY_ACTION_FLAG_WAIT_FOR_DISCONNECT to wait until diagnostics_relay_client_free() disconnects before execution and DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_FAIL to show a "FAIL" dialog or DIAGNOSTICS_RELAY_ACTION_FLAG_DISPLAY_PASS to show an "OK" dialog

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL, DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the request

## ◆ diagnostics_relay_sleep()

diagnostics_relay_error_t diagnostics_relay_sleep | ( | diagnostics_relay_client_t | client | ) |

Puts the device into deep sleep mode and disconnects from host.

Parameters

  client | The diagnostics_relay client

Returns
  DIAGNOSTICS_RELAY_E_SUCCESS on success, DIAGNOSTICS_RELAY_E_INVALID_ARG when client is NULL, DIAGNOSTICS_RELAY_E_PLIST_ERROR if the device did not acknowledge the request