[iOS]判断设备是否越狱
1. 判断Cydia的URL scheme
若越狱设备没使用Cydia商店,这种判断检测不准。若设备是不完美越狱,已经回退为未越狱状态,这种判断也不准。
Swift:
func isJailBreak() -> Bool {if let url = URL(string: "cydia://"), UIApplication.shared.canOpenURL(url) {return true}return false
}
OC:
- (BOOL)isJailBreak {if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]) {return YES;}return NO;
}
2. 判断常见的越狱文件
可以收集常见的越狱文件,定个标准判断手机中存在一个或多个,表示手机已经越狱。
Swift:
func isJailBreak() -> Bool {let pathArr = ["/Applications/Cydia.app", "/usr/sbin/sshd" , "/usr/sbin/sshd" , "/etc/apt"]for path in pathArr {if FileManager.default.fileExists(atPath: path) {return true}}return false
}
OC:
- (BOOL)isJailBreak {NSArray *pathArr = [[NSArray alloc] initWithObjects: @"/Applications/Cydia.app", @"/usr/sbin/sshd", @"/etc/apt", nil];for (int i = 0 ; i < pathArr.count ; i ++) {NSString *path = pathArr[i];if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {return YES;}}return NO;
}
3. 判断能否访问系统所有应用
利用非越狱手机没权限查看Applications来判断
Swift:
func isJailBreak() -> Bool {let appPath = "/Applications/"if FileManager.default.fileExists(atPath: appPath) {do {let appList = try FileManager.default.contentsOfDirectory(atPath: appPath)if appList.count > 0 {return true}} catch let error {print(error)}}return false
}
OC:
- (BOOL)isJailBreak {NSString *appPath = @"/Applications/";if ([[NSFileManager defaultManager] fileExistsAtPath:appPath]) {NSArray *appList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:appPath error:nil];if (appList.count > 0) {return YES;}}return NO;
}
[iOS]判断设备是否越狱相关推荐
- iOS 判断设备是否越狱
想做一个付费下载应用,又担心越狱用户下载,白费心思了,故而想起在应用内判断设备是否越狱,网上找到这片关于越狱判断的文章,觉得写得特别好,所以转了下来,添加一些自己的心得. -------------- ...
- iOS 判断设备是否越狱(两种方式结合判断)
越狱测试仅限真机 + (BOOL)JailBreak{BOOL status1 = NO;BOOL status2 = NO;//根据是否能打开cydia判断status1 = [[UIApplica ...
- IOS 判断设备屏幕尺寸、分辨率 根据屏幕尺寸和分辨率
IOS 判断设备屏幕尺寸.分辨率 根据屏幕尺寸和分辨率,ios现在数起来有6个版本. iOS 设备现有的分辨率如下: iPhone/iPod Touch 普通屏 ...
- iOS判断iPhone是否越狱
苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我们随意安装.共享应用,但 ...
- ios判断设备能否打电话、发短信
//判断能否打电话 NSString *deviceType = [UIDevice currentDevice].model;if([deviceType isEqualToString:@&quo ...
- iOS 判断设备型号
+ (NSString*)deviceString {// 需要#import "sys/utsname.h"struct utsname systemInfo;uname(&am ...
- 【iOS开发】判断iOS设备是否越狱
原文链接:点击打开链接 苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我 ...
- iOS设备是否越狱的判断方法
苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我们随意安装.共享应用,但 ...
- iOS安全攻防之越狱设备检测
iOS 越狱(iOS Jailbreaking),是用于获取苹果公司便携装置操作系统iOS最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,甚至可能可以进一步解开运营商对手 ...
- ios系统判断设备上是否有安装某app
iOS 9 以上的系统判断设备上是否有安装某app的两个方法:(主要是通过canOpenURL来打判断app是否存在) 方法一: 1.首先要知道你要判断的这款app的UrlSchemes 是什么? 如 ...
最新文章
- python装饰器函数-python装饰器1:函数装饰器详解
- mybatis oracle批量修改
- Android开发之使用Android studio进行两个项目合并的方法
- 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
- idea 提示接口注释信息
- Docker安装MongoDB管理工具nosqlclient
- JavaScript 模块化编程(一):模块的写法
- apktool反编译生成java_apktool反编译工具下载|apktool反编译工具 v3.0.1 最新版-520下载站...
- golang中的切片及内存拷贝
- C++之includeiostream与includeiostream.h
- Android控件:在《第一行代码(第二版)》学习RecyclerView的踩坑经过
- 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
- word2016如何在将指定页设置为首页
- 【代码小记】赏析《RAFT:运动属性的光流感知》
- NRF51822蓝牙初学笔记1.0之 GAP笔记
- Mysql报错:SQLIntegrityConstraintViolationException: Duplicate entry ‘xxx‘ for key ‘PRIMARY‘
- Android宠领养社区(源码+视频教程)
- Python3简单爬虫之下载相关类型音乐(喜马拉雅网站)
- 服务器如何修改vt,云服务器vt
- grads环境变量的设置