即使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
答案 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。
希望有所帮助。对不起我的讽刺评论。