1

我安装的应用程序使用 Ad-hoc 证书进行签名。但它仅适用于越狱iPhone。

我尝试直接读取/var/mobile/Library/SMS/sms.db. 但我发现应用程序无法读取它,因为沙盒进程拒绝了该操作。所以我的问题是,iPhone越狱后沙盒是否会被移除?

(而且现在我觉得里面的应用/var/mobile/Applications/还是被沙盒限制的,越狱的过程中并没有把这个目录下的沙盒去掉?)

4

3 回答 3

3

不幸的是,你猜对了。在越狱设备上,安装到正常位置 ( /var/mobile/Applications/) 的应用程序仍处于沙盒状态(* 请参阅下面的评论)。

越狱并没有完全删除沙箱

它允许您运行未经有效 Apple 证书签名的代码。因此,它还允许您将应用程序安装到不同的位置。

但是,如果您将应用程序安装到/Applications/,它将能够读取/var/mobile/Library/SMS/sms.db,正如我在此答案中所描述的那样。作为系统应用程序,您将处于沙盒之外。

这与 Objective-C 或 Cocoa Touch 与 C API 无关。如果您所要做的只是使用众所周知的 CI/O 调用来逃避它,那么它就不会是一个沙箱。

有关一些相关讨论,请参阅this other similar answer (to a closed question) 。


更新:查看 saurik在此在线线程中的评论。总结是不同的越狱(例如evasi0n、Absinthe、redsn0w)可以以不同的方式影响沙盒。Saurik 的建议当然是不要完全删除它们。

于 2013-04-16T08:32:40.240 回答
1

不久前我在尝试从 iPhone 的串口读取数据时遇到了同样的问题。您的猜测是正确的,即使在越狱后,常规 App Store 应用程序/var/mobile/Applications/仍然受到沙盒限制。系统应用程序不受这些限制,可以在/var/stash/Applications/(或者我认为在 iOS 6 中的路径中有一个标识符)中找到,这是安装 Cydia 越狱应用程序的位置。

更新:使用 Cydia 应用程序 iFile 我可以打开/var/mobile/Library/SMS/sms.db数据库并查看内容。并且移动短信应用没有特殊的授权文件,所以我认为如果你将你的应用放在系统应用目录中,读取短信数据库应该没有问题。

于 2013-04-16T08:34:53.670 回答
0

实际上有一种方法可以解决无法使用沙盒帐户的问题。如果您重新启动越狱设备并且当显示苹果引导标志时,您可以按住音量增大按钮来禁用 mobilesubstrate。这使您的设备可以像从未越狱和启用沙箱一样启动。要回到您的越狱状态,只需重新启动即可。就那么简单!

于 2013-05-15T04:52:20.887 回答