Pergunta

Estou pensando no design de um aplicativo para iPhone que gostaria de criar.Um possível problema é que este aplicativo terá que ser executado como root (para acessar determinadas portas de rede).Em um aplicativo UNIX típico, eu apenas executaria o aplicativo com setuid, mas estou me perguntando se isso é possível com um aplicativo para iPhone.

Li esta pergunta no fórum da Apple, o que é desanimador:

http://discussions.apple.com/thread.jspa?threadID=1664575

Entendo que a Apple queira limitar o que um programa pode fazer, mas há muitos motivos bons e legítimos para um usuário executar um programa com privilégios elevados.Não estou tentando criar uma ferramenta hacker aqui.

Tenho certeza de que conseguiria contornar isso em um iPhone desbloqueado, mas não é isso que procuro.Existe alguma maneira de executar um aplicativo com privilégios elevados em um iPhone ininterrupto?

(Aliás, não há necessidade de me avisar sobre o NDA.)

Foi útil?

Solução

A seção 3.3.4 do Contrato SDK do iPhone sugere que você não deve trabalhar fora da sua sandbox.

Dado que A Apple tem sido um tanto arbitrária sobre quais aplicativos eles permitem, você definitivamente deveria verificar com eles antes você começa a se desenvolver.

Comparado com 2.0.x, as restrições do sandbox aumentaram na versão 2.1;você não pode mais ler na sandbox de outro aplicativo.Então, mesmo que atualmente é possível elevar os privilégios do seu aplicativo, muito provavelmente isso não acontecerá em uma versão futura.

Outras dicas

As únicas opções que você tem são

  1. Execute o aplicativo como root no iphone

  2. Defina o bit setuid dos aplicativos e a raiz do proprietário.

Não consigo imaginar nenhum deles sendo abençoado pela Apple.

Eu acho que depende do que você quer fazer com os privilégios, se você tiver sorte, pode haver privilégios mais refinados disponíveis, mas, afaik, você precisa escolher uma porta acima de 1024.

Não importa nem um pouco se você pode fazer isso em seu computador desktop normal.O iPhone não é um computador desktop normal.

Ao contrário de um computador desktop, o apenas Uma maneira de obter um aplicativo no iPhone sem jailbreak é obtê-lo na App Store.O apenas maneira de entrar na App Store é seguir as regras da Apple e as regras da Apple claramente incluem "sem escalonamento de privilégios", "sem escape da sandbox" e "sem acesso a portas de rede fora das APIs fornecidas existentes".

O que você quer fazer é não é possivel.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top