在進(jìn)行模擬器測(cè)試時(shí)逝段,由于電腦內(nèi)存在第二個(gè)以及第三個(gè)常見(jiàn)越獄文件,一直判斷已越獄议街。
// 常見(jiàn)越獄文件
const char *examineBreak_Tool_pathes[] = {
"/Applications/Cydia.app",
"/Library/MobileSubstrate/MobileSubstrate.dylib",
"/bin/bash",
"/usr/sbin/sshd",
"/etc/apt"
};
char *printEnv(void){
char *env = getenv("DYLD_INSERT_LIBRARIES");
return env;
}
判斷是否越獄的常用幾中判斷方式
+ (BOOL)isBreakOutPrison{
// 方式1.判斷是否存在越獄文件
for (int i = 0; i < 5; i++) {
if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:examineBreak_Tool_pathes[0]]]){
return YES;
}
}
// 方式2.判斷是否存在cydia應(yīng)用
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]){
return YES;
}
// 方式3.讀取系統(tǒng)所有的應(yīng)用名稱
if ([[NSFileManager defaultManager] fileExistsAtPath:@"/User/Applications/"]){
return YES;
}
// 方式4.讀取環(huán)境變量
if(printEnv()){
return YES;
}
return NO;
}