首页 > 解决方案 > 尝试在 iMobileDevice 中查找设备的 STORAGE SIZE 时,lockdownd_get_value() 的 KEY 是什么?

问题描述

我正在尝试从我的 iPhone 获取尽可能多的信息,但我iMobileDevice找不到在libimobiledeviceAPI 或其他地方搜索的受支持密钥列表。我知道像这里这样的地方存在并且很有帮助,但在使用lockdownd_get_value(LockdownClientHandle ld, string domain, string KEY, out PListHandle value). 这就是我使用它的方式。

ReadOnlyCollection<string> udids;
int count = 0;

var idevice = LibiMobileDevice.Instance.iDevice;
var lockdown = LibiMobileDevice.Instance.Lockdown;

var ret = idevice.idevice_get_device_list(out udids, ref count);

if (ret == iDeviceError.NoDevice)
{
    // Not actually an error in our case
    return;
}

ret.ThrowOnError();

// Get the device name
foreach (var udid in udids)
{
    string t1;

    PlistHandle tested1;

    //Find serial number in plist
    lockdown.lockdownd_get_value(lockdownHandle, null, "SerialNumber", out 
    tested1);

    //Get string values from plist
    tested1.Api.Plist.plist_get_string_val(tested1, out t1);

    Console.WriteLine(t1);
}

另外,是否有支持所有键的参考列表?

标签: c#.netlibimobiledevice

解决方案


我还发现您可以通过 afc 访问 disk_usage 信息:

LockdownServiceDescriptorHandle ldsHandle;
AfcClientHandle afcClient;

idevice.idevice_new(out deviceHandle, udid).ThrowOnError();

lockdown.lockdownd_client_new_with_handshake(deviceHandle, out lockdownHandle, 
   "Quamotion").ThrowOnError();

lockdown.lockdownd_start_service(lockdownHandle, "com.apple.afc", out ldsHandle);

ldsHandle.Api.Afc.afc_client_new(deviceHandle, ldsHandle, out afcClient);

ldsHandle.Api.Afc.afc_get_device_info_key(afcClient, "FSTotalBytes", out totalSize);

推荐阅读