iOS检测当前设备是否越狱系统
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检测当前设备是否越狱系统相关推荐
- ios 检测是否联网_iOS 设备打开触动精灵提示“您的网络不给力哦,请检查您的设备是否联网”怎么解决?...
如果您打开 Cydia 显示"似乎已断开与互联网的连接"请查看:Cydia 提示无网络解决办法,安装乐网后 Cydia 添加 https://apt.abcydia.com 安装 ...
- iOS有反检测能力的越狱工具shadow的分析和检测
Shadow包地址:https://github.com/jjolano/shadow/releases/download/v2.0.x%40old/me.jjolano.shadow_2.0.20_ ...
- iOS 8.4.1完美越狱工具发布:老设备福音
iOS 11正式版都发布了,你还需要iOS 8.4.1完美越狱吗?不得不承认的是,肯定还会有极少一批用户有这个需求,所以黑客们就满足了他们这个需求. 今天,黑客@tihmstar发布了iOS 8.4. ...
- 【iOS开发】判断iOS设备是否越狱
原文链接:点击打开链接 苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我 ...
- iOS 判断设备是否越狱
想做一个付费下载应用,又担心越狱用户下载,白费心思了,故而想起在应用内判断设备是否越狱,网上找到这片关于越狱判断的文章,觉得写得特别好,所以转了下来,添加一些自己的心得. -------------- ...
- iOS设备是否越狱的判断方法
苹果是非常看重产品的安全性的,所以给用户设计了一套复杂的安全机制.这让喜爱自由,崇尚一切开放的程序员们极度不爽,于是越狱就成了苹果和黑客们反复斗法的场所.总体来说,越狱可以让我们随意安装.共享应用,但 ...
- U盘在我的电脑里不显示,只在系统托盘区里可以检测到设备
U盘在"我的电脑"里识别不出,但在右下角"系统托盘区"可以检测到设备 比如我的U盘叫"雄雄雄",DataTraveler 2.0: 解决方法 ...
- 如何为 iOS 10~12.1.2 的设备一键越狱
爱思助手Mac版最高已经支持 iOS 12.1.2 一键越狱,对于热衷为设备安装多种插件的用户来说是个重大利好消息,那么如何为 iOS 10~12.1.2 的设备一键越狱呢,我们一起来看看如何操作吧. ...
- 借助91助手,将ibook中的pdf文件拷贝至其它的pdf阅读器中(ios设备无需越狱)
有时候在使用ios自带的ibook阅读pdf文件的时候,会发现ibook有些功能并不是那么方便.最近我就遇到了一例,我想在ibook中放一本比较大的pdf书,页数有几百吧,pdf文件本身每一章节都是有 ...
- iOS 判断设备是否越狱(两种方式结合判断)
越狱测试仅限真机 + (BOOL)JailBreak{BOOL status1 = NO;BOOL status2 = NO;//根据是否能打开cydia判断status1 = [[UIApplica ...
最新文章
- python中变量的作用域有几种_Python中变量的作用域(variable scope)
- BCH预共识机制信息整理
- NYOJ 23 取石子
- 连载《一个程序猿的生命周期》- 32、两个企业急着上项目,紧急赶赴现场了解情况...
- JAVA里16进制和字节数组互转
- C语言 数组排序 – 快速法排序 - C语言零基础入门教程
- Liunx系统下的 Nginx的安装与启动
- 不知道这十项 Linux 常识,别说自己是运维工程师!
- Hadoop学习之路(二十七)MapReduce的API使用(四)
- 【渝粤题库】陕西师范大学152112 网络信息检索与利用
- 【手持式微波频谱分析仪】真正便携且功能强大的仪器 - 欧洲制造
- 【漏洞学习——任意文件上传】LAMP兄弟连旗下猿代码存在任意上传文件漏洞
- html外链视频,WordPress文章内容中插入外链视频的通用iframe方法
- spring mvc 扫描与注解
- 量化派周灏:从物理博士到科技公司 CEO,不变的是“格物致理”
- 好客租房153-地图找房模块功能分析
- Java使用aopse实现word转换pdf
- 每次启动电脑,基本都出现这个错误,很长时间的启动过程。
- 计算机学算法的意义,浅析算法在计算机编程中的重要作用
- 马少平、周枫、王小川、楼天城、唐文斌……清华计算机系与AI的40年