2011-10-20 11 views
10

Estoy intentando escribir un archivo en la partición raíz del dispositivo. Es una aplicación Jailbreak por lo que está instalado en/Aplicaciones. Al escribir en el sistema de archivos raíz usando NSFileManager, la escritura falla con un error "Permiso denegado".Obtención de permisos de raíz en iOS para NSFileManager (Jailbreak)

Parece que mi aplicación no se ejecuta como root. Sin embargo, está instalado en/Applications. ¿Cómo puede mi aplicación convertirse en root?

Respuesta

18

Es cierto, la aplicación debe ejecutarse como root para acceder a directorios que no sean móviles. Después de discutir esto con Optimo y Saurik finalmente encontré la manera correcta de obtener privilegios de root.

  1. En la función main() añadir setuid(0); y setgid(0);
  2. Construir la aplicación normalmente.
  3. Cree una copia del archivo ejecutable en el paquete de la aplicación.
  4. Abrir el archivo ejecutable original y reemplazar su contenido con este script:

    #!/bin/bash 
    dir=$(dirname "$0") 
    exec "${dir}"/COPIED_EXECUTABLE_NAME "[email protected]" 
    

    directamente el lanzamiento de una aplicación raíz falla en IOS. Por lo tanto, reemplazamos el ejecutable principal de la aplicación con un script que inicia el ejecutable de la raíz.

  5. En la terminal, navegue hasta el paquete de aplicaciones.

  6. chmod 0775 el archivo ejecutable original y chmod 6775 el archivo ejecutable copiado.
  7. Copie el paquete de aplicaciones a/Aplicaciones en un dispositivo. Reinicie SpringBoard y debería estar listo para comenzar. Si la aplicación no se inicia, repita el paso 5 & 6 en el dispositivo.
+0

puede usted por favor guía de cómo el paso 3 en adelante se llevará a cabo a través de codificación única \ –

+0

Hola, donde puedo encontrar este camino NSArray * caminos = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, SI); NSString * docDirectory = [paths objectAtIndex: 0]; porque no puedo depurar – HDNZ

+0

Trabajo en iOS 6, si muevo el paquete de aplicaciones a/Aplicaciones, no aparece en el trampolín :( – dvkch

Cuestiones relacionadas