如何使用libimobiledevice获取已连接设备的ECID?

时间:2019-01-08 00:40:57

标签: c libimobiledevice

使用libimobiledevice我可以通过运行从命令行获取已连接设备的ECID

cmd /c PostBuildStep.cmd "$(MSBuildProperty1)" "$(MSBuildProperty2)"

是否可以使用C API做到这一点?

1 个答案:

答案 0 :(得分: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源代码,以获取有关如何设置锁定客户端的更多信息。

domainkey参数映射到您在命令行上提供的内容。您没有指定域,因此将其设置为NULLkey应该是您作为-k参数传递的值,因此应该是UniqueChipID

输出将为plist_t。您可以使用libplist API将其转换为XML或字符串。