K7解锁BL到Root全链路:fastboot、Magisk与救砖实战
给 K7 解锁 BL、拿到 root 权限这件事,真正的门槛从来不在命令行敲得对不对,而在两个前置判断上:这台机器到底有没有可用的解锁通道,以及解锁之后怎么在不砖的前提下把 root 稳住。我前后折腾过三台同代机型,熟练之后fastboot flashing unlock、修补 boot、刷入、验证这一整套动作二十分钟内能走完一轮,剩下的时间几乎全耗在找匹配的固件版本、核对分区方案、处理各种"刷完不开机"的现场。网上很多教程把这一步写成五步走完,实际动手时你会发现版本号差一位、vbmeta 少刷一次,结果就是卡在开机 logo 上干瞪眼。
这篇就把整条链路摊开讲:先判断你的 K7 属于哪一类状态,再走解锁通道、配 fastboot 驱动,然后是 boot 镜像的三条提取路径、Magisk 与内核级方案的取舍、root 之后 OTA 怎么不翻车、变砖分几级怎么救。适合手里已经有一台 K7、想把它变成一台可控实验机的人;如果你只是想装两个模块玩玩,我建议先看完第 1 节再决定要不要动。
为了行文方便,下文统一用K7指代这台机器,厂商侧统一说"官方",工具和命令保持可复现的原样。
1. 解锁 BL 之前,把"代价"和"资格"这两件事算清楚
1.1 Bootloader 这道锁到底拦住了什么
先把原理讲透,后面很多现象你才能自己解释。手机通电后执行的第一段代码不是操作系统内核,而是固化在存储里的一小段引导程序,也就是 Bootloader。它的职责很单一:初始化最基本的硬件,然后把内核镜像从分区里读出来、交给内核执行。锁定的 BL 在这中间加了一道校验——只有厂商私钥签名过的镜像才允许被加载,任何被修改过的 boot、recovery、vbmeta 都会被拒绝,设备直接停在黑屏或者跳到提示界面。
这道校验的存在意味着两件事。第一,你没法直接把改过的内核刷进去,因为签名对不上。第二,fastboot flash boot这条命令在锁定状态下会被直接拒绝,返回FAILED (remote: 'Flashing is not allowed in Lock State')之类的错误。所以解锁的本质不是"破解",而是把 BL 切到宽松模式,让它跳过签名校验、接受任意镜像。切过去之后,设备的安全模型就变了——加密的 userdata 会失效,这就是为什么解锁一定会清空数据,不是厂商故意为难你,是密钥派生链断了。
理解这一点很关键:解锁不是一次性的开关,而是一种长期状态。它不会因为你刷回官方系统就自动恢复,需要重新上锁;重新上锁又会再清一次数据。所以动手之前想清楚,你可能要在"开"和"关"之间来回切几次,每次都意味着一次完整备份和恢复。
1.2 解锁会带走的三样东西
很多人只盯着"数据清空"这一条,实际损失比想象中大。我把它拆成三块:
| 受影响项 | 具体表现 | 可恢复性 |
|---|---|---|
| 用户数据 | 首次解锁强制全盘擦除,包括应用数据、照片、聊天记录 | 提前完整备份可恢复 |
| 保修与售后判定 | 解锁状态通常会被记录,部分售后场景可能影响判定 | 一般不可逆,需提前确认 |
| 应用信任链 | 部分金融、支付、企业办公类应用会检测启动状态 | 可部分缓解,但无法完全消除 |
第三块是新手最容易忽略的。解锁 BL 之后,设备的启动状态会从"已验证"变成"未验证",一些对安全性敏感的应用会据此拒绝提供服务或者限制功能。这类应用一般会同时检查多个信号:系统属性、启动状态、以及运行环境的完整性。哪怕你后面 root 之后做了隐藏,也只是提高通过率,不是百分之百。如果你的 K7 承担着日常支付、企业内网登录这类角色,我个人的建议是另配一台机器做实验,别拿主力机开刀。
数据备份这块补充一个实操细节:解锁前的备份不能只靠云同步,因为云同步往往只覆盖照片和通讯录,应用内部的数据库、本地缓存、离线文件都不在里面。比较稳妥的做法是用数据线全量拷一份到电脑,同时把微信、笔记、密码管理器这类应用单独做一次应用内导出。别嫌麻烦,我第一次解锁的时候只同步了相册,结果一个存了两年多的本地笔记库直接没了。
1.3 判断你的 K7 属于哪三种状态
这是整篇最关键的一步。不同批次、不同销售渠道的机器,解锁权限差别很大,盲目照抄教程大概率白忙一场。
状态一:官方通道可用。部分机型在系统设置里有官方提供的深度测试申请入口,申请通过后可以获得解锁资格,且解锁后理论上不影响后续保修判定。这类机器是最省事的,走完申请流程,绑定时长到期就能在 fastboot 里直接解锁。判断方法是在设置里搜索相关入口,或者看系统更新页面的相关说明。如果你的机器有这个入口,恭喜,后面的路好走很多。
状态二:官方通道已关闭,但存在历史版本漏洞。更多的情况是,这台机器的解锁通道只在特定固件版本上存在,一旦系统更新到某个版本之后通道就被堵上了。这类机器想解锁,必须先把系统降级到通道还开着的版本,降级本身又需要通过官方线刷工具完成。这条路的技术门槛陡增,而且降级过程本身就有一堆坑。
状态三:完全无通道。相当一部分走量机型属于这一类,从来没有开放过解锁,也没有可用的历史漏洞。这种情况下,常规手段基本走不通,你要么接受现状,要么去研究非常规手段——而后者通常意味着更高的风险、更差的稳定性和更模糊的责任边界,我不建议在这上面耗时间。
先花十分钟确认自己属于哪一种,比后面折腾两小时管用。判断顺序建议是:先在系统设置里找官方入口;找不到就去查这台机器发布初期的官方公告,看是否曾经开放过;两者都否,基本可以归到第三类。
2. 从申请到 fastboot 回 OKAY:解锁链路的完整走法
2.1 官方深度测试通道的实际操作细节
假设你确认了机器属于第一类,接下来的流程大概是这样的。第一步是注册并登录官方账号,在申请页面提交解锁申请。这一步有几个容易卡住的地方:
- 账号绑定关系。申请时会把账号和设备绑定,绑定之后有一段冷却期,期间不能换设备也不能换账号。冷却期长度因机型和批次而异,短的三天,长的可能到七天甚至更久。申请前先确认你这段时间不会换机器。
- 系统版本要求。申请页面通常会要求系统版本在某个范围内,版本太新或太旧都可能提交失败。提交前先把系统更新到页面指定的版本,不要自作主张刷到最新。
- 提交后的验证。部分批次会要求提交后再次进入申请页面点击"开始申请"完成最终确认,漏掉这一步会一直显示"审核中"。
申请通过后,系统会提示你解锁的具体操作方式。这时候先别急着操作,回到设置里确认一下开发者选项和 USB 调试已经打开。开发者选项的开启方式是连续点击系统版本号若干次,一般七次左右会提示"已进入开发者模式"。USB 调试打开后,第一次连接电脑会弹授权框,勾选"始终允许"再确认。
提醒一句:冷却期和账号绑定的设计初衷是防止设备被批量解锁后倒卖,所以它不会给你任何豁免通道。别去试各种"加速方法",那些基本都是骗点击的。
2.2 fastboot 环境与驱动:九成的"识别不到"都出在这里
整套流程里最容易翻车的环节不是解锁本身,而是电脑认不出设备。我在不同电脑上装过七八次这个环境,真正一次成功的不到一半。常见现象是adb devices能看到设备,但fastboot devices返回空,或者干脆两个都是空。
问题一般出在三个层面。第一层是 adb 和 fastboot 版本不匹配,有些系统自带的包管理器装的是老版本,和新设备通信会出问题。第二层是驱动,高通平台设备在 fastboot 模式下需要特定的 USB 驱动,系统默认给的可能是通用的 MTP 驱动,导致设备管理器里出现带黄色感叹号的未知设备。第三层是 USB 接口和线材,个别机器的 fastboot 模式对 USB 3.0 接口兼容性不好,换成 USB 2.0 口反而正常。
我整理了一套排查顺序,按这个走能省不少时间:
adb devices先确认设备在正常模式下能被识别,返回序列号加device字样才算正常。adb reboot bootloader或关机后按住音量下加电源进入 fastboot,屏幕会显示引导界面。fastboot devices再查一次,返回序列号说明环境通了。- 如果第三步返回空,先在设备管理器里看有没有异常设备,有就手动指定驱动目录。
- 换 USB 2.0 接口、换一根确定能传数据的线(很多充电线只有电源针脚),重试。
- 还是不行就把 adb 和 fastboot 换成同一套官方发布的最新版本,别混着装。
环境打通之后,后面的操作反而简单。这里有个小技巧值得记一下:把 adb 和 fastboot 的可执行文件目录加进系统环境变量,以后在任何路径下都能直接调用,省得每次都 cd 到某个固定文件夹。我第一次弄的时候不知道这点,每次都要手动切目录,来回折腾得不轻。
2.3 执行解锁与首次开机
环境通了,命令本身只有一行:
fastboot devices fastboot flashing unlock部分较老的固件用的是另一条命令:
fastboot oem unlock执行后手机屏幕会跳出确认界面,需要用音量键选择"解锁"、电源键确认。这一步是物理确认,没法用命令跳过,属于防误操作设计。确认之后设备会自行擦除数据并重启,首次开机时间明显比平时长,三到五分钟都算正常,别以为砖了。
重启完成后,进入系统第一件事是去开发者选项里确认"OEM 解锁"这一项的状态。有些机器会在解锁后把这一项变成灰色不可更改,这是正常的,说明解锁状态已经固化。第二件事是重新打开 USB 调试,因为解锁擦除数据后这个开关会回到关闭状态。
2.4 解锁卡住的四种典型现象
实际操作中遇到的失败,绝大多数能归到下面四类:
| 现象 | 可能的根因 | 处理方向 |
|---|---|---|
FAILED (remote: 'Unlock is not allowed') | 官方通道未授权,或申请未生效 | 回申请页面确认状态,检查账号绑定 |
FAILED (remote: 'unknown command') | 固件版本的 fastboot 协议旧 | 换用fastboot oem unlock试一次 |
| 命令返回 OKAY 但屏幕无确认提示 | 引导界面被中断,或音量键无响应 | 长按电源键强制重启后重试,检查按键是否卡住 |
| 命令卡住不返回 | USB 连接不稳定,或驱动半挂 | 拔数据线换口重试,别反复按 Ctrl+C 中断 |
第三种情况我遇到过一次,原因是音量下键有一个轻微的接触不良,按下去没有反馈,导致确认界面超时自动退出。换了另一台同型号机器确认没问题,才定位到是硬件。所以遇到奇怪现象时,先用另一台设备或者换一根线做个对照,能少走很多弯路。
解锁完成之后,理论上你已经可以刷入任意镜像了。但先别急着上 root,因为 root 需要一个前提:拿到和你当前系统版本完全匹配的 boot 镜像。版本不匹配是后面所有 bootloop 问题的根源,第 3 节会详细讲怎么找到它。
3. root 方案选型:不是所有方案都适合这台机器
3.1 三种主流注入机制的差异
拿到解锁状态之后,接下来要决定用哪种方式拿 root。市面上主流的三条路线,机制差别很大,不能简单说哪个更好。
Magisk 路线是在 ramdisk 里做手脚。它把你提供的 boot 镜像解开,往里面注入一个精简的 init 进程,再由这个进程在系统启动早期把权限管理的逻辑挂上去。好处是对内核零要求,只要 boot 镜像能被解开、能被重新打包,就能用。代价是它依赖 ramdisk 的存在,如果你的设备 boot 分区里没有独立的 ramdisk(有些机型干脆没有),这条路就走不通。
内核级方案(包括基于内核补丁和基于 GKI 的那几类)走的是另一条路:直接修改内核镜像,让权限管理的逻辑在内核态运行。它的优势是隐藏性更好、对系统完整性检查的干扰更小,因为改动发生在更底层的位置。代价是它要求内核源码或者特定的内核版本支持,你需要一台能编译内核的机器,或者找到一个已经编译好、且版本完全匹配的内核包。
基于内核补丁的轻量方案介于两者之间,它同样需要内核层面的支持,但注入方式更轻,不需要完整替换内核。它对内核版本和编译配置的要求比 GKI 方案宽松一些,但仍然不是"随便什么机型都能上"。
放到 K7 这台机器上,情况就很清楚了。它属于发布较早的机型,内核版本不在通用内核镜像的覆盖范围内,官方也没有开源可以编译的内核源码,第三方编译的内核包版本匹配风险极高。所以内核级的两条路在这里基本走不通,Magisk 路线是唯一具备可操作性的选择。这不是技术偏好问题,是客观条件限制。
3.2 确认分区方案与 boot 镜像位置
选定路线之后,第一步是搞清楚这台机器的分区布局。这里有两个关键信息:分区方案是 A-only 还是 A/B,以及 boot 分区的实际大小。
判断分区方案最直接的方法是用命令查:
adb shell getprop ro.boot.slot_suffix返回_a或_b说明是 A/B 双分区,返回空则说明是 A-only 单分区。这个信息决定了你刷入时写的分区名是boot还是boot_a/boot_b,写错位置是最常见的失败原因之一。
再查一下当前系统的版本号,这个必须记下来:
adb shell getprop ro.build.display.id这个字符串要和你后面提取的 boot 镜像版本完全对应,字母数字差一位都不行。很多人抱怨"刷完 Magisk 就开不了机",追根到底就是版本对不上——用一个旧版本的 boot 镜像去修补,刷进新系统里,内核和系统分区不匹配,自然起不来。
还有一个容易忽略的点是 boot 分区的容量。修补后的镜像体积会比原版大,如果目标分区容量不够,刷入时会报FAILED (remote: 'size too large')。这种情况需要先确认分区表,看是不是有额外的分区可以放。K7 这个级别的机器一般不会遇到,但知道有这回事,遇到时不至于慌。
3.3 boot 镜像的三条提取路径
这一步是整个流程里最耗时间的。我把它按可行性排序:
路径一:从官方固件包里提取。这是最干净的方式,前提是你能拿到和当前系统版本完全对应的固件包。固件包一般有两种形态:完整线刷包和增量 OTA 包。完整包里通常包含各个分区的镜像文件,或者打包成payload.bin之类的容器;增量包只包含差异内容,不能用来提取完整镜像。如果你的系统还是出厂版本没有更新过,那么出厂固件包就等于当前版本,直接可用。如果系统已经更新过几次,就要找对应版本的完整包,这一步最考验耐心。
路径二:从设备上直接导出。如果设备已经可以通过某种方式拿到临时权限,可以用 dd 命令把 boot 分区原样读出来:
adb shell su dd if=/dev/block/by-name/boot of=/sdcard/boot.img adb pull /sdcard/boot.img路径里/dev/block/by-name/boot是一个软链接,实际的块设备名可能不同,用ls -l /dev/block/by-name/查一下就能看到真实指向。这条路径的好处是绝对精确,导出的就是你正在跑的那个版本,不需要去核对版本号。但它有个先有鸡还是先有蛋的问题——你得先有权限才能导,所以一般用在已经 root 过的设备上做备份。
路径三:从第三方资源站下载。网上有一些整理了各机型各版本 boot 镜像的资源站。这条路最省事,风险也最高:文件来源不可控,可能被替换、可能版本标注错误、可能干脆是别的机型的。如果一定要走这条,至少做两件事:核对文件大小是否和分区大小一致,以及用校验值比对(如果你能找到官方来源的校验值)。
我的建议顺序是:先尝试路径二(如果已经有过临时权限),不行再走路径一,路径三作为最后手段。提取到的镜像先别急着用,存两份,一份原版一份备用,后面出问题时这就是你的救命稻草。
3.4 修补与刷入的完整动作
拿到 boot 镜像之后,把它推送到手机上,用 Magisk 应用里的"安装 → 选择并修补一个文件"功能处理。处理完会在下载目录生成一个带magisk_patched前缀的镜像,把它拉回电脑。
adb push boot.img /sdcard/Download/boot.img # 手机上操作完成后 adb pull /sdcard/Download/magisk_patched-xxxxx.img刷入前先确认设备在 fastboot 模式,然后按分区方案选择命令:
# A-only 设备 fastboot flash boot magisk_patched.img # A/B 设备,先确认当前活动槽位 fastboot getvar current-slot fastboot flash boot_a magisk_patched.img如果设备带 vbmeta 分区且开启了校验,还需要额外处理校验标志,否则刷完照样起不来:
fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img不同版本的 fastboot 对参数位置的要求不一样,有的要求参数写在flash之前,有的接受写在后面。如果一条报错,换另一种写法试一次。这一步做的是关闭校验,让系统不去检查 boot 和 system 的完整性,属于必要步骤,跳过它后面必然翻车。
提醒:刷入之前把原始 boot.img 单独存一份放在电脑上,文件名标注清楚版本号。这一步花十秒,能省掉后面几小时的救砖时间。
3.5 首次开机与权限验证
刷完重启,第一次开机会比平时慢,三到五分钟属于正常范围。进入系统后打开 Magisk 应用,如果它显示当前版本号、并且"超级用户"页签可用,说明注入成功。
验证一下实际权限:
adb shell su whoami返回root就通了。第一次执行su时手机会弹出授权请求,需要手动点允许。这里有个细节:如果你的 Magisk 应用没有自动弹窗,检查一下是不是"超级用户"页签里的策略设置成了默认拒绝,改成"询问"即可。
4. root 到手之后的维护:检测、更新与救砖
4.1 应用检测 root 的几个信号与应对边界
root 之后最先遇到的麻烦,往往不是系统问题,而是某些应用突然不能用了。这些应用检测的维度通常有好几层:系统属性里有没有可疑的调试标志、关键路径下有没有熟悉的文件名、运行环境的完整性校验是否通过、以及是否加载了常见的注入库。它们不会只查一项,而是综合打分。
Magisk 提供了一套应对机制,核心思路是"按需隐藏":在配置里把需要隐藏的应用加入名单,同时把模块的注入范围限制在必要进程内。配置得当的话,大部分日常应用能正常跑。
但这里有一个必须说清楚的边界:这类隐藏手段的目的是让合法的自动化、备份、定制化需求能正常工作,不是用来绕过付费或者规避安全策略。而且它本身是一场持续的博弈,对方的检测手段在更新,你的隐藏配置也要跟着调。如果你的核心需求是"让某个必须通过检测的应用跑起来",那我建议直接放弃 root 或者双持设备,比反复调试配置省心得多。我见过太多人花一整天调隐藏,最后还是时灵时不灵。
4.2 系统更新时保住 root 的正确顺序
OTA 更新是 root 用户最容易翻车的场景。系统推送更新后,如果你直接点"下载并安装",结果通常是更新装上了、root 没了,还可能出现系统分区被覆盖导致的一系列异常。
比较稳妥的顺序是这样:
- 更新推送到达后,先在 Magisk 应用里看"安装到未使用的槽位"是否可用(A/B 设备才有)。
- 在系统更新界面下载更新包,但不要立即重启。
- 回到 Magisk 应用,选择"安装 → 安装到未使用的槽位",让它把 root 注入到待激活的那个槽位。
- 完成后再回系统更新界面点重启。
这样重启后系统是新版本,root 也还在。这套流程依赖 A/B 分区机制,单分区设备用不了,只能老老实实走"更新后重新提取 boot 再刷一遍"的老路。
还有一点要提醒:更新之后原版 boot 镜像就作废了,必须重新提取新版本的。我见过有人图省事,直接把上次修补好的镜像再刷一遍,结果内核版本和系统版本对不上,开机直接卡住。每次更新都是一次重新来过,别偷这个懒。
4.3 变砖的四个等级与对应手段
"变砖"这个词被用得太泛了,实际严重程度差别巨大。我按可恢复性分成四级:
| 等级 | 表现 | 恢复手段 | 需要的外部条件 |
|---|---|---|---|
| 一级(软砖) | 卡开机动画、无限重启,但能进 fastboot | 刷回原版 boot 镜像 | 有备份的原始镜像 |
| 二级(系统损坏) | 能进官方恢复模式,系统分区可能被破坏 | 恢复出厂设置或侧载官方固件包 | 有对应版本的官方包 |
| 三级(引导损坏) | 只能进入底层下载模式,屏幕全黑但电脑能识别 | 用官方线刷工具整体重刷 | 需要工具授权与对应固件 |
| 四级(硬件级) | 完全无反应,充电无指示,电脑不识别 | 送修,可能需要更换主板 | 无 DIY 手段 |
绝大多数人遇到的是一级和二级,这两级只要手里有原版 boot 镜像或者官方固件包,都能自己救回来。三级开始就需要依赖官方线刷工具,而且部分批次会要求授权账号,个人没法自己完成。四级基本就是硬件问题了,跟 root 没直接关系,但刷错分区确实有可能触发。
这里有个原则值得记住:任何一次刷入操作之前,先确认你能回到上一个状态。具体做法是把原版 boot 镜像、官方的完整固件包、以及线刷工具都准备好放在电脑上。这三样东西准备好了,一级二级随便折腾;什么都不准备就开始刷,那就是在赌运气。
4.4 模块生态的取舍:少即是稳
root 之后很多人第一件事是去装一堆模块,结果系统变得又慢又不稳。我的经验是模块数量控制在五个以内,而且每装一个都要观察一段时间。
装模块前问自己三个问题:这个模块解决的是不是真需求、它的最后更新时间是不是还在维护、它有没有明确的冲突说明。三个里有一个答不上来,就先别装。
尤其要避开这几类:修改系统核心框架的、替换系统关键组件版本的、声称"一键优化"但实际上批量修改系统参数的。这三类模块出问题的概率最高,而且一旦出问题,症状往往很隐蔽——不是直接开不了机,而是某个功能莫名失效,排查起来极其折磨。
Magisk 的模块管理里有安全模式的概念,长按音量键可以在启动时禁用所有模块,这是你的最后一道保险。知道这个机制存在,至少不会因为装错模块直接废掉设备。
5. 三次翻车复盘与参数速查
5.1 复盘一:刷错分区导致卡开机 logo
第一次操作的时候我没查分区方案,看到教程里写的是fastboot flash boot,直接照抄。结果刷完卡在开机 logo,等了十分钟没动静。回头查getprop ro.boot.slot_suffix才发现这台机器返回的是_a,是 A/B 双分区设备,正确命令应该是flash boot_a。刷到boot这个不存在的分区上,等于什么都没做,系统自然起不来。
教训很直接:先查分区方案,再决定命令。现在我的习惯是每次动手前把这三条命令的输出截图存下来:分区后缀、系统版本号、当前活动槽位。三行信息,能避开后面八成的问题。
5.2 复盘二:vbmeta 校验没关,刷完直接 bootloop
第二次翻车更隐蔽。所有步骤都对,boot 镜像版本也匹配,刷完照样无限重启。后来在 fastboot 里重新刷了一遍 vbmeta 并带上关闭校验的参数,才恢复正常。
这个坑的成因是系统在启动早期会校验 boot 和 system 的完整性,你改过 boot 但没告诉系统"别校验了",校验失败就会触发回滚或者直接停在引导阶段。处理方式就是前面提到的--disable-verity --disable-verification参数。这个操作会在 vbmeta 分区写入一个标志位,让系统跳过这两个校验。
需要说明的是,关闭校验本身会降低设备的安全防护水平,属于 root 操作的固有代价,不是可选优化。如果你对这点很在意,那就不要 root。
5.3 复盘三:OTA 之后 root 丢失且旧镜像不匹配
第三次是最冤的一次。系统推了更新,我手快直接点了重启,结果 root 没了。想着反正有备份的修补镜像,直接再刷一遍就行,结果刷完卡住了——因为那个镜像是旧版本的,系统已经是新版本了。
正确做法是重新提取新版本的 boot,重新修补,重新刷。前面讲的"安装到未使用槽位"就是这个问题的标准解法,但前提是你在更新前就想到了。这次之后我给自己定了个规矩:收到更新通知先不动,把当前版本号和 boot 镜像备份做好,再考虑更新。
5.4 命令与参数速查表
最后把整个流程里用到的命令整理成一张表,方便对照:
| 阶段 | 命令 | 用途 |
|---|---|---|
| 环境检查 | adb devices | 确认正常模式下设备可识别 |
| 环境检查 | adb reboot bootloader | 进入引导模式 |
| 环境检查 | fastboot devices | 确认引导模式下设备可识别 |
| 信息采集 | adb shell getprop ro.boot.slot_suffix | 判断 A/B 还是 A-only |
| 信息采集 | adb shell getprop ro.build.display.id | 记录当前系统版本号 |
| 信息采集 | fastboot getvar current-slot | 查看当前活动槽位 |
| 解锁 | fastboot flashing unlock | 执行解锁(新固件) |
| 解锁 | fastboot oem unlock | 执行解锁(旧固件) |
| 镜像导出 | dd if=/dev/block/by-name/boot of=/sdcard/boot.img | 从设备导出原版 boot |
| 刷入 | fastboot flash boot xxx.img | A-only 设备刷入 boot |
| 刷入 | fastboot flash boot_a xxx.img | A/B 设备刷入 boot |
| 校验 | fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img | 关闭完整性校验 |
| 验证 | adb shell su -c whoami | 确认 root 权限生效 |
这张表里的每一条我都实际跑过,参数写法在不同 fastboot 版本上可能略有差异,报错时换个参数位置再试一次通常能解决。
最后分享一个小习惯,是我折腾这么多轮之后养成的:每次动手前,在电脑上建一个以日期和版本号命名的文件夹,把原版 boot 镜像、修补后的镜像、固件包、以及一份记录操作步骤的文本文件全放进去。看起来繁琐,但当你三个月后想再刷一次、或者系统更新后需要重新 root 的时候,这个文件夹就是你的完整档案。我现在的文件夹里已经躺了六个版本,每次翻回去看当时的记录,都能想起那次为什么翻车。