【问题标题】:Running app on iOS 9.3.3 jailbroken with root access在 iOS 9.3.3 上运行应用程序已越狱并具有 root 访问权限
【发布时间】:2016-07-29 20:48:53
【问题描述】:

我正在尝试在越狱 iPhone 9.3.3 上授予对我的应用程序的 root 访问权限

我已按照此处提到的相同步骤进行操作 - Gaining root permissions on iOS for NSFileManager (Jailbreak)

但是,该应用程序没有获得 root 访问权限。看起来, setuid(0) 失败了。我在主函数中使用setuid(0)setgid(0)

int main(int argc, char *argv[]) {
   if(!(setuid(0) == 0 && setgid(0) == 0)) {
     exit(EXIT_FAILURE);
   }

   return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}

应用程序在上述情况下退出。

任何帮助将不胜感激。

【问题讨论】:

  • 请在您的设备上运行stat -c '%U %a' path/to/wrapper-script /path/to/executable 并在此处发布输出?
  • stat:找不到命令。我是否必须在特定目录中查找此命令?我是从根目录打的。
  • 我的错,你需要 Cydia 的“Core Utilities”包。我以为是默认安装的。
  • 谢谢。它给了我root 775
  • 对于它给root 775的脚本和它给root 6775的可执行文件。

标签: ios


【解决方案1】:

setgid(0) 不是必需的

在 iOS 中,您不能直接以 root 身份运行应用程序,您必须通过 shell 脚本运行它们。

这样做:

  1. 重命名应用程序二进制文件,例如,如果名为 App 的二进制文件将其重命名为 _App
  2. 创建一个名为App“原始二进制名称”的文本文件
  3. 在新创建的文本文件中粘贴

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

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多