Как я могу получить ECID подключенного устройства с помощью libimobiledevice? - PullRequest
0 голосов
/ 08 января 2019

Используя libimobiledevice, я могу получить ECID подключенного устройства из командной строки, запустив

$ ideviceinfo -k UniqueChipID

Есть ли способ сделать это с помощью C API?

1 Ответ

0 голосов
/ 09 января 2019

Вы ищете lockdownd_get_value, который является частью libimobiledevice C api. Декларация:

/**
 * Retrieves a preferences plist using an optional domain and/or key name.
 *
 * @param client An initialized lockdownd client.
 * @param domain The domain to query on or NULL for global domain
 * @param key The key name to request or NULL to query for all keys
 * @param value A plist node representing the result value node
 *
 * @return LOCKDOWN_E_SUCCESS on success, LOCKDOWN_E_INVALID_ARG when client is NULL
 */
LIBIMOBILEDEVICE_API_MSC lockdownd_error_t lockdownd_get_value(lockdownd_client_t client, const char *domain, const char *key, plist_t *value); 

Вы можете создать lockdown_client_t, используя lockdownd_client_new. Посмотрите исходный код ideviceinfo для получения дополнительной информации о том, как настроить клиент блокировки.

Параметры domain и key соответствуют тому, что вы указали в командной строке. Вы не указали домен, поэтому установите его на NULL. key должно быть значением того, что вы передали в качестве аргумента -k, следовательно, UniqueChipID.

На выходе будет plist_t. Вы можете использовать libplist API для преобразования этого в XML или строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...