我安装的应用程序使用Ad-hoc证书进行签名。但它仅适用于越狱 iPhone。
我尝试直接阅读/var/mobile/Library/SMS/sms.db
中的SMS数据库。但我发现应用程序无法读取它,因为SandBox进程拒绝了该操作。所以我的问题是在iPhone被越狱之后是否删除了SandBox?
(现在我认为/var/mobile/Applications/
中的应用程序仍然受到SandBox的限制。越狱过程不会删除此目录中的SandBox吗?)
答案 0 :(得分:3)
不幸的是,你猜错了。在越狱设备上,安装到正常位置(/var/mobile/Applications/
)的应用程序仍然是沙箱(*请参阅下面的评论)。
越狱并未完全删除沙盒。
它允许您运行未经有效Apple证书签名的代码。因此,它还允许您将应用安装到不同的位置。
如果您将应用安装到/Applications/
,则可以阅读/var/mobile/Library/SMS/sms.db
,因为我描述了in this answer。作为系统应用,您将在沙箱之外。
这与Objective-C或Cocoa Touch与C API无关。如果您只需要使用众所周知的C I / O调用来逃避它,那么它就不会成为沙箱的大部分。
See this other similar answer (to a closed question),进行相关讨论。
更新:请参阅saurik的评论in this online thread。总结是不同的越狱(例如evasi0n,Absinthe,redsn0w)可以以不同的方式影响沙箱。 Saurik的建议当然是不完全删除。
答案 1 :(得分:1)
我在前一段时间尝试从iPhone的串口读取时遇到了同样的问题。您的猜测是正确的,即使在越狱后/var/mobile/Applications/
中的常规App Store应用仍然受到沙箱限制。系统应用程序不受这些限制的约束,可以在/var/stash/Applications/
中找到(或者我认为在iOS 6中路径中有一个标识符),这是安装Cydia的越狱应用程序的地方。
更新:使用Cydia app iFile,我可以打开/var/mobile/Library/SMS/sms.db
数据库并查看内容。移动短信应用程序没有特殊的权利文件,因此,如果您将应用程序放在系统应用程序目录中,我认为阅读SMS数据库应该没有问题。
答案 2 :(得分:0)
实际上有一种方法无法使用沙盒帐户。如果您重新启动越狱设备,并且显示Apple bootlogo时,您可以按住音量增大按钮以禁用mobilesubstrate。这允许您的设备启动,就像从未越狱并启用沙箱。要重新启动,请回到越狱状态。就这么简单!