Как я могу получить ECID подключенного устройства с помощью libimobiledevice?
Используя libimobiledevice, я могу получить ECID подключенного устройства из командной строки, запустив
$ ideviceinfo -k UniqueChipID
Есть ли способ сделать это с помощью C API?
1 ответ
Ты ищешь 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 или строку.