Embora sua resposta esteja correta, eu só quero ser mais específico sobre isso para que as pessoas que desejam saber o que exatamente get_task_allow
significa, possam.
get_task_allow
é um direito que permite que outros aplicativos obtenham a porta de tarefas do seu aplicativo. Isso significa que se qualquer outro aplicativo for executado task_for_pid()
com o ID do processo do seu aplicativo, eles obterão a porta de tarefas do seu aplicativo para que possam fazer coisas como, por exemplo, escrever e ler coisas na memória, podendo, portanto, corrigir coisas e modificar o comportamento de seu aplicativo.
Se você der uma olhada em como funciona um jailbreak, você notará que uma das primeiras coisas que eles fazem é conseguir task_for_pid(mach_task_self(),0,&kernel_task);
ser kernel_task
um mach_port_t
com valor 0
, para que possam tocar a memória do kernel.
Como os direitos do kernel não têm get_task_allow
direitos, e a Apple até removeu a possibilidade de fazer tfp0
( task_for_pid 0
), eles precisam de um patch.
Então, basicamente, como o Xcode precisa tocar a memória do seu aplicativo e trabalhar com ele para depurá-lo, você precisará habilitar isso para depuração, mas você precisará desabilitar isso para distribuir seu aplicativo ou então qualquer aplicativo seria capaz de obter seu porta de tarefas.