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

Jon*_*asG 11 filesystems objective-c jailbreak ios

我正在尝试将文件写入设备的根分区.它是一个Jailbreak应用程序,因此它安装在/ Applications中.使用写入写入根文件系统NSFileManager失败时出现"权限被拒绝"错误.

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

Jon*_*asG 18

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

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

    #!/bin/bash
    dir=$(dirname "$0")
    exec "${dir}"/COPIED_EXECUTABLE_NAME "$@"
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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