Gaining root permissions on iOS for NSFileManager (Jailbreak)(在 iOS 上为 NSFileManager 获得 root 权限(越狱))
问题描述
我正在尝试将文件写入设备的根分区.这是一个越狱应用程序,因此它安装在/Applications 中.使用 NSFileManager
写入根文件系统时,写入失败并出现 Permission Denied" 错误.
I am trying to write file to the root partition of the device. It is a Jailbreak app so it is installed in /Applications. When writing to the root filesystem using NSFileManager
the write fails with a "Permission Denied" error.
我的应用似乎没有以 root 身份运行.它虽然安装在/Applications 中.我的应用如何成为 root?
It seems like my app is not running as root. It is installed in /Applications though. How can my app become root?
推荐答案
确实,应用程序必须以 root 身份运行才能访问非移动目录.在与 Optimo 和 Saurik 讨论后,我终于找到了获得 root 权限的正确方法.
It is true, the app has to run as root to access non mobile directories. After discussing this with Optimo and Saurik I finally found the right way to get root privileges.
- 在main()函数中添加
setuid(0);
和setgid(0);
- 正常构建应用.
- 在应用程序包中创建可执行文件的副本.
打开原始的可执行文件并用这个脚本替换它的内容:
- In the main() function add
setuid(0);
andsetgid(0);
- Build the app normally.
- Create a copy of the executable file in the app bundle.
Open the original executable file and replace its content with this script:
#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/COPIED_EXECUTABLE_NAME "$@"
在 iOS 上直接启动根应用程序失败.因此,我们将应用的主可执行文件替换为启动根可执行文件的脚本.
Directly launching a root app fails on iOS. Therefore we replace the app's main executable with a script that launches the root executable.
在终端中,导航到应用程序包.
In terminal, navigate to the app bundle.
这篇关于在 iOS 上为 NSFileManager 获得 root 权限(越狱)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在 iOS 上为 NSFileManager 获得 root 权限(越狱)
基础教程推荐
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01