iOS检测当前设备是否越狱系统
因国外客户对接进行代码扫描就扫出这么个问题,那就解决一下吧,进行记录一下mark 一下

新建JarBroken.swift

import Foundation
import UIKitvar isSimulator: Bool {return TARGET_OS_SIMULATOR != 0
}var isJailBroken: Bool {get {//        if UIDevice.current.isSimulator { return false } // 模拟器不检测if JailBrokenHelper.hasCydiaInstalled() { return true }if JailBrokenHelper.isContainsSuspiciousApps() { return true }if JailBrokenHelper.isSuspiciousSystemPathsExists() { return true }return JailBrokenHelper.canEditSystemFiles()}
}private struct JailBrokenHelper {static func hasCydiaInstalled() -> Bool {return UIApplication.shared.canOpenURL(URL(string: "cydia://")!)}static func isContainsSuspiciousApps() -> Bool {for path in suspiciousAppsPathToCheck {if FileManager.default.fileExists(atPath: path) {return true}}return false}static func isSuspiciousSystemPathsExists() -> Bool {for path in suspiciousSystemPathsToCheck {if FileManager.default.fileExists(atPath: path) {return true}}return false}static func canEditSystemFiles() -> Bool {let jailBreakText = "Developer Insider"do {try jailBreakText.write(toFile: jailBreakText, atomically: true, encoding: .utf8)return true} catch {return false}}/**Add more paths here to check for jail break*/static var suspiciousAppsPathToCheck: [String] {return ["/Applications/Cydia.app","/Applications/blackra1n.app","/Applications/FakeCarrier.app","/Applications/Icy.app","/Applications/IntelliScreen.app","/Applications/MxTube.app","/Applications/RockApp.app","/Applications/SBSettings.app","/Applications/WinterBoard.app"]}static var suspiciousSystemPathsToCheck: [String] {return ["/Library/MobileSubstrate/DynamicLibraries/LiveClock.plist","/Library/MobileSubstrate/DynamicLibraries/Veency.plist","/private/var/lib/apt","/private/var/lib/apt/","/private/var/lib/cydia","/private/var/mobile/Library/SBSettings/Themes","/private/var/stash","/private/var/tmp/cydia.log","/System/Library/LaunchDaemons/com.ikey.bbot.plist","/System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist","/usr/bin/sshd","/usr/libexec/sftp-server","/usr/sbin/sshd","/etc/apt","/bin/bash","/Library/MobileSubstrate/MobileSubstrate.dylib"]}
}

还有添加白名单

在info.plist的LSApplicationQueriesSchemes密钥中添加“Cydia”。否则canOpenURL将始终返回false。<key>LSApplicationQueriesSchemes</key>
<array><string>cydia</string>
</array>

使用

/// 检测当前设备是否越狱,越狱则禁止允许let isBroken = isJailBroken;if isBroken {NSLog("当前系越狱系统,禁止使用")} else {NSLog("当前系越狱系统,禁止允许")}

禁止使用进行提示后,代码退出当前APP到home页面代码在我上篇博客,有需要可以自己去看,哈哈
参考资料: https://developerinsider.co/best-way-to-check-if-your-ios-app-is-running-on-a-jailbroken-phone/

iOS检测当前设备是否越狱系统相关推荐

  1. ios 检测是否联网_iOS 设备打开触动精灵提示“您的网络不给力哦,请检查您的设备是否联网”怎么解决?...

    如果您打开 Cydia 显示"似乎已断开与互联网的连接"请查看:Cydia 提示无网络解决办法,安装乐网后 Cydia 添加 https://apt.abcydia.com 安装 ...

  2. iOS有反检测能力的越狱工具shadow的分析和检测

    Shadow包地址:https://github.com/jjolano/shadow/releases/download/v2.0.x%40old/me.jjolano.shadow_2.0.20_ ...

  3. iOS 8.4.1完美越狱工具发布:老设备福音

    iOS 11正式版都发布了,你还需要iOS 8.4.1完美越狱吗?不得不承认的是,肯定还会有极少一批用户有这个需求,所以黑客们就满足了他们这个需求. 今天,黑客@tihmstar发布了iOS 8.4. ...

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

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

  5. iOS 判断设备是否越狱

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

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

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

  7. U盘在我的电脑里不显示,只在系统托盘区里可以检测到设备

    U盘在"我的电脑"里识别不出,但在右下角"系统托盘区"可以检测到设备 比如我的U盘叫"雄雄雄",DataTraveler 2.0: 解决方法 ...

  8. 如何为 iOS 10~12.1.2 的设备一键越狱

    爱思助手Mac版最高已经支持 iOS 12.1.2 一键越狱,对于热衷为设备安装多种插件的用户来说是个重大利好消息,那么如何为 iOS 10~12.1.2 的设备一键越狱呢,我们一起来看看如何操作吧. ...

  9. 借助91助手,将ibook中的pdf文件拷贝至其它的pdf阅读器中(ios设备无需越狱)

    有时候在使用ios自带的ibook阅读pdf文件的时候,会发现ibook有些功能并不是那么方便.最近我就遇到了一例,我想在ibook中放一本比较大的pdf书,页数有几百吧,pdf文件本身每一章节都是有 ...

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

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

最新文章

  1. python中变量的作用域有几种_Python中变量的作用域(variable scope)
  2. BCH预共识机制信息整理
  3. NYOJ 23 取石子
  4. 连载《一个程序猿的生命周期》- 32、两个企业急着上项目,紧急赶赴现场了解情况...
  5. JAVA里16进制和字节数组互转
  6. C语言 数组排序 – 快速法排序 - C语言零基础入门教程
  7. Liunx系统下的 Nginx的安装与启动
  8. 不知道这十项 Linux 常识,别说自己是运维工程师!
  9. Hadoop学习之路(二十七)MapReduce的API使用(四)
  10. 【渝粤题库】陕西师范大学152112 网络信息检索与利用
  11. 【手持式微波频谱分析仪】真正便携且功能强大的仪器 - 欧洲制造
  12. 【漏洞学习——任意文件上传】LAMP兄弟连旗下猿代码存在任意上传文件漏洞
  13. html外链视频,WordPress文章内容中插入外链视频的通用iframe方法
  14. spring mvc 扫描与注解
  15. 量化派周灏:从物理博士到科技公司 CEO,不变的是“格物致理”
  16. 好客租房153-地图找房模块功能分析
  17. Java使用aopse实现word转换pdf
  18. 每次启动电脑,基本都出现这个错误,很长时间的启动过程。
  19. 计算机学算法的意义,浅析算法在计算机编程中的重要作用
  20. 马少平、周枫、王小川、楼天城、唐文斌……清华计算机系与AI的40年

热门文章

  1. 毕业论文选题方法和论文各部分写作技巧
  2. Git之(一)Git是什么
  3. 10-165 查询图书表中2018年出版的图书的数目
  4. Elasticsearch实战 | 必要的时候,还得空间换时间!
  5. 在esp32开发板上实现的web_radio,基于wm8978 codec芯片
  6. javascript判断一个数是否是素数(质数)
  7. STM32—建立工程模板
  8. MySql:基本SQL
  9. 2G 3G和4G物联网卡之间的区别
  10. 原型工具 axure 使用