在iOS上为NSFileManager获得root权限(越狱)

我正在尝试将文件写入设备的根分区。 这是一个越狱应用程序,所以它被安装在/应用程序。 使用NSFileManager写入根文件系统时,写入失败,并显示“权限被拒绝”错误。

这似乎是我的应用程序不是以root身份运行。 它被安装在/ Applications中。 我的应用程序如何能成为根?

确实,应用程序必须以root身份运行才能访问非移动目录。 在与Optimo和Saurik讨论之后,我终于find了获得root权限的正确方法。

  1. 在main()函数中添加setuid(0);setgid(0);
  2. 正常build立应用程序。
  3. 在应用程序包中创build可执行文件的副本。
  4. 打开原始的可执行文件并用这个脚本replace它的内容:

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

    在iOS上直接启动根应用程序失败。 因此,我们用启动根可执行文件的脚本replace应用程序的主要可执行文件。

  5. 在terminal中,导航到应用程序包。

  6. chmod 0775原始的可执行文件和chmod 6775复制的可执行文件。
  7. 将应用程序包复制到/应用程序到设备。 重新启动SpringBoard,你应该很好去。 如果应用程序无法启动,请重复设备上的步骤5和6。