c# - 尝试在 iMobileDevice 中查找设备的 STORAGE SIZE 时,lockdownd_get_value() 的 KEY 是什么?
问题描述
我正在尝试从我的 iPhone 获取尽可能多的信息,但我iMobileDevice
找不到在libimobiledevice
API 或其他地方搜索的受支持密钥列表。我知道像这里这样的地方存在并且很有帮助,但在使用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);
}
另外,是否有支持所有键的参考列表?
解决方案
我还发现您可以通过 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);
推荐阅读
- php - 无法在我的计算机中配置 PHP。你能检查我做错了什么吗?
- php - 针对嵌套 JSON 字段、MYSQL、PHP 的 QUERY
- google-apps-script - `clasp` 将 `.gs` 文件放在哪里?对“扣推”上的编译器错误进行故障排除
- python - 如果目标函数有太多参数,SciPy 差分进化会失败
- ios - XCode:使用始终显示点“。”的小数点。而不是逗号','
- java - Spring Security 正在初始化但不验证登录表单数据
- python - 在python中使用相同的键但不同的值更新字典/列表
- python - 如何使用 USB 网络摄像头在树莓派上拍摄视频
- go - golang chanel 无法与 sync.WaitGroup 一起使用
- python - Twitter Filter Streaming API - 增加规则限制或过滤来自朋友的推文?