首页
社区
课程
招聘
[求助]Vivo Mediatek机型LK(ABOOT)文件Android Verify Boot校验的困惑和一点研究
发表于: 2021-6-21 23:36 23915

[求助]Vivo Mediatek机型LK(ABOOT)文件Android Verify Boot校验的困惑和一点研究

2021-6-21 23:36
23915

最近折腾的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文件的签名校验。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 5
支持
分享
最新回复 (14)
雪    币: 477
活跃值: (1412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

怎么关闭的secure boot?还有LK的base是什么?倒是多提供点已知的信息啊

最后于 2021-6-22 11:50 被mb_foyotena编辑 ,原因:
2021-6-22 11:47
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
mb_foyotena 怎么关闭的secure boot?还有LK的base是什么?倒是多提供点已知的信息啊
这个机型在旧版本可以解锁bl,secure boot就关了。LK似乎是是联发科和Vivo魔改的版本,网上找不到相应的BSP和源代码。可能是基于a9eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9K9i4c8@1L8r3g2C8k6i4u0F1k6h3I4Q4x3V1k6D9K9#2!0q4y4W2)9&6y4q4!0n7z5g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2)9^5z5q4)9&6x3g2!0q4y4q4!0n7z5g2)9&6c8W2!0q4y4q4!0n7z5q4)9^5c8q4!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2!0n7c8g2)9^5z5q4!0q4y4#2!0m8x3g2!0m8c8g2!0q4y4g2!0m8c8g2)9&6b7g2!0q4x3#2)9^5x3q4)9^5x3W2!0q4z5g2)9&6b7#2)9^5x3q4!0q4z5q4!0m8y4W2)9^5x3g2!0q4z5q4!0n7c8W2)9&6b7W2!0q4y4q4!0n7z5q4)9^5x3q4!0q4y4W2!0m8c8q4!0m8y4g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4g2)9^5c8q4)9^5c8W2!0q4y4g2)9^5b7g2!0m8z5g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4z5q4!0m8c8W2)9&6c8q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4y4#2!0m8b7W2)9&6z5g2!0q4y4g2)9^5y4W2)9^5y4g2!0q4y4#2!0m8y4#2)9^5x3g2!0q4y4q4!0n7c8W2!0m8x3g2q4c8i4@1f1#2i4K6V1H3i4K6V1%4i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1$3i4K6R3@1i4K6W2r3i4@1f1^5i4@1t1H3i4@1p5J5i4@1g2r3i4@1u0o6i4K6R3I4
2021-6-22 15:50
0
雪    币: 2090
活跃值: (3943)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
iQOO Z1返厂搞个去年最初版本的系统就能root了,这个是因为新一点的系统把这个漏洞干掉了,所以没法直接烧写自己的内核进去。
2021-6-22 18:40
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
lhxdiao iQOO Z1返厂搞个去年最初版本的系统就能root了,这个是因为新一点的系统把这个漏洞干掉了,所以没法直接烧写自己的内核进去。
我们能找到的就只有1.7.6 大佬可以详细讲讲吗 不过个人觉得问题不在这,现在主要是去vbmeta的校验有点棘手
2021-6-23 01:01
0
雪    币: 4752
活跃值: (2923)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
6
提供一个不一定靠谱的方案:

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

刷的时候加这两个参数会修改 vbmeta 里的两个 flag,不知道有没有用。
2021-6-23 22:35
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
LeadroyaL 提供一个不一定靠谱的方案: fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img 刷的时候加这两 ...

没有用,现在存在的是vbmeta文件本身的验证,这个命令的本质是对文件的读写,会导致签名改变。

我们的目的也差不多是这个命令的效果,但是存在对vbmeta的校验导致我们后续的修改都做不来。

最后于 2021-6-24 13:20 被mb_iolubvlg编辑 ,原因:
2021-6-24 13:18
0
雪    币: 158
活跃值: (586)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
私信我,我可以试试
2021-6-29 10:34
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
amazingosp 私信我,我可以试试
抱歉没有转正不能私信 q号:
bash64: MTQ5NzMzNzE3Mg==
@amazingosp @hackbs
麻烦了
2021-7-4 19:53
0
雪    币: 110
活跃值: (156)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你找的资料也不少了,不少路我也走过
2021-7-9 12:08
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
提取lk用起来
2021-7-14 14:49
0
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
lhxdiao iQOO Z1返厂搞个去年最初版本的系统就能root了,这个是因为新一点的系统把这个漏洞干掉了,所以没法直接烧写自己的内核进去。
提取这个版本的lk总在最新系统里
2021-7-14 14:50
0
雪    币: 9745
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
提供一个想法,可能在设备树中没有修改分区挂载时的校验标志位,即使关闭了avb,挂载分区时依然会去校验,但是因为avb关了,因此找不到资源就失败了
2022-2-11 18:12
1
雪    币: 9745
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
还有个问题想请教下,怎么用ida去修改aboot(lk内核)对分区的(比如boot)的验证呢
2022-2-13 14:34
0
雪    币: 0
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
你这lk是mtk版本,aboot是高通的版本。高通的安卓9的系统好像并没校验,可以直接定制system文件
2022-5-6 11:57
0
游客
登录 | 注册 方可回帖
返回