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

时间:2014-08-18 13:33:53

标签: iphone xcode5 sandbox jailbreak ios7.1

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

Apple沙盒不允许root访问。

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

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

OR

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

  

Xcode:5.0.1
  设备:带iOS 7.1的iPhone 5s   OSX:10.9.2

1 个答案:

答案 0 :(得分:4)

  

3。在应用程序包中创建可执行文件的副本。

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

  

4。打开原始可执行文件并使用以下脚本替换其内容:

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

     

在iOS上直接启动根应用程序失败。因此我们更换应用程序的主要内容      带有启动根可执行文件的脚本的可执行文件。

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

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

  

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

你可能已经在这个"捆绑"目录。 (HelloWorld.app

  

6。 chmod 0775原始可执行文件和chmod 6775复制的可执行文件。

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

  

7。将应用程序包复制到/ Applications到设备。重启SpringBoard      你应该好好去。如果应用程序没有启动,请重复步骤5& 6      在设备上。

使用您喜欢的任何工具(我只使用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第三方应用程序沙箱。为此,只需将您的HelloWorld.app文件夹及其内容复制到设备上的/Applications/文件夹即可。与/var/mobile/Applications相比,安装在那里的应用程序不会受到严格的沙箱限制。

因此,无需复制可执行文件,插入bash脚本。可以跳过步骤3到6。

希望有所帮助。对不起我的讽刺评论。