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]判断设备是否越狱相关推荐

  1. iOS 判断设备是否越狱

    想做一个付费下载应用,又担心越狱用户下载,白费心思了,故而想起在应用内判断设备是否越狱,网上找到这片关于越狱判断的文章,觉得写得特别好,所以转了下来,添加一些自己的心得. -------------- ...

  2. iOS 判断设备是否越狱(两种方式结合判断)

    越狱测试仅限真机 + (BOOL)JailBreak{BOOL status1 = NO;BOOL status2 = NO;//根据是否能打开cydia判断status1 = [[UIApplica ...

  3. IOS 判断设备屏幕尺寸、分辨率 根据屏幕尺寸和分辨率

    IOS 判断设备屏幕尺寸.分辨率 根据屏幕尺寸和分辨率,ios现在数起来有6个版本. iOS 设备现有的分辨率如下: iPhone/iPod Touch 普通屏                     ...

  4. iOS判断iPhone是否越狱

    苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我们随意安装.共享应用,但 ...

  5. ios判断设备能否打电话、发短信

    //判断能否打电话 NSString *deviceType = [UIDevice currentDevice].model;if([deviceType isEqualToString:@&quo ...

  6. iOS 判断设备型号

    + (NSString*)deviceString {// 需要#import "sys/utsname.h"struct utsname systemInfo;uname(&am ...

  7. 【iOS开发】判断iOS设备是否越狱

    原文链接:点击打开链接 苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我 ...

  8. iOS设备是否越狱的判断方法

    苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我们随意安装.共享应用,但 ...

  9. iOS安全攻防之越狱设备检测

    iOS 越狱(iOS Jailbreaking),是用于获取苹果公司便携装置操作系统iOS最高权限的一种技术手段,用户使用这种技术及软件可以获取到 iOS 的最高权限,甚至可能可以进一步解开运营商对手 ...

  10. ios系统判断设备上是否有安装某app

    iOS 9 以上的系统判断设备上是否有安装某app的两个方法:(主要是通过canOpenURL来打判断app是否存在) 方法一: 1.首先要知道你要判断的这款app的UrlSchemes 是什么? 如 ...

最新文章

  1. python装饰器函数-python装饰器1:函数装饰器详解
  2. mybatis oracle批量修改
  3. Android开发之使用Android studio进行两个项目合并的方法
  4. 【转】ASP.NET Web API 使用Swagger生成在线帮助测试文档,支持多个GET
  5. idea 提示接口注释信息
  6. Docker安装MongoDB管理工具nosqlclient
  7. JavaScript 模块化编程(一):模块的写法
  8. apktool反编译生成java_apktool反编译工具下载|apktool反编译工具 v3.0.1 最新版-520下载站...
  9. golang中的切片及内存拷贝
  10. C++之includeiostream与includeiostream.h
  11. Android控件:在《第一行代码(第二版)》学习RecyclerView的踩坑经过
  12. 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
  13. word2016如何在将指定页设置为首页
  14. 【代码小记】赏析《RAFT:运动属性的光流感知》
  15. NRF51822蓝牙初学笔记1.0之 GAP笔记
  16. Mysql报错:SQLIntegrityConstraintViolationException: Duplicate entry ‘xxx‘ for key ‘PRIMARY‘
  17. Android宠领养社区(源码+视频教程)
  18. Python3简单爬虫之下载相关类型音乐(喜马拉雅网站)
  19. 服务器如何修改vt,云服务器vt
  20. grads环境变量的设置

热门文章

  1. 山东省农商行计算机真题,2018山东农商行招聘考试题库:计算机试题三
  2. 蘑菇街服务器信息,蘑菇街开放平台
  3. matlab自动调焦,光学系统离焦对自动调焦评价函数的影响
  4. 万字吐血好文,一线分析师的4大总结。
  5. LQ0264 鲁卡斯队列【精度计算】
  6. 牛客网刷题:Q3禁忌雷炎(一般)
  7. 漫画:鉴权与安全访问控制的技术血脉
  8. EXCEL常用函数——计算统计函数
  9. 计算机一级网址打不开怎么办,路由器设置网址打不开怎么办?
  10. [JS]HTML中把图片划分成多个作用区域的区域标记