0

我正在尝试从我的 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);
}

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

4

2 回答 2

1

我还发现您可以通过 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);
于 2020-01-09T16:05:24.483 回答
0

您可以使用 ideviceinfo 命令行实用程序探索锁定公开的密钥。ideviceinfo --help列出已知域,其中包括com.apple.disk_usage并且听起来很有趣。通常,指定一个域但省略一个键将为您提供该域中所有键的列表及其值:

让我们看看我们得到了什么:

> ideviceinfo -q com.apple.disk_usage

AmountDataAvailable: 24795447296
AmountDataReserved: 209715200
AmountRestoreAvailable: 30147182592
CalculateDiskUsage: OkilyDokily
NANDInfo: AQAA...
TotalDataAvailable: 25086046208
TotalDataCapacity: 26836963328
TotalDiskCapacity: 32000000000
TotalSystemAvailable: 0
TotalSystemCapacity: 5142020096

在您的情况下,看起来域中的TotalDiskCapacity密钥com.apple.disk_usage就是您要查找的内容。您可以使用lockdown.lockdown_get_value(lockdownHandle, "com.apple.disk_usage", "TotalDiskCapacity", out tests1)获取应包含请求值的属性列表句柄。

于 2020-01-09T11:19:14.317 回答