2013-02-19 77 views
1

我想知道,在App Store中是否有任何可用的应用程序让我的iPhone对iTunes不可见?这意味着,当我通过USB线将我的iPhone连接到PC时,iTunes会自动检测我的iPhone。但是,我想要一个密码保护连接,因为当iPhone被盗时,任何人都可以将iPhone连接到iTunes并恢复所有数据。使我的iPhone对iTunes无法看到并且密码保护连接

所以我想从这个保护...当我的iPhone连接到iTunes,它应该要求输入密码。

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

+0

其实在这里我张贴的问题寻求帮助开发应用程序自己。在问题的最后,我提到,是否有任何API可用于开发这样的应用程序。所以我发誓,这不是关于编程问题的话题。这完全是编程问题。 – 2013-02-19 00:50:58

+2

我会建议移动开发人员的问题(有人可能只读过一半。 – 2013-02-19 01:18:40

+1

http://osxdaily.com/2010/05/18/password-protect-iphone-and-ipad-backups/ – sosborn 2013-02-19 01:19:20

回答

2

iTunes使用AFC守护进程通过USB与iPhone进行通信。所以显而易见的事情是阻止这个守护进程自动启动。您可以使用launchctl来执行此操作。

(iPhone连接到PC或之后)在设备启动时需要您将设备连接到PC iTunes会显示错误消息,在无法连接到该设备执行

launchctl unload /System/Library/LaunchDaemons/com.apple.afcd.plist 

。然后,您的应用程序可以要求输入密码,当它的正确输入您可以启动AFC守护回这样

launchctl load /System/Library/LaunchDaemons/com.apple.afcd.plist 
launchctl start com.apple.afcd 

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

UPDATE

找到了适当的解决方案。有IOKit.framework API来开启/关闭USB - http://www.opensource.apple.com/source/IOKitUser/IOKitUser-502/usb_device.subproj/IOUSBDeviceControllerLib.h

下面是代码:

//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

相关问题