-
-
[求助]Vivo Mediatek机型LK(ABOOT)文件Android Verify Boot校验的困惑和一点研究
-
发表于:
2021-6-21 23:36
22355
-
[求助]Vivo Mediatek机型LK(ABOOT)文件Android Verify Boot校验的困惑和一点研究
最近折腾的Vivo MTK机型IQOO Z1,研究Root时在AVB部分遇到了一些困难,特整理了一些资料来求助看雪大神,详述如下:
该机型的Bootloader上锁方式极为奇葩,且听细细道来。
在旧版本上,酷安的朋友发现该机型采用了Google提供的简单OEM锁,遂尝试解锁并获取Root。
BL解锁是成功的,但令人困惑的是此LK(ABOOT)并没有提供相应的烧写命令,EDL刷写也存在校验。所以无法刷写打入补丁后的boot.img文件进行测试,前期研究遂终止。
令人惊喜的是,过后不久在XDA论坛爆出了Mediatek机型通用的EDL刷写验证绕过的漏洞,遂可以使用SP Flash Tool进行刷写尝试。我和朋友着手开始了对Vivo IQOO Z1机型Magisk打补丁进行Root的研究。
开始研究之初我们便遇到了困难。该机型BL解锁后并不同于往常的机器,当刷写打补丁的boot后,无法正常引导。经测试该机型为secure boot:no状态时(如下图),仍会对vbmeta,boot文件进行校验,遂Root尝试失败。
之后,我们的测试发现关闭secure boot仅能跳过logo与lk分区的校验。
经过一些控制变量的检查,我们确认了校验vbmeta的相关实现在LK分区中,遂转变思路,转向对LK的反编译和修改进行下一步工作。无奈个人并不是很懂相关知识,在期间也请教了一位会IDA的朋友,奈何找不到相应BSP与源代码,进度推进无果。
使用IDA的朋友判断Vivo将lk进行了魔改。他的工作在于,将auth和verified boot启用返回0(原厂镜像 lk直接忽略了从平台读出来的secureboot状态,和bl锁状态),修改后的LK能正常引导开机(使用官方签名vbmeta的情况下)。遂进一步尝试对vbmeta的修改,对原版vbmeta文件hex写入跳过验证的flag,写入后引导失败,结论是仍存在对vbmeta文件的签名校验。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课