建设银行App提示不支持越狱系统上运行的解决方法
方式一: 开发cydia插件
在建行app里面检测越狱的类有两个,RiskStubAPI和BCERoot,RiskStubAPI实际只是调用BCERoot的方法.下面贴出这两个类的方法名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
@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