根据我从有关 Entitlements plist 的文档中了解到的信息 - 这些文件定义了属性,这些属性使您的应用程序可以访问 iPhone OS 功能(例如推送通知)和安全数据(例如用户的钥匙串)。
公开地,您可以使用的唯一授权密钥是 get-task-allow,它最终使 ptrace() 函数可用于应用程序,从而启用调试。但是有很多权利是私下使用的,例如
- task_for_pid-allow,允许控制其他进程(通过 task_for_pid() 函数)
- run-unsigned-code,允许在没有签名的情况下从这个应用程序运行代码。
- com.apple.springboard.launchapplications、com.apple.springboard.wipedevice 等。
我的问题是有人使用这些密钥中的任何一个来访问私有 iOS 功能吗?我们如何做到这一点?如果我将这些密钥放在我的 Entitlements.plist 中,我将无法进行代码签名并将应用程序放在设备上。