iOS设备越狱检测

方法一 判断沙盒是否被破坏

- (int )isJailbroken {

    int xx=fork(); //这个函数从这里起,程序被分为两个进程,父和子,子进程,返回0,父进程返回子进程ID,如果执行fork成功,说明沙盒被破坏,说明越狱了
    if(!xx)//子进程,关闭他
    {
         exit(0);
    }
    if(xx>=0) //父进程,说明越狱
    {
    return 1;
    }
    return 0 ;//,没有越狱,返回-1,
}

方法二 检测cydia.app是否存在

struct stat s;
int is_jailbroken=stat("/Applications/Cydia.app", &s);
NSLog(@"-----is_jailbroken=%d----",is_jailbroken);//返回为0说明有Cydia.app,否则-1
或者
struct stat s;
int is_jailbroken=stat("/Library/MobileSubstrate/DynamicLibraries/MobileSubstrate.dylib", &s);
NSLog(@"-----is_jailbroken=%d----",is_jailbroken);

方法3.判断文件大小

struct stat s
stat(“/etc/fstab”,&s);
return s.st_size

你可能感兴趣的:(iOS设备越狱检测)