由于现在许多苹果手机都进行了越狱,而我们开发有时候需要判断手机是不是进行了越狱。
判断用户是不是进行了越狱
+ (BOOL)isPrisonBreak {
BOOLb1 =NO, b2 =NO, b3 =NO, b4 =NO, b5 =NO;
// 常见越狱文件
NSArray*pathArray =@[
@"/Applications/Cydia.app",
@"/Library/MobileSubstrate/MobileSubstrate.dylib",
@"/bin/bash",
@"/usr/sbin/sshd",
@"/etc/apt"
];
for(inti =0; i < pathArray.count; i++) {
NSString*path = pathArray[i];
if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
b1 =YES;
}
}
// 读取系统所有的应用名称
if ([[NSFileManager defaultManager] fileExistsAtPath:@"/User/Applications/"]){
b2 =YES;
}
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]) {
b3 =YES;
}
structstatstat_info;
//使用stat系列函数检测Cydia等工具
if(0==stat("/Applications/Cydia.app", &stat_info)) {
b4 =YES;
}
// 读取环境变量
char*checkInsertLib =getenv("DYLD_INSERT_LIBRARIES");
if(checkInsertLib) {
b5 =YES;
}
return(b1 && b2 && b3 && b4 && b5);
}
网友评论