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

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

2021-6-21 23:36
11104

序言

最近折腾的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的研究。

Root尝试失败

开始研究之初我们便遇到了困难。该机型BL解锁后并不同于往常的机器,当刷写打补丁的boot后,无法正常引导。经测试该机型为secure boot:no状态时(如下图),仍会对vbmeta,boot文件进行校验,遂Root尝试失败。

对VBMeta的校验

之后,我们的测试发现关闭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文件的签名校验。

相关文件与求助

我们也在这上面工作了好久,困扰在AVB对VBMETA的校验上,

 

因为并不熟识相应的代码实现,遂来请求看雪大神指点,感谢!

 

LK与VBMETA文件:
https://wwr.lanzoui.com/b02c6es2f
密码:18kh


2021 KCTF 秋季赛 防守篇-征题倒计时(11月14日截止)!

收藏
点赞0
打赏
分享
最新回复 (11)
雪    币: 611
活跃值: 活跃值 (575)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_foyotena 活跃值 2021-6-22 11:47
2
0

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

最后于 2021-6-22 11:50 被mb_foyotena编辑 ,原因:
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_iolubvlg 活跃值 2021-6-22 15:50
3
0
mb_foyotena 怎么关闭的secure boot?还有LK的base是什么?倒是多提供点已知的信息啊
这个机型在旧版本可以解锁bl,secure boot就关了。LK似乎是是联发科和Vivo魔改的版本,网上找不到相应的BSP和源代码。可能是基于https://github.com/littlekernel/lk改的,我也不是很确定。需要进一步的协助的话,可以站内私信QQ吗,感谢!
雪    币: 1570
活跃值: 活跃值 (2717)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lhxdiao 活跃值 2021-6-22 18:40
4
0
iQOO Z1返厂搞个去年最初版本的系统就能root了,这个是因为新一点的系统把这个漏洞干掉了,所以没法直接烧写自己的内核进去。
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_iolubvlg 活跃值 2021-6-23 01:01
5
0
lhxdiao iQOO Z1返厂搞个去年最初版本的系统就能root了,这个是因为新一点的系统把这个漏洞干掉了,所以没法直接烧写自己的内核进去。
我们能找到的就只有1.7.6 大佬可以详细讲讲吗 不过个人觉得问题不在这,现在主要是去vbmeta的校验有点棘手
雪    币: 4125
活跃值: 活跃值 (1492)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
LeadroyaL 活跃值 1 2021-6-23 22:35
6
0
提供一个不一定靠谱的方案:

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

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

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

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

最后于 2021-6-24 13:20 被mb_iolubvlg编辑 ,原因:
雪    币: 211
活跃值: 活跃值 (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
amazingosp 活跃值 2021-6-29 10:34
8
0
私信我,我可以试试
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_iolubvlg 活跃值 2021-7-4 19:53
9
0
amazingosp 私信我,我可以试试
抱歉没有转正不能私信 q号:
bash64: MTQ5NzMzNzE3Mg==
@amazingosp @hackbs
麻烦了
雪    币: 110
活跃值: 活跃值 (139)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
异灵摆渡 活跃值 2021-7-9 12:08
10
0
你找的资料也不少了,不少路我也走过
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_offcgjkk 活跃值 2021-7-14 14:49
11
0
提取lk用起来
雪    币: 5
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_offcgjkk 活跃值 2021-7-14 14:50
12
0
lhxdiao iQOO Z1返厂搞个去年最初版本的系统就能root了,这个是因为新一点的系统把这个漏洞干掉了,所以没法直接烧写自己的内核进去。
提取这个版本的lk总在最新系统里
游客
登录 | 注册 方可回帖
返回