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

时间:2011-10-20 19:43:46

标签: objective-c ios filesystems jailbreak

我正在尝试将文件写入设备的根分区。它是一个Jailbreak应用程序,因此它安装在/ Applications中。使用NSFileManager写入根文件系统时,写入失败并显示“Permission Denied”错误。

好像我的应用程序没有以root用户身份运行。它安装在/ Applications中。我的应用程序如何成为root用户?

1 个答案:

答案 0 :(得分:18)

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

  1. 在main()函数中添加setuid(0);setgid(0);
  2. 正常构建应用程序。
  3. 在应用包中创建可执行文件的副本。
  4. 打开原始可执行文件并使用以下脚本替换其内容:

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

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

  5. 在终端中,导航至应用包。

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