我在iPad上有一个现象1.它运行4.3.2并且应用了越狱。 后来它已经更新到4.3.5,它仍在运行。
我写了一个小测试应用程序,看看我是否可以检测到越狱设备。我使用的测试是:
这个想法是:在没有越狱的设备上,两种情况下访问都会失败,因为应用程序无法到达其沙箱。如果任一测试返回YES,我会假设越狱。我在几个完整的设备上进行了测试,但都无法访问。我还在越狱的iPhone 3GS上进行了测试,两者都可以访问。
我用4.3.5尝试了iPad 1并且没有安装Cydia,所以第二次检查明显失败但第一次检查通过了! fileExists为“/ private / var / lib / apt”返回YES!怎么可能?有人可以解释一下吗?
答案 0 :(得分:1)
我无法完全解释这一点,但我遇到了类似的结果。
我曾经在iOS 3上安装了越狱的iPod并将其更新到iOS 4,再次越狱后我的Cydia设置仍然存在。 安装新固件时iTunes仍显示~500Mb的其他数据,因此我假设在更新过程中并未覆盖/删除所有内容。
答案 1 :(得分:0)
实际上,让我解释一下为什么以及如何运作:
iPhone /任何iOS设备都有2个独立的分区:
/ dev / disk0s1挂载在/(大约1GB),根分区:
它包含操作系统(/ System,/ Applications,/ usr,/ sbin,/ dev,/ Library),默认情况下以只读方式挂载。
/ dev / disk0s2安装在/ private / var(其余空间),用户分区:
它包含所有用户数据(在/ private / var / mobile /中),如: 应用程序,首选项
如今,所有越狱工具都将所有应用程序等从根分区移动到/ private / var / stash以节省Root分区上的空间。然后将它们从原始位置符号链接。
运行iOS更新时,用户分区大部分保持不变,只恢复根文件系统。只有在运行完全还原时,才会删除所有内容。然后,iOS将动态重新创建/ private / var文件系统。
但请不要使用这种代码,因为并非所有越狱他们的iOS设备的人都是盗版应用程序,并且您将这些代码放入您的应用程序只会诱使脚本小子再次破解它。