Question

Je réfléchis à la conception d'une application iPhone que j'aimerais créer.Un problème possible est que cette application devra s'exécuter en tant que root (pour accéder à certains ports réseau).Dans une application UNIX typique, je ferais simplement en sorte que l'application s'exécute avec setuid, mais je me demande si cela est possible avec une application iPhone.

J'ai lu cette question sur le forum Apple, ce qui est décourageant :

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

Je comprends qu'Apple souhaite limiter ce qu'un programme peut faire, mais il existe de nombreuses bonnes raisons légitimes pour qu'un utilisateur exécute un programme avec des privilèges élevés.Je n'essaie pas de créer un outil de piratage ici.

Je suis sûr que je pourrais contourner ce problème sur un iPhone jailbreaké, mais ce n'est pas ce que je recherche.Existe-t-il un moyen d’exécuter une application avec des privilèges élevés sur un iPhone intact ?

(BTW, il n'est pas nécessaire de m'avertir de la NDA.)

Était-ce utile?

La solution

La section 3.3.4 de l'accord du SDK iPhone suggère que vous ne devez pas travailler en dehors de votre bac à sable.

Étant donné que Apple a été quelque peu arbitraire quant aux applications autorisées, vous devriez absolument vérifier auprès d'eux avant vous commencez à vous développer.

Par rapport à 2.0.x, les restrictions du bac à sable ont en fait augmenté dans la version 2.1;vous ne pouvez même plus lire depuis le bac à sable d'une autre application.Donc, même si actuellement est possible d'élever les privilèges de votre application, cela ne le sera très probablement pas dans une prochaine version.

Autres conseils

Les seules options dont vous disposez sont

  1. Exécutez l'application en tant que root sur l'iphone

  2. Définissez le bit setuid de l'application et la racine du propriétaire.

Je ne vois aucun d’entre eux béni par Apple.

Je suppose que cela dépend de ce que vous voulez faire avec les privilèges, si vous avez de la chance, il pourrait y avoir des privilèges plus fins disponibles, mais autant que je sache, vous devez choisir un port supérieur à 1024.

Cela n'a pas d'importance si vous pouvez le faire sur votre ordinateur de bureau normal.L'iPhone n'est pas un ordinateur de bureau normal.

Contrairement à un ordinateur de bureau, le seulement Un moyen d'obtenir une application sur iPhone sans jailbreak est de l'obtenir depuis l'App Store.Le seulement La meilleure façon d'accéder à l'App Store est de suivre les règles d'Apple, et les règles d'Apple clairement inclure "aucune élévation de privilèges", "pas d'évasion du bac à sable" et "pas d'accès aux ports réseau en dehors des API existantes fournies".

Ce que tu veux faire c'est pas possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top