Question

Je développe pour iPhone jailbreaké. Je dois écrire (copier) un fichier iPhone dossiers système (/ Library / à LaunchDaemons) auquel seul ROOT accès en écriture. Comment puis-je écrire un fichier à ces dossiers dans mon code. Je sais que je peux utiliser copyItemAtPath de NSFileManager: méthode de toPath pour copier le fichier, mais je ne peux pas écrire que je n'avez pas la permission d'écrire sur de tels dossiers

.

Toutes les suggestions ??

Était-ce utile?

La solution

Je crois que je l'ai trouvé la réponse à cette question. Pour écrire des dossiers système, vous devez avoir la permission d'écrire sur ce dossier. Mon application avait un Daemon attaché, donc je dû copier ce Daemon à / System / Library / LaunchDaemons pour faire ce travail de Daemon. Alors que je suis en développement pour JB iPhone et les gens vont installer mon application avec Cydia, pourquoi ne pas faire installer Cydia les fichiers de mon application à des endroits appropriés. J'ai fait Cydia pour copier le fichier dans Daemon dossier / System / Library / LaunchDaemon. Maintenant, la question est de savoir comment Cydia saura où coller les fichiers. La réponse est simple, il suffit de faire les dossiers appropriés dans le fichier .deb et cydia vont coller les fichiers situés dans les dossiers du fichier .deb.

Par exemple, si vous avez un Daemon et que vous voulez le coller Cydia à / System / Library / LaunchDaemons, rendre la structure de fichier comme celui-ci avant de faire un .deb

+- MyApp
   +- Applications
      +Myapp.app
   +-DEBIAN
    -control
   +-System
     +-Library
       +-LaunchDaemons
         +- com.myLaunchDaemon.plist

Cydia lors de l'installation de votre application va coller le fichier dans com.myLaunchDaemon.plist System / Library / LaunchDaemons, reboot et vous êtes bon pour aller.

Autres conseils

Votre application peut fonctionner en tant que root ou suid root.

Au lieu de l'exécution de votre application tout en tant que root, il est beaucoup mieux conception d'avoir un petit outil d'aide qui installera les fichiers. Alors seulement cet outil d'aide doit fonctionner en tant que root.

Pour plus d'informations sur les binaires SUID consultez http://en.wikipedia.org/wiki/Setuid comme un bon début.

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