我想知道,应用程序商店中有什么应用程序可以使我的iPhone对iTunes不可见吗?这意味着,当我通过USB电缆连接我的iPhone到PC时,iTunes会自动检测到我的iPhone。但是,我想要一个受密码保护的连接,因为当iPhone被盗时,任何人都可以将iPhone连接到iTunes并恢复所有数据。
所以我想保护你.当我的iPhone连接到iTunes时,它应该要求一个密码。
是否有办法通过使用私有API或越狱API来做到这一点,或者一个现成的应用程序可用?
发布于 2013-05-10 19:33:46
iTunes使用AFC守护进程通过USB与iPhone进行通信。很明显,要做的就是阻止这个守护进程自动启动。您可以使用launchctl来完成此操作。
在设备启动(或在iPhone连接到PC之后),您需要执行
launchctl unload /System/Library/LaunchDaemons/com.apple.afcd.plist当您将设备连接到PC机时,iTunes会显示错误,说明无法连接到该设备。然后,您的应用程序可以请求一个密码,当输入正确时,您可以像这样启动AFC守护进程
launchctl load /System/Library/LaunchDaemons/com.apple.afcd.plist
launchctl start com.apple.afcd这种方法的唯一问题是您需要重新启动iTunes,否则即使在您启动AFC守护进程之后,他也不会检测到设备。
更新
找到了一个合适的解决方案。有IOKit.framework API可以打开/关闭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之后就可用了。
https://stackoverflow.com/questions/14947927
复制相似问题