底层开发之越狱开发第二篇

今天项目中要用到检查iPhone是否越狱的方法。

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
 {
 ) ? YES : NO;
 }

3.示例代码

 static const char* 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.
         ; jailbreak_apps[i] != NULL; ++i)
         {
             if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:jailbreak_apps[i]]])
             {
                 //NSLog(@"isjailbroken: %s", jailbreak_apps[i]);
                 return YES;
             }
         }

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

         return NO;
     }

 @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开发——高级技术精选&底层开发之越狱开发第一篇

    底层开发之越狱开发第一篇 做越狱开发也有一些时间了,有很多东西想总结一下,希望给他人一些借鉴,也是自己对过去开发经历的一些总结.个人不推荐使用盗版,这里主要以技术介绍为主. 这个系列里面主要介绍怎样进 ...

  2. iOS开发——高级技术精选OC篇&Runtime之字典转模型实战

    Runtime之字典转模型实战 如果您还不知道什么是runtime,那么请先看看这几篇文章: http://www.cnblogs.com/iCocos/p/4734687.html http://w ...

  3. iOS开发——高级技术OC篇&运行时(Runtime)机制

    运行时(Runtime)机制 本文将会以笔者个人的小小研究为例总结一下关于iOS开发中运行时的使用和常用方法的介绍,关于跟多运行时相关技术请查看笔者之前写的运行时高级用法及相关语法或者查看响应官方文档 ...

  4. iOS开发——高级技术&通讯录服务

    通讯录服务 AddressBook iOS中带有一 个Contacts应用程序来管理联系人,但是有些时候我们希望自己的应用能够访问或者修改这些信息,这个时候就要用到 AddressBook.frame ...

  5. iOS开发——高级技术&蓝牙服务

    蓝牙服务 蓝牙 随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,如今的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大降低.从iOS的 ...

  6. iOS开发——高级技术&PassBook服务

    PassBook服务 Passbook是苹果推出的一个管理登机牌.会员卡.电影票.优惠券等信息的 工具.Passbook就像一个卡包,用于存放你的购物卡.积分卡.电影票.礼品卡等,而这些票据就是一个“ ...

  7. iOS开发——高级技术&广告服务

    广告服务 上 面也提到做iOS开发另一收益来源就是广告,在iOS上有很多广告服务可以集成,使用比较多的就是苹果的iAd.谷歌的Admob,下面简单演示一下如何 使用iAd来集成广告.使用iAd集成广告 ...

  8. iOS开发——高级技术&社交服务

    社交服务 Social 现 在很多应用都内置“社交分享”功能,可以将看到的新闻.博客.广告等内容分享到微博.微信.QQ.空间等,其实从iOS6.0开始苹果官方就内置了 Social.framework ...

  9. iOS开发——高级技术&内购服务

    内购服务 大家都知道做iOS开发本身的收入有三种来源:出售应用.内购和广告.国内用户通常很少直接 购买应用,因此对于开发者而言(特别是个人开发者),内购和广告收入就成了主要的收入来源.内购营销模式,通 ...

随机推荐

  1. Unity3D研究院之使用Animation编辑器编辑动画(五十四)

     Unity提供了Animation编辑器,它可以为我们编辑物理动画.举个例子比如场景中有一个来回摇动的秋千,这个秋千在项目中完全只起到衬托作用,它不会与别的游戏对象有任何交互.如果这个秋千也用代码来 ...

  2. 导航VC的左右item代码

    代码控制左右item: UIButton *btnCancel = [UIButton buttonWithType:UIButtonTypeCustom];     btnCancel.frame= ...

  3. 撰写合格的REST API

    原文 : http://mp.weixin.qq.com/s?__biz=MzA3NDM0ODQwMw==&mid=208060670&idx=1&sn=ce67b889698 ...

  4. LinkedHashMap和HashMap的比较使用

    由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下. import java.util.HashMap; import java.util.Iterator; import ...

  5. TypeScript:类(Classes)

    返回TypeScript手册总目录 传统的Javascript关注的是函数(function)和基于原型(prototype-based)的继承作为构建可重复使用组件的基本方式,但是与更舒服地使用面向 ...

  6. 理解assign,copy,retain变strong

    举个例子: NSString *houseOfMM = [[NSString alloc] initWithString:'装梵几的三室两厅']; 上面一段代码会执行以下两个动作:  1 在堆上分配一 ...

  7. [ACM_搜索] Triangles(POJ1471,简单搜索,注意细节)

    Description It is always very nice to have little brothers or sisters. You can tease them, lock them ...

  8. Msbuild利用cpu多核加速

    msbuild /t:Rebuild /p:Configuration=Release /m /m 自动检测cpu数量启动对应数量进程

  9. 投票系统开发总结struts2,jfreechart,cookie应用,以及前端技术

    struts2配置web.xml+struts.xml: <?xml version="1.0" encoding="UTF-8"?> <we ...

  10. 【Java】Lucene检索引擎详解

    基于Java的全文索引/检索引擎——Lucene Lucene不是一个完整的全文索引应用,而是是一个用Java写的全文索引引擎工具包,它可以方便的嵌入到各种应用中实现针对应用的全文索引/检索功能. L ...