3

根据我从有关 Entitlements plist 的文档中了解到的信息 - 这些文件定义了属性,这些属性使您的应用程序可以访问 iPhone OS 功能(例如推送通知)和安全数据(例如用户的钥匙串)。

公开地,您可以使用的唯一授权密钥是 get-task-allow,它最终使 ptrace() 函数可用于应用程序,从而启用调试。但是有很多权利是私下使用的,例如

  1. task_for_pid-allow,允许控制其他进程(通过 task_for_pid() 函数)
  2. run-unsigned-code,允许在没有签名的情况下从这个应用程序运行代码。
  3. com.apple.springboard.launchapplications、com.apple.springboard.wipedevice 等。

我的问题是有人使用这些密钥中的任何一个来访问私有 iOS 功能吗?我们如何做到这一点?如果我将这些密钥放在我的 Entitlements.plist 中,我将无法进行代码签名并将应用程序放在设备上。

4

2 回答 2

2

即使您可以使用正确的权利签署您的可执行文件,您仍然不能这样做。Apple 通过配置文件来限制这些权利的使用。您可以用来签署应用程序的权利必须是您的配置文件中存在的权利的子集。

于 2013-08-21T16:42:04.877 回答
0

您需要越狱并安装 AppSync,然后您可以使用您喜欢的任何权利,Xcode 将成功部署该应用程序。

于 2017-06-14T16:52:43.010 回答