Copiare i file iPhone cartelle di sistema
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 ??
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.