Domanda

sto sviluppando per iPhone Jailbroken. Ho bisogno di scrivere (copia) un file su iPhone cartelle di sistema (/ Library / LaunchDaemons) a cui solo root ha accesso in scrittura. Come posso scrivere un file a tali cartelle attraverso il mio codice. So che posso usare copyItemAtPath di NSFileManager: metodo topath per copiare il file, ma i cant scrivere come io non ha il permesso di scrivere su tali cartelle

.

Dei suggerimenti ??

È stato utile?

Soluzione

Credo di aver trovato la risposta a questa domanda. Per scrivere nelle cartelle di sistema è necessario avere il permesso di scrivere su quella cartella. La mia app ha avuto un Demone collegato ad esso, quindi ho dovuto copiare che Daemon a / System / Library / LaunchDaemons per fare quel lavoro Daemon. Così come sto sviluppando per JB iphone e la gente sta per installare la mia app utilizzando Cydia, perché non fare Cydia installare i file della mia app per posizioni corrette. Ho fatto Cydia per copiare il file Daemon nella cartella / System / Library / LaunchDaemon. Ora la domanda è come Cydia saprà dove incollare i file. Risposta è semplice, basta fare le cartelle appropriate nel file .deb e Cydia incollare i file che si trovano nelle cartelle all'interno del file .deb.

Per esempio, se si dispone di un demone e che si desidera Cydia per incollarlo in / Sistema / Libreria / LaunchDaemons, rendere la struttura dei file come questo prima di fare un .deb

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

Cydia durante l'installazione la vostra applicazione sarà incollare il file com.myLaunchDaemon.plist in System / Library / LaunchDaemons, riavvio e siete a posto.

Altri suggerimenti

La vostra applicazione potrebbe funzionare come root o root setuid.

Invece di correre tutta la vostra applicazione come root è molto meglio di progettazione per avere un piccolo strumento di supporto che installerà i file. Solo allora quello strumento di supporto deve essere eseguito come root.

Per ulteriori informazioni su binari SUID controllare http://en.wikipedia.org/wiki/Setuid come un buon punto di partenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top