最开始是想利用 21 年 3 月的联发科漏洞,可以获取到临时 ROOT ,但要求系统版本在 21 年 3 月以前。尝试了一下降级,发现 Rec 有验证,没办法刷等级更低的包,后来手机半夜自动更新了一次系统,把 Rec 模式里面选择本地刷机包的功能给砍了,这条路就彻底没了。
官方有发布降级工具,但是我的型号用不了。
然后再底层一点,就是 fastboot 模式,这个模式我从手机买来的那一天起,就没成功进入过,adb 命令进入 fastboot 以后会显示一串英文:the serial is not match,fastboot verfity failed.
提前输入 fastboot 命令,会提示 Remote not support HAL 还是什么的,反正就是用不了。
最后只能把希望寄托在 bootrom 模式上,网上说的是天玑 1200 以下的芯片都可以用 mtkclient 解锁,我的天玑 800 理论上是可以的,也有跟我相同 cpu ,但是别的型号的手机成功解锁,但是我的这台手机不行。
驱动是完美安装的,版本是最新的,但 mtkclient 还会提示握手失败。
我去看了一下 mtkclient 的源码,握手阶段会通过串口向手机发送四个字节,得到回复以后就可以执行各种命令,通过漏洞覆盖掉特定内存区域的值。
我手动用串口工具模拟了这个握手的过程,发现根本没卵用,手机依旧不停发送 Ready ,然后关机。
我是做安卓开发的,嵌入式这一块儿确实不太懂,到底怎么才能握手通过,可能只有 OPPO 的工程师知道了.....
然后我还尝试了直接用 SP Flash Tool 线刷,好不容易把官方给的 ofp 格式的包转成了线刷包,验证文件跟 scatter 也都正常识别了,最后还是报了一样的错,握手失败......要不就是 DA 发送失败。
也试过一些 bypass 工具,无一例外都是报错。
然后就想着找一下 MTK 官方的文档,官网找不到,搜索引擎搜不到,ChatGPT 也不知道,基本没有资料......
最后的尝试是去逆向官方的降级工具,因为只有这个工具处理过的刷机包,才能在手机端通过设置卡刷,但是折腾了半天也没用,官方工具就只是生成了一个签名,然后把卡刷包跟签名放在同一个 zip 文件里,但是哪怕我用相同的算法给网上找的官方 ROM 生成签名并打包,手机端依旧显示认证不通过,反正就是不给降级......
到这里我真的已经没辙了,我的想法是硬件上的漏洞应该是没办法在软件层面修复的,而且还是 bootrom 这种只读存储器上的漏洞,希望有嵌入式大佬能赐教一二......