How to use Entitlements keys to access private iOS features

1.3k Views Asked by At

From what I know from documentation about Entitlements plist - These files define properties that provide your application access to iPhone OS features (such as push notifications) and secure data (such as the user’s keychain).

Publicly, the only entitlement key you could use is get-task-allow, which eventually enables the ptrace() function to be used for the app, thus enabling debugging. But there are a lot of entitlements used privately, e.g.

  1. task_for_pid-allow, to allow controlling other processes (via the task_for_pid() function)
  2. run-unsigned-code, to allow running code from this app without signature.
  3. com.apple.springboard.launchapplications, com.apple.springboard.wipedevice, etc.

My question is has anyone use any of these keys to access private iOS features? How do we do this? If I put these keys in my Entitlements.plist I am not able to code sign and put the app on device.

2

There are 2 best solutions below

0
Manish On

Even if you can sign your executable with correct entitlements you still can't do that. Apple restricts the usage of these entitlements by provisioning profile. Entitlements that you can sign your app with, have to be a subset of the entitlements present in your provisioning profile.

0
malhal On

You need to jailbreak and install AppSync, then you can use any entitlements you like and Xcode will successfully deploy the app.