建设银行APP提示不支持越狱系统上运行的解决方法

64 IOS

方式一: 开发cydia插件

在建行app里面检测越狱的类有两个,RiskStubAPI和BCERoot,RiskStubAPI实际只是调用BCERoot的方法.下面贴出这两个类的方法名

@interface BCERoot : NSObject
{
    int _errorCode;
    int _curIndex;
}
 
+ (id)sharedInstance;
- (id)dangerousLinkFiles;
- (id)dangerousEnvs;
- (id)isStatFromSystem;
- (id)jailbreakTools;
- (id)rootInfo;
 
@end
 
@interface RiskStubAPI : NSObject
{
}
 
+ (id)getEmulatorInfo;
+ (id)getJailbreakInfo;
+ (BOOL)isJailbreak;
 
@end

可以Hook掉 – [BCERoot jailbreakTools],返回值为nil。

方式二: 越狱失效后,建行app还是提示不支持越狱设备

使用IDA或者HopperDisassembler反编译app,从- [BCERoot jailbreakTools]的方法可以看到主要是通过文件路径来判断是否有越狱的。越狱失效后,虽然实际系统已经没有越狱,但是越狱产生的文件还是存在的,所以还是能检测得到。

所以在恢复越狱系统之前,先ssh进入系统,删除掉以下文件,再恢复就不会提示了。以下是删除脚本

rm -rf /var/lib/cydia
rm -rf /var/cache/apt
rm -rf /var/lib/apt
rm -rf /Library/MobileSubstrate
rm -f /bin/bash
rm -f /bin/sh
rm -f /usr/sbin/sshd
rm -f /usr/libexec/ssh-keysign
rm -rf /etc/apt
rm -f /etc/ssh/sshd_config
rm -rf /Applications/Cydia.app