首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使我的iPhone对iTunes不可见,并且密码保护连接

使我的iPhone对iTunes不可见,并且密码保护连接
EN

Stack Overflow用户
提问于 2013-02-19 00:42:57
回答 1查看 702关注 0票数 1

我想知道,应用程序商店中有什么应用程序可以使我的iPhone对iTunes不可见吗?这意味着,当我通过USB电缆连接我的iPhone到PC时,iTunes会自动检测到我的iPhone。但是,我想要一个受密码保护的连接,因为当iPhone被盗时,任何人都可以将iPhone连接到iTunes并恢复所有数据。

所以我想保护你.当我的iPhone连接到iTunes时,它应该要求一个密码。

是否有办法通过使用私有API或越狱API来做到这一点,或者一个现成的应用程序可用?

EN

回答 1

Stack Overflow用户

发布于 2013-05-10 19:33:46

iTunes使用AFC守护进程通过USB与iPhone进行通信。很明显,要做的就是阻止这个守护进程自动启动。您可以使用launchctl来完成此操作。

在设备启动(或在iPhone连接到PC之后),您需要执行

代码语言:javascript
复制
launchctl unload /System/Library/LaunchDaemons/com.apple.afcd.plist

当您将设备连接到PC机时,iTunes会显示错误,说明无法连接到该设备。然后,您的应用程序可以请求一个密码,当输入正确时,您可以像这样启动AFC守护进程

代码语言:javascript
复制
launchctl load /System/Library/LaunchDaemons/com.apple.afcd.plist
launchctl start com.apple.afcd

这种方法的唯一问题是您需要重新启动iTunes,否则即使在您启动AFC守护进程之后,他也不会检测到设备。

更新

找到了一个合适的解决方案。有IOKit.framework API可以打开/关闭USB -device.subproj/IOUSBDeviceControllerLib.h

以下是代码:

代码语言:javascript
复制
//Declarations
IOReturn IOUSBDeviceControllerCreate(CFAllocatorRef allocator, IOUSBDeviceControllerRef* deviceRef);
IOReturn IOUSBDeviceControllerForceOffBus(IOUSBDeviceControllerRef device, int enable);    

...

//Create controller
IOUSBDeviceControllerRef device = NULL;
IOUSBDeviceControllerCreate(NULL, &device);

//Turn USB off
IOUSBDeviceControllerForceOffBus(device, 1);

//Turn USB on
IOUSBDeviceControllerForceOffBus(device, 0);

//Free controller
CFRelease(device);

当USB关闭时,您的mac/PC将不再看到该设备。就像你物理上切断了它。iTunes,Xcode,文件浏览器-他们都不会再看到它了。

当USB打开时,您的mac/PC将检测到设备。你不需要回答它。所有的软件都会自动检测它,就像设备被物理插在里面一样。

我应该警告您,当USB关闭时,如果不使用上面的代码,就不能重新打开它。如果您坚持它,只有设备重新启动将有帮助。

仅在iOS 7上进行了测试,但这些函数似乎在iOS 4之后就可用了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14947927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档