zoukankan      html  css  js  c++  java
  • iPhone是否越狱的检测方法

    今天项目中要用到检查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
    {
    return (system("ls") == 0) ? 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.
            for (int i = 0; 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

    仅供参考、、、

     

  • 相关阅读:
    LEFT JOIN个别问题
    phporjquery生成二维码
    杂项(乌班图、flex的使用实例)
    mysql创建用户并授权,解决1045
    jar运行指定jdk
    Flutter升级版本后,运行项目报错
    spring boot执行jar包指定active profile
    centos7 安装clamav 进行病毒扫描查杀
    CentOS7上安装MySQL 5.7.32(超详细)
    Centos7.5 安装elasticsearch 7.13.2 遇到的问题记录
  • 原文地址:https://www.cnblogs.com/easonoutlook/p/2665169.html
Copyright © 2011-2022 走看看