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

标签 c libimobiledevice

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

$ ideviceinfo -k UniqueChipID

有没有办法使用 C API 来做到这一点?

最佳答案

您正在寻找 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); 

您可以使用 lockdownd_client_new 创建 lockdown_client_t。有关如何设置锁定客户端的更多信息,请参阅 ideviceinfo 源代码。

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

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

关于c - 如何使用 libimobiledevice 获取连接设备的 ECID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54083843/

相关文章:

c++ - rand()/srand() 不断给我零

c - 关于 for 和 switch 的正确/错误

ios - 是否有预编译版本的 libimobiledevice 可以与我的应用程序一起分发?

android-studio - Android Studio 中 Flutter 应用程序无法正确识别 iPhone XS

c# - 在 Connect C# 上获取 iphone 的 UDID

c++ - 核心转储的监控应用程序

c - 将 cURL 与 C 和非顶级 URL 一起使用时出现问题

c++ - graphics.h 没有输出