objective-c ios filesystems jailbreak

objective c - Obtener permisos de raíz en iOS para NSFileManager(Jailbreak)



objective-c filesystems (1)

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 utilizando NSFileManager la escritura falla con un error "Permiso denegado" .

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?


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 () agrega setuid(0); y setgid(0);
  2. Construye la aplicación normalmente.
  3. Crea una copia del archivo ejecutable en el paquete de la aplicación.
  4. Abra el archivo ejecutable original y reemplace su contenido con este script:

    #!/bin/bash dir=$(dirname "$0") exec "${dir}"/COPIED_EXECUTABLE_NAME "$@"

    El inicio directo 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, navega hasta el paquete de la aplicación.

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