但是哪一个实际上会给您带来误报?
如果我猜的话,我会说检查写权限是不可靠的。iOS 保护对系统文件的未经授权访问的方式不是使用权限,而是主要使用沙箱配置文件。有了这一点,Apple 可以为系统文件分配他们想要的任何权限,沙盒仍然可以保护系统。即使你越狱了你的手机,你仍然有沙盒(不记得任何会完全禁用沙盒的越狱)并且通常受到它的限制,例如,将你的 CydiaSubstrate dylibs 注入在沙盒配置文件下运行的系统守护程序/应用程序中。这就是 iOS 的全部安全性——代码签名、权利、沙盒、IPC。不需要苹果实际上并没有太多使用的 POSIX 权限。
检查可疑目录和文件也可能会给您带来误报,并且通常不是很可靠。Apple 经常更改它的根文件系统,你永远不知道新的 iOS 版本中可能会有什么。当然,如果和Cydia有关的话应该没问题。
这就是为什么 Apple 不喜欢 AppStore 应用程序检查越狱并经常因此而拒绝它们的部分原因。不仅您尝试访问您不应该访问的内容,这使得越狱检测和实际使用私有 API 以规避 iOS 安全性变得难以区分。但是鉴于越狱是关于非常特定的内核补丁以及由于沙盒(启动未签名的二进制文件,修改根分区)而您在 AppStore 应用程序中无法访问的东西,因此一般来说没有可靠的方法来检测越狱。分叉、Cydia、对 CydiaSubstrate 的支持——所有这些都是可选的,取决于特定的越狱实现。随着最近的jalbreaks' s 甚至更相关 - 所有这些都非常不同,并且没有完全完成缺乏过去标准的一些功能。更重要的是,如果 Apple 决定在 iOS 中更改某些内容,可能会意外触发越狱检测代码。假阳性比假阴性更糟糕。
最后,无论你做什么,每一个越狱检测代码都可以很容易地被打补丁或钩住。当您控制系统时,应用程序不再能够保护自己。这都是离题的,但这是忽略越狱的一个很好的理由。