转自:http://www.cnblogs.com/supercheng/archive/2012/12/05/2804166.html

- (BOOL)isJailbroken
{
BOOL jailbroken = NO; NSString *cydiaPath = @"/Applications/Cydia.app"; NSString *aptPath = @"/private/var/lib/apt/"; if ([[NSFileManagerdefaultManager] fileExistsAtPath:cydiaPath]) {
jailbroken = YES;
} if ([[NSFileManagerdefaultManager] fileExistsAtPath:aptPath]) {
jailbroken = YES;
} return jailbroken; }
判断软件是否被破解应该是就判断有没有加那个key吧?

Info.list

  <key>SignerIdentity</key>

  <string>Apple iPhone OS Application Signing</string>

转载

正文开始

Umeng统计的Mobclick.h里面已经包含了越狱检测的代码,可以直接使用

/*方法名: * isJailbroken *介绍: * 类方法,判断设备是否越狱,判断方法根据 apt和Cydia.app的path来判断 *参数说明: * 无 * * *

/#pragma mark utils api //类方法,判断当前设备是否已经越狱

+ (BOOL)isJailbroken; //类方法,判断你的App是否被破解

+ (BOOL)isPirated;

apt和Cydia的方式来进行判断的,没看见源码

然后再介绍两种方法来查看是否已经越狱,知其然知其所以然、、、

1. apt

- (BOOL) hasAPT

{

return [[NSFileManager defaultManager] fileExistsAtPath:@"/private/var/lib/apt/"];

}

2. system

- (BOOL) successCallSystem

{

return (system("ls") == 0) ? YES : NO;

}

3.

staticconstchar* jailbreak_apps[] =

{

"/Applications/Cydia.app",

"/Applications/limera1n.app",

"/Applications/greenpois0n.app",

"/Applications/blackra1n.app",

"/Applications/blacksn0w.app",

"/Applications/redsn0w.app",

"/Applications/Absinthe.app",

NULL,

};

- (BOOL) isJailBroken

{

// Now check for known jailbreak apps. If we encounter one, the device is jailbroken.

for(inti = 0; jailbreak_apps[i] != NULL; ++i)

{

if([[NSFileManagerdefaultManager] fileExistsAtPath:[NSStringstringWithUTF8String:jailbreak_apps[i]]])

{

//NSLog(@"isjailbroken: %s", jailbreak_apps[i]);

returnYES;

}

}

// TODO: Add more checks? This is an arms-race we're bound to lose.

returnNO;

}

@interface UIDevice (Helper)  
- (BOOL)isJailbroken;  
@end

@implementation UIDevice (Helper)  
- (BOOL)isJailbroken {  
  BOOL jailbroken = NO;  
  NSString *cydiaPath = @"/Applications/Cydia.app";  
  NSString *aptPath = @"/private/var/lib/apt/";  
  if ([[NSFileManager defaultManager] fileExistsAtPath:cydiaPath]) {  
    jailbroken = YES;  
  }  
  if ([[NSFileManager defaultManager] fileExistsAtPath:aptPath]) {  
    jailbroken = YES;  
  }  
  return jailbroken;  
}  
@end

IOS判断设备是否已越狱的更多相关文章

  1. iOS 判断设备是否越狱

    我们在开发过程中,需要知道设备是否越狱,在网上查看很多资料,为此封装一些判断的方法. 上代码,不解释: .h文件 #import <Foundation/Foundation.h> @in ...

  2. iOS 判断设备是否越狱了

    #import "PrisonBreakCheck.h" @implementation PrisonBreakCheck /** * 判断iPhone是否越狱了 */ +(BOO ...

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

    根据屏幕尺寸和分辨率,ios现在数起来有6个版本. iOS 设备现有的分辨率如下: iPhone/iPod Touch 普通屏 320像素 x 480像素 iPhone .3G.3GS,iPod To ...

  4. iOS 判断设备型号

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

  5. ios判断设备是iphone还是ipad

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  6. [IOS][已越狱]配合网易云音乐,使用Bridge快速免iTunes导入音乐到“音乐”

    前置:已越狱IOS设备   工具表: Bridge{bigboss源,可以使用cydown以非官方服务器下载安装} 网易云音乐{Appstore} Filza{很多源都有}     网易云试听缓存路径 ...

  7. iOS代码技巧之判断设备及状态

    转自:http://my.oschina.net/joanfen/blog/149076 一.判断设备 01 //设备名称 02 return [UIDevice currentDevice].nam ...

  8. iOS获取设备唯一标识的8种方法

    8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...

  9. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?

    一.UDID (Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和 ...

随机推荐

  1. java compiler level does not match the version of the installed java project facet

    Java compiler level does not match the version of the installed java project facet错误的解决 因工作的关系,Eclip ...

  2. WEB前端开发CSS基础样式全面总结

    Web前端开发css基础样式全面总结 颜色和单位的使用 颜色 用颜色的名字表示颜色,比如:red 用16进制表示演示 比如:#FF0000 用rgb数值表示颜色,rgb(红,绿,蓝),每个值都在0-2 ...

  3. Global.asax文件说明

    Global.asax是我们的底层文件,第一次的IIS请求都会先去执行它里面的文件,所以学会它里面的函数是非常有必要的.而且我们总是忽略这里的知识点,总觉得这是不必须的,其实我们错了,这里才是程序的根 ...

  4. backbone实例01

    backbonejs往简单说,就是一前端MVC框架,适合用于单页面.复杂的前端逻辑. 直接上代码,里面都有相关注释,重点是理解清楚view.collection.model这三者如何关联调用. < ...

  5. pm2.5计算和单位换算

    1.pm2.5和pm10的计算  PM10a=PM10+PM25a PM25a=PM25+BC+OC+SOA1+SOA2+SOA3+SOA4+SOA5+SOA6+ANA+ASO4+ANO3+ACL+A ...

  6. CentOS 6.5、6.7 设置静态 ip 教程

    CentOS 6.5.6.7 设置静态 ip 教程,可以ping通外网:www.baidu.com ①. 网络适配器(VMware Network Adapter) 选择NAT模式 ②. 设置静态 i ...

  7. Oracle学习笔记(1)----忘记用户名的密码该如何找回

    (1)在连接数据库之前需要打开如下服务: (2)如果忘记用户的密码 I:打开cmd窗口 II:键入命令:connect / as sysdba; III:alter user 用户名 identifi ...

  8. asp之缓存 cachestate

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  9. JSP实现 乘法口诀输出

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. Flags-Ural1225简单递推

    Time limit: 1.0 second Memory limit: 64 MB On the Day of the Flag of Russia a shop-owner decided to ...