iOS越狱检测

一般来说,越狱会自动安装一个Cydia的APP.

我们知道,一般开发者的App都在如下的路径内:

/var/mobile/Containers/Bundle/Application

数据(Data)的Bundle路径应该是:

/var/mobile/Containers/Data/Application

那么,这二者有什么区别呢.

上面的Bundle里面存放的是咱们工程内的一些资源.如拖进去的图片、音视频资源什么的.
而下面的Data是存放数据的.类似NSUserDefault里面存的一些数据.

如果判断有没有一个app(普通App).判断上面的Bundle里面存不存在即可.

然而.对于一些特殊的App.类似于系统App.他们存在的地方就不是这里了.因为他们具有更高的权限.所以在其他的目录里头.(对于越狱后"自动"安装的Cydia也在这个目录里头)

/Applications/

又由于越狱后,所有App都有了访问系统路径的权限…

那么.简单的检测是否越狱的代码就可以是.判断有没有这个App

let isJailbreak = FileManager.default.fileExists(atPath: "/Applications/Cydia.app")

反正咱们都有访问系统路径的权限…咱们也可以

FileManager.default.fileExists(atPath: "/Applications/Music.app")

对于未越狱的iOS(iPad OS)设备来说.咱们访问不了系统路径.返回的就是false了

发布了268 篇原创文章 · 获赞 59 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/qq_18683985/article/details/98494039