LinearTeam
LinearTeam

科大讯飞学生机如何解锁 BootLoader 和 AVB

前言

我承认我稍有些标题党……因为我主要的目的是绕过所有的分区校验,而不是去解锁,但是这么写小白大概率是看不懂的,也引不来人,所以说不要怪我喽。

上一个解锁方案 AVB 关闭的不彻底,今天给平板焊了个 TTL,但是日志等级太低,改 dtb 日志详细度是上去了,但是 AVB 和我杠上了,突然就想到了这个事,于是就和 AVB 激情奋战了一下午(?),产出了这篇文章。

为什么要解锁 BootLoader

这个是写给小白的。

当你厌倦了讯飞像史一样的 iStudyUI(没错,这个神似山寨机系统的 UI 并不是半成品,而是拿正式启用过的 C 端 UI 改的,人家有名字,哈?你不知道啊,可以去看看市场版的 X1Pro 和 Z1 早期版本呢)的时候,你就会开始寻找美味的 GSI。但是不好意思,我们有严格的安卓分区校验,也就是 AVB(Android Verified Boot),付费内容需要解锁哦~(bushi)

解锁BootLoader VS 绕过分区校验

这个是写给有经验的人的。

解锁 BootLoader 后,设备状态为 UNLOCKU-Boot 将不再调用 TrustOS 校验 system(这个比较特殊)vendor productTrustOS 将不再校验 bootrecovery,其它安卓分区继续将会校验。

还有点好玩的,U-Boot 不管你有没有解锁,都会在验证那三个分区前先调用 TrustOS 校验dtbdtbovbmeta。而且 U-Boot 其实自己有一套 AVB 实现,随着 BootLoader 解锁而停用。为什么说 system 比较特殊呢?因为 U-Boot 不仅调用了 TrustOS 来校验它,还使用了自己的 AVB 实现去校验它,这个特殊待遇是独一份。

这个 U-Boot 自己的 AVB 实现其实也会被用于校验全部安卓分区,但是貌似和基带安全性有关系。我们学生机没有基带,所以我也就是看了一眼,没有深究。

但是这对于我们这些爱鼓捣的人来说显然是不够的,如果你绕过了分区校验,就能解除掉最后的枷锁,让这个平板所有分区都对你开绿灯。

欸?你也发现上面的文字同时出现安卓分区所有分区了?因为我们这篇文章要绕过的分区校验可不止 AVB 哦!

准备 IDA Pro

熟悉的人请跳过。

安装 IDA Pro

绕过分区校验当然要逆向啦,本次使用的工具为:IDA Pro!

我提供了 IDA Pro 9.0 的安装包(IDA Professional 9.0 (密码:QQ565887).exe),在末尾的附件下载章节获取。

点击前进

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783600087678.png

勾选接受然后点击前进

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783600097628.png

选择一个你喜欢的目录,并且记下来,后面要用,然后点击前进

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783600104598.png

Python 大家应该都会装吧……但愿,确认后点击前进

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783600111269.png

密码在文件名上(密码为QQ565887),在密码框输入完成后点击前进

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783600138372.png

点击前进

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783600147652.png

安装完毕即可。

安装 Keypatch 插件

Keypatch 让我们在修补二进制时获得更好的体验。

打开命令行,执行:

pip install keystone-engine six

keypatch.py(在末尾的附件下载章节获取)复制到你安装目录的 plugins 文件夹,例如:C:\Program Files\IDA Professional 9.1\plugins

有条件就重启一下电脑,没条件的话我就认为你安装好了。

安装展讯驱动

熟悉的人请跳过。

解压 [紫光展锐驱动]SPD_Driver_R4.20.4201.zip(在末尾的附件下载章节获取),打开 Install 文件夹,运行 DriverSetup.exe

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601149938-1024x573.png

点击下一页

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601103108.png

等待安装完成:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601107738.png

安装完成后点击完成

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601111478.png

提取分区

进入深刷模式

熟悉的人请跳过。

解压spd_dump_SPRD_Release.zip 到一个文件夹(在末尾的附件下载章节获取),运行spd_dump.exe

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601524988-1024x573.png
https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601643750-1024x577.png

在接下来的 30 秒内,你需要将学生机关机,等待 8 秒后,按住音量-,将数据线插入,电脑提示有设备接入,spd_dump 提示 CMD_CONNECT bootrom 视为成功进入 BootROM 模式:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601653997-1024x577.png
https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783601765306.png

提取分区

这里我们提取 splloadertrustosubootmiscdata分区。

修改 splloader 用于绕过底层分区校验(uboottrustossml),修改 trustos 用于绕过安卓分区校验(绕过 AVB),修改 uboot 用于解锁 BootLoader

备份原 ubootmiscdata 用于清除 BootLoader 解锁状态,也就是回锁 BootLoader(解锁信息存储于 miscdata)。

自己一定要留好原件!!!单独复制一份到自己放心的地方。

熟悉的人请跳过。

依次输入:

fdl 你下载的fdl1.bin的文件路径 0x5500
fdl 你下载的fdl2.bin的文件路径 0x9efffe00
exec
文件路径示例
E:\Team\刷机\紫光\FDL\fdl(chip0-1)\fdl1.bin
E:\Team\刷机\紫光\FDL\fdl(chip0-1)\fdl2.bin

打印分区表视为成功进入 FDL2 模式:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783602485113-1024x577.png

依次输入(r 是 read 的意思,便于理解喵):

r splloader
r trustos
r uboot
r miscdata
https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783602845845-1024x577.png

四个进度条全部跑完后,返回文件夹,发现多出了splloader.bintrustos.binuboot.binmiscdata.bin

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783602640669-1024x550.png

自己一定要留好原件!!!单独复制一份到自己放心的地方。

修改 Splloader

修改 splloader 用于绕过底层分区校验(uboottrustossml

熟悉的人请跳过。

splloader.bin 拖入桌面上的 IDA Professional 9.2 快捷方式,弹出 Load a new file 窗口后,在大红框中向上滚动,找到 ARM Little-endian

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603193779.png

双击 ARM Little-endian,然后点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603319539.png

弹出 Disassembly memory organization 窗口后,将 ROM start addressLoading address 改为 0x5500,然后点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603457790.png

弹出这个窗口点击 Yes

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603604220.png

弹出这个窗口点 OK:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603673107.png

开始加载,当电脑想起提示音,下方的 Output 区域提示 The initial autoanalysis has been finished. 视为加载完成

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603783105-1024x555.png

按下 Shift+F12,加载完成弹出字符串窗口后,按下 Ctrl+F ,输入 uboot,搜索完成之后双击红框圈的那一项的黄色区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783603976640-1024x555.png

跳转到文本模式的汇编代码窗口后,双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604044897-1024x555.png

跳转到图形模式的汇编代码窗口后,按下 F5,弹出警告点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604168435-1024x555.png

弹出信息点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/af7a2d688c7cc166719d6be69a3bfc3e.png

转成伪代码后,单击红框圈出的区域,然后按下键盘上的 H 键:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604433696-1024x555.png

转成 16 进制后复制(不要后面的LL,留好了):

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604546332-1024x555.png

复制后双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604621143-1024x555.png

双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604701455-1024x555.png

单击红框圈出的区域,按下 Tab 键:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604746299-1024x555.png

跳转到图形模式的汇编代码窗口后,单击红框圈出的那一行,按下 Ctrl+Alt+K

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783604835347-1024x555.png

Assembly 原有内容替换为 MOV W0, #0,让它强制返回 0,即验证成功:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605010021.png

按下回车,Patch 下一行,这里把 Assembly 原有内容替换为 RET

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605126361.png

再次按下回车,这次不替换,点击下面的 Cancel

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605298665.png

这样就是修改成功了(Keypatch modified this from: 证明你这里被 Keypatch 修补过,后面紧跟的是原来的指令):

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605340873-1024x555.png

最后保存修改到新文件,点击左上角的的 Edit

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605504013-1024x555.png

然后点击 Patch program,点击 Apply patches to input file…,弹出 Apply patches to input file 窗口,勾选上 Create backup

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605624779.png

最后点击 OK,修改输入到了 splloader.binsplloader.bin.bak 是原文件。

为了方便区分,我建议你把修改过的 splloader.bin 重命名为 splloader_disverify.bin

关闭 IDA Pro,弹出 Save database 窗口,如果你想保留你的工程文件,方便下次看改了哪里,那就点击 OK,如果你不想留着,那就勾选 DONT SAVE the database,点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783605870098-1024x555.png

至此,splloader 修改完毕。

修改 TrustOS

修改 trustos 用于绕过安卓分区校验(绕过 AVB

trustos.bin 拖入桌面上的 IDA Professional 9.2 快捷方式,弹出 Load a new file 窗口后,滚动找到 ARM Little-endian,双击 Little-endian 后点击 OK

弹出 Disassembly memory organization 窗口后,将 ROM start addressLoading address 改为我们刚刚复制到 16 进制数字,然后点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783606362917.png

SMC case 0x20 部分

弹出的窗口和刚刚一样,确认后按下 Shift+F12,加载完成弹出字符串窗口后,按下 Ctrl+F ,输入 enter vboot verify,搜索完成之后双击红框圈出的那一项的黄色区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783606484208-1024x555.png

跳转到文本模式的汇编代码窗口后,双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783606514691-1024x555.png

跳转到图形模式的汇编代码窗口后,往上翻,单击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783607202903-1024x555.png

按下 Ctrl+X,弹出 Jump to xref 窗口,这里有一个唯一的调用,双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783607288249.png

单击红框圈出的那一行,按下 Ctrl+Alt+K

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783607355645-1024x555.png

Assembly 原有内容替换为 MOV X0, #0,让它强制返回 0,不再调用:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783607533589.png

点击 Patch,弹出下一行的 Patch 窗口,这次不替换,点击下面的 Cancel

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783607638638.png

这样就是修改成功了:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608631278-1024x555.png

KBC AVB 部分

再次按下 Shift+F12,加载完成弹出字符串窗口后,按下 Ctrl+F ,输入 [kbc]avb_slot_verify result,搜索完成之后双击红框圈出的那一项的黄色区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608018217-1024x555.png

跳转到文本模式的汇编代码窗口后,双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608128898-1024x555.png

跳转到图形模式的汇编代码窗口后,往上翻,单击红框圈出的那一行,按下 Ctrl+Alt+K

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608172512-1024x555.png

Assembly 原有内容替换为 MOV W0, #0,让它强制返回 0:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608285148.png

按下回车,Patch 下一行,这里把 Assembly 原有内容替换为 RET

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608413369.png

再次按下回车,这次不替换,点击下面的 Cancel

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783608506746.png

这样就是修改成功了:

https://www.linearteam.top/wp-content/uploads/2026/07/image-25-1024x555.png

最后保存修改到新文件。为了方便区分,我建议你把修改过的 trustos.bin 重命名为 trustos_bypavb.bin

关闭 IDA Pro。

至此,trustos 修改完毕。

修改 U-Boot

修改 uboot 用于解锁 BootLoader

熟悉的人请跳过。

trustos.bin 拖入桌面上的 IDA Professional 9.2 快捷方式,弹出 Load a new file 窗口后,滚动找到 ARM Little-endian,双击 Little-endian 后点击 OK

弹出 Disassembly memory organization 窗口后,将 ROM start addressLoading address 改为 0x9efffe00,然后点击 OK

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609102463.png

弹出的窗口和刚刚一样,确认后按下 Shift+F12,加载完成弹出字符串窗口后,按下 Ctrl+F ,输入 VerifiedBoot-UNLOCK,搜索完成之后双击红框圈出的那一项的黄色区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609224285-1024x555.png

跳转到文本模式的汇编代码窗口后,双击红框圈出的区域:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609252798-1024x555.png

然后就会跳转到图形模式的汇编代码窗口,按下空格,往下翻,单击黄框圈出那一行,按下 Ctrl+Alt+K

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609712723-1024x555.png

Assembly 原有内容中的 CBZ W0, 替换为 B,让它永远都走成功分支:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609898025.png

点击 Patch,弹出下一行的 Patch 窗口,这次不替换,点击下面的 Cancel

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609940558.png

这样就是修改成功了:

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783609951831-1024x555.png

最后保存修改到新文件。为了方便区分,我建议你把修改过的 uboot.bin 重命名为 uboot_unlock.bin

关闭 IDA Pro。

至此,uboot 修改完毕。

刷入修改过的分区镜像

https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783610219879-1024x550.png

这是我文件夹目前的状态,splloader_disverify.bintrustos_bypavb.binuboot_unlock.bin 是我修改过的。

我没猜错的话,你的学习机应该还在 FDL2 模式吧?如果你自己重启了的话就要重新按照之前章节说的进入 FDL2 模式哦。

依次输入:

w splloader 你修改的splloader分区镜像路径
w trustos 你修改的trustos分区镜像路径
w uboot 你修改的uboot分区镜像路径
镜像路径示例
C:\Users\worryzu\Desktop\spd_dump_SPRD_Release\backup\splloader_disverify.bin
C:\Users\worryzu\Desktop\spd_dump_SPRD_Release\backup\trustos_bypavb.bin
C:\Users\worryzu\Desktop\spd_dump_SPRD_Release\backup\uboot_unlock.bin
https://www.linearteam.top/wp-content/uploads/2026/07/QQ_1783610586559-1024x577.png

五个进度条全部跑完后(trustosuboot 分区紫光因为安全考虑设计的是必须是双重写入,所以一共是五个进度条)就输入命令重启吧!

reset
https://www.linearteam.top/wp-content/uploads/2026/07/IMG_20260709_232613-1024x768.jpg

不出意外,你的平板左上角(竖着看是启动时候的屏幕方向)已经出现解锁提示啦!这代表你的 BootLoader 已经解锁,至少证明 ubootsplloader 改的没问题,至于 trustos 改的怎么样就需要你自己去试喽~

如何清除 BootLoader 解锁状态(回锁 BootLoader)

很简单,进入 FDL2 模式,把你备份的原 ubootmiscdata 刷回去即可。

如何让你的学生机回归安全状态

回锁 BootLoader 后把你备份的原 splloadertrustos 刷回去即可。

机器死了怎么救

小白改起来当然会有一点点问题,但是这一点小问题足以导致机器死掉(砖了),这时候,我们长按音量-电源键 15 秒,然后立即插入数据线,这个长按 15 秒强制重启是不经过系统的,一定能成功。但请注意,插慢了设备标识符请求失败,插快了 U2S 就是残废。但是也没什么大不了的,重新来一遍就好了嘛……

附件下载

IDA Professional 9.0 (密码:QQ565887).exe:https://pan.linearteam.top/d/%E8%BD%AF%E4%BB%B6/%E5%B7%A5%E5%85%B7/IDA%20Professional%209.0%20(%E5%AF%86%E7%A0%81%EF%BC%9AQQ565887).exe?sign=q1Ppxxz8qhHODAfb4jriSFNvbTSy2IAjIE7esHBC6kg=:0

keypatch.py:https://pan.linearteam.top/d/%E8%BD%AF%E4%BB%B6/%E5%B7%A5%E5%85%B7/IDA%20Professional%209.2/keypatch.py?sign=ZYfUUhZqiMw0UvRbMqFjJMK3MaJsrOzcjAa-0ag5IW0=:0

[紫光展锐驱动]SPD_Driver_R4.20.4201.zip:https://pan.linearteam.top/d/%E8%BD%AF%E4%BB%B6/%E5%B7%A5%E5%85%B7/%5B%E7%B4%AB%E5%85%89%E5%B1%95%E9%94%90%E9%A9%B1%E5%8A%A8%5DSPD_Driver_R4.20.4201.zip?sign=9RpiobJfKPrNYkGSwBrMb7Z_LuxNfS0R8JjYdeQJpyU=:0

spd_dump_SPRD_Release.zip:https://pan.linearteam.top/d/%E8%BD%AF%E4%BB%B6/%E5%B7%A5%E5%85%B7/spd_dump_SPRD_Release.zip?sign=06Gf951bCtu-psg42IqLUM8mZxcLWw0kKyp_6WnkL9s=:0

ud710-fdl(chip0-1).zip:https://pan.linearteam.top/d/%E5%88%B7%E6%9C%BA%E5%8C%85%26%E9%95%9C%E5%83%8F/iFLYTEK/UD710-FDL(Chip0-1)/ud710-fdl(chip0-1).zip?sign=i8DygTre_UTMaKO1A-bOSw8N6hWYr_Zy3W8guUIVi08=:0

如果上面的 fdl1.bin 无法进入 FDL1 模式,请使用这个压缩包的 ud710_2c11-fdl1.bin 进入:

ud710-fdl(chip2).zip:https://pan.linearteam.top/d/%E5%88%B7%E6%9C%BA%E5%8C%85%26%E9%95%9C%E5%83%8F/iFLYTEK/UD710-FDL(Chip2)/ud710-fdl(chip2).zip?sign=pSir8OIrKg98_pCMUNC76pLGCmmbNunSHzuKmfEdY-k=:0

小彩蛋!

我修改过的C8Pro分区镜像:https://pan.baidu.com/s/11BRfDWIiJtD5GBw6mAO5TA?pwd=6hxq

没有标签
首页      未分类      科大讯飞学生机如何解锁 BootLoader 和 AVB
Avatar photo

worryzu

文章作者

发表回复

textsms
account_circle
email

LinearTeam

科大讯飞学生机如何解锁 BootLoader 和 AVB
前言 我承认我稍有些标题党......因为我主要的目的是绕过所有的分区校验,而不是去解锁,但是这么写小白大概率是看不懂的,也引不来人,所以说不要怪我喽。 上一个解锁方案 AVB 关…
扫描二维码继续阅读
2026-07-10