gpt4 book ai didi

iphone - 如何使用 Xcode 开发 iPhone 应用程序获得 Root 权限

转载 作者:行者123 更新时间:2023-12-03 20:30:25 26 4
gpt4 key购买 nike

即使 iPhone 越狱,我也无法在 xcode 中访问 /var/mobile/Library/SMS 等。

Apple 沙箱不允许 root 访问。

类似的答案在这里 Gaining root permissions on iOS for NSFileManager (Jailbreak) .

但是我是新手。除了前两步之外,我不明白他在做什么。如果有人能解释这个答案那就太好了。

或者

还有其他方法可以访问/private/var/mobile/Library....吗?

Xcode: 5.0.1
Device: iPhone 5s with iOS 7.1
OSX: 10.9.2

最佳答案

3 . Create a copy of the executable file in the app bundle.

当您在 Xcode 中构建项目时,它将生成一个输出目录。这因机器而异,因此您必须搜索文件系统。但是,如果您的应用名为 HelloWorld,通常情况下,您会有一个名为 HelloWorld.app 的目录。这就是答案所指的应用程序包。从命令行(或使用 Mac 的 Finder),进入 HelloWorld.app 并复制 HelloWorld 可执行文件。通常,我将副本命名为 MobileHelloWorld

4 . Open the original executable file and replace its content with this script:

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

Directly launching a root app fails on iOS. Therefore we replace the app's main executable with a script that launches the root executable.

我想我会以不同的方式描述此步骤。您可以删除该文件。创建一个具有相同文件名 (HelloWorld) 的新脚本,并对其进行编辑以包含上面的行,以 #!/bin/bash 开头。当然,在我的示例中,COPIED_EXECUTABLE_NAME 将替换为 MobileHelloWorld

因此,iOS 将直接启动您的脚本,而不是您的可执行文件。但是,您的脚本随后将启动您的可执行文件,并且由于您授予这些文件的权限,您正在运行的可执行文件将具有 root 权限。

5 . In terminal, navigate to the app bundle.

您可能已经位于此“ bundle ”目录中。 (HelloWorld.app)

6 . chmod 0775 the original executable file and chmod 6775 the copied executable file.

发出 chmod 命令,以便 HelloWorld 文件具有 775 权限 (rwxrwxr-x)。然后,MobileHelloWorld 文件应具有 6775 权限 (rwsrwsr-x)。

7 . Copy the app bundle to /Applications to a device. Restart SpringBoard and you should be good to go. If the app doesn't launch then repeat step 5 & 6 on the device.

使用您喜欢的任何工具(我只使用 scp 因为我的设备已越狱并安装了 openssh),复制整个 HelloWorld.app文件夹到 iOS 设备。因此,您将有一个名为:/Applications/HelloWorld.app/ 的文件夹,其中包含 bash 脚本、复制/重命名的可执行文件以及任何其他捆绑资源(.png 文件、.xib 文件等) .) 您的应用程序包含。

示例

如果您有越狱设备,请在手机中安装 openssh 和 ssh,然后查看 Cydia 应用程序本身如何完成此操作。您可以查看 /Applications/Cydia.app/Cydia 脚本文件,该文件以 root 权限启动 MobileCydia 可执行文件。

另一种方式

实际上,如果您只想访问 /var/mobile/Library,则不需要 root 访问权限。该目录由 mobile 用户拥有,因此不需要 root。必要的是逃离正常的 iOS 第 3 方应用程序沙箱。为此,只需将 HelloWorld.app 文件夹及其内容复制到设备上的 /Applications/ 文件夹即可。与 /var/mobile/Applications 相比,安装在那里的应用程序不会有如此严格的沙箱限制。

因此,复制可执行文件、插入 bash 脚本都是不必要的。可以跳过第 3 步到第 6 步。

希望有帮助。抱歉我的尖刻评论。

关于iphone - 如何使用 Xcode 开发 iPhone 应用程序获得 Root 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25364655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com