红米8A刷机root流程记录

自从安卓版本升级以后,app抓包https就成了问题,所以上周就在咸鱼上买了一个红米8a,计划着root手机来做开发测试使用。在绑了小米账号7天后,终于可以解除bl锁,然后把手机root了。摸索过程有点长,因此记录一下,以防下回又要摸索,然后顺便分享给有需要的朋友。

一、解小米手机 BL 解锁操作指南

在开始之前,先大致了解下 BL 锁的相关知识,以便对接下来的操作有个基本认识。

1.什么是 BL 锁

BL 全名为 BootLoader,它在手机安全启动规范中属较底层的一环。以下是 BootLoader 在各类启动场景中的顺序。

  • 系统启动:芯片内部固化 BootROM -> BootLoader -> Boot.img(Linux kernel 和 RAMDisk) -> System.img(Android)
  • 卡刷启动:芯片内部固化 BootROM -> BootLoader -> Recovery.img -> 刷入卡刷包
  • 线刷启动:芯片内部固化 BootROM -> BootLoader -> 刷入线刷包

BootLoader 会检查加载对象的签名信息(Boot.img 或 Recovery.img),如果签名与 OEM 厂商签发的不符将拒绝启动。在通过 BootLoader 检查后,后续步骤也会继续验证加载对象,Boot.img 检查 System.img 签名,Recovery.img 检查刷机包签名,如此环环相扣。

2.为什么需要解 BL 锁

从上面介绍可以了解到,BL 锁主要作用是验证加载对象签名,防止启动第三方 ROM 或 Recovery,避免由此带来的数据安全风险。同时限制了 Fastboot 方式刷机(线刷),防范手机在没有授权的情况下被刷机。

对于合法刷机需求,小米保留有 BL 解锁渠道,在解锁后才能使用线刷方式刷机。小米 BL 解锁设计有多重验证,需在手机和解锁工具上登录相同小米帐号,并在手机插入 SIM 卡,进行数据联网等指定操作。

3.BL 解锁后有何变化

BL 解锁后赋予用户更多权限,可以自由刷第三方 ROM 和 Recovery,可以 Root 手机,相应的也会增加手机安全风险,仅适合高级用户。

对普通用户来说,解 BL 锁可能只为降级系统版本。这种只要确保 ROM 是官方原版,在刷机时选择锁定 BL 锁,安全性将不受影响。

注:如果刷国际版 ROM,则不能上锁,不然会无法启动系统。因为小米在 BL 加入了区域验证,国内版和国际版的签名信息不一致。

4.小米手机 BL 解锁步骤

在解锁操作前,先确认自己的小米帐号是否可以解锁(即每月最多解锁 1 台手机,每年最多 4 台,超过需要更换帐号)。

帐号没问题后即可开始下面解锁步骤:

1、备份手机数据,BL 解锁会清除手机数据,有数据的请先外置备份数据。

2、手机已插入 SIM 卡,关闭 WiFi 连接,启用数据联网方式(后面操作需要用到数据联网)。

3、依次点击 手机设置 -> 我的设备 -> 全部参数 -> 连续点击几次“MIUI 版本” 打开开发者选项。

4、依次点击 手机设置 -> 更多设置 -> 开发者选项 -> 设备解锁状态 -> 绑定帐号和设备。

5、如果首次绑定手机,需要在绑定帐号后等待 7 天,期间不要退出小米帐号,以满足解锁条件(不然后面会提示绑定时间太短)

解锁失败提醒

6、电脑下载小米 BL 解锁工具,完整解压后运行里面的 miflash_unlock.exe 程序,按提示登录小米帐号。

红米8A刷机root流程记录
红米8A刷机root流程记录

7、将手机关机,按住音量下键 + 开机键进入 Fastboot 模式,用数据线连接电脑(如果显示未连接,请检测安装电脑驱动)

红米8A刷机root流程记录

8、识别手机连接后,点击“解锁”按钮,稍等片刻就会看到 BL 解锁结果,然后重启手机(开机可看到 BL 锁状态)

9、到此,BL 解锁就完成了,之后可以按需使用线刷方式刷机或者 Root 手机等操作

注:如果解锁过程中遇到问题,需要重启手机,可以长按开机键 10 秒退出 Fastboot 模式。

5.小米手机 BL 解锁常见问题

BL 解锁后可以重新上锁吗

可以在使用 MiFlash 刷机时,在界面右下角选择是否锁定 BL。或者在刷机后运行锁定 BL 命令上锁。

解锁工具提示“账号设备不一致”

检查手机登录小米帐号是否和线刷工具登录的一致。如果帐号相同,可尝试将手机系统升级到最新版再试。

解锁工具提示“账号与设备没有绑定关系”

如果用小米英文官网注册的帐号解锁国内版手机,可能出现此问题,需要注册国内帐号操作。

解锁工具提示“无法获取手机信息”

尝试更换数据线。如果电脑有 USB 2.0 端口,优先使用。此外最好用运行 64 位系统的电脑操作。

解锁失败显示“未知错误-1”

网路异常,检查电脑网络是否正常连接。

解锁失败显示“账号权限不足或者账号受限”

账号存在安全风险,无法执行解锁操作,建议更换账号。

二、小米手机线刷方式刷机指南(如不需要降系统或换版本可忽略此步)

线刷指的是 Fastboot 模式刷机,相较于系统内选择卡刷包或者手动进入 Recovery 刷机,线刷方式面临的限制较少。除非官方在后续 BL 更新中添加限制,不然在 BL 解锁情况下,可以刷入第三方 ROM 或降级系统版本。

提示1:虽然本文经过实机操作验证,但无法承诺每个场景下获得一致结果。刷机始终有潜在风险,请自行判断,操作前备份数据必不可少!

提示2:对于降级系统版本,应避免使用 2018-4-20 之前版本,太旧版本可能因为基带问题使用不了 WiFi,除非古董机型没有其它版本选择。

1、刷机准备事项

1. 线刷方式刷机会清除手机数据。因此手机如果有数据,请先外置备份数据

2. 线刷需要手机已完成 BL 解锁,不然无法操作。

3. 将手机充满电。电脑下载好要刷的 MIUI 版本线刷包(我下载的是Redmi 8A国际稳定版)(免费下载)和 MiFlash 线刷工具(免费下载),并解压到一处备用(建议用 WinRAR 解压,例如解压到 D 盘根目录。需留意:解压路径应避免有中文、特殊字符或空格)。

红米8A刷机root流程记录
红米8A刷机root流程记录
红米8A刷机root流程记录

2、刷机操作步骤

1. 下面正式开始刷机,先将手机关机(建议先退出小米账号),长按音量下键 + 开机键进入 Fastboot 模式,用数据线连接到电脑。

小米手机 Fastboot 模式界面(新版)
小米新版 Fastboot 界面
小米手机 Fastboot 模式界面(旧版)
小米旧版 Fastboot 界面

2. 在线刷工具文件夹里找到 XiaoMiFlash.exe 双击运行,如果电脑没有驱动会提示安装,然后软件界面点击“选择”按钮,选中之前解压的线刷包文件夹(留意路径不要选错了,选择线刷包解压的根目录,也就是 images 上一级目录)。

选择解压的线刷包文件夹
选择解压的线刷包文件夹

3. 这步是可选项,但强烈建议在线刷工具右下角选中“全部删除”模式,待之后确认刷机正常后再选“全部删除并lock”重新刷一遍(也可以不lock重刷。是否lock的区别是锁不锁BL,不锁后面刷机会方便一些,不用重新解锁,锁的话会提升安全性,但以后刷机要重新申请解锁)。

之所以这样做是为降低刷机风险。如果后面刷机遇到意外问题,想要重新刷因为之前已默认 BL 上锁,刷机又要重新 BL 解锁。为避免这种情况,建议新手先选择不锁 BL 刷一遍,确认没问题后,再根据需要选择是否锁定 BL 重新刷,这样比较稳妥。

注1:如果刷的是海外版 MIUI 系统,因为 BL 增加了版本启动校验,切记不要锁 BL,不然会启动不了系统(如果误操作了,可尝试 Fastboot 模式下连接电脑重新解锁)。也就是说手机购买渠道和系统版本要对应上,国行手机刷国行系统可以锁 BL,海外手机刷海外系统可以锁 BL,反之则不行。

注2:虽然 MiFlash 有保留用户数据刷机模式,但可能会遇到刷完后某些应用不可用(如相册),建议最好手动备份数据,不要依赖这个功能。

选择刷机模式(是否在刷机时锁定 BL 锁)
选择刷机模式(是否在刷机时锁定 BL 锁)

4. 点击“加载设备”,识别到手机设备后就可以点击刷机。刷机过程大约需时十几分钟,完成后手机会自动重启进入系统。

加载设备后点击开始刷机
点击刷机后等待十几分钟,完成后手机会自动重启进入系统(有时线刷工具可能没显示结果,只要手机正常重启进入系统初始化界面就表示成功了)

如果在刷机过程中遇到错误信息,可参考这个问题总结帖。如果需要手动退出 Fastboot 模式,长按手机电源键 10 秒。

对于降级系统,后续还可以设置关闭系统更新提示,以避免这个烦人问题。

3、小米手机关闭通知栏系统更新提示

MIUI 会不时检测有无系统更新,如果使用的 MIUI 旧版本不想要更新,可以采用下面方法关闭 MIUI 通知栏系统更新提示。

步骤一:关闭系统自动更新

依次点击手机“设置” -> “我的设备” -> “MIUI 版本” -> 右上角“更多”按钮 -> “系统更新设置”。

关闭里面的“自动下载”、“智能更新”和“自动升级”选项。

小米手机关闭系统自动更新
MIUI 关闭系统自动更新图解

注:关闭系统自动更新后不要点击安全管家里的一键优化,不然它会自动改回去。

步骤二:关闭系统更新通知及联网权限

依次点击手机“设置” -> “应用设置” -> “应用管理” -> 右上角”更多”按钮 -> “显示所有应用” -> 在搜索栏搜索“系统更新”。

分别设置“系统更新”通知和联网权限,关闭里面可以关闭的通知选项,以及禁用数据联网,最后点击“结束运行”应用。

MIUI 系统更新应用设置
MIUI 系统更新应用设置
MIUI 系统更新权限设置
MIUI 系统更新权限设置

步骤三:通过应用锁隐藏系统更新通知

经过上面设置后,在 WiFi 联网下还是会有通知栏系统更新提示,这时可以用 MIUI 自带的应用锁功能隐藏通知。

依次点击手机“设置” -> “应用设置” -> “应用锁” -> 按提示设置应用锁密码 -> 找到“系统更新”开启上锁。

然后点击右上角“设置”图标,点击“隐藏通知内容”选项,开启隐藏“系统更新”通知。

应用锁添加系统更新
系统更新添加应用锁
隐藏系统更新通知
隐藏系统更新通知

至此,后续便不会收到系统更新提示。上面方法在 MIUI10 至 MIUI13 系统版本中测试有效。

其它关闭系统更新方法

1. 使用黑域、绿色守护、冰箱等软件冻结系统更新应用(需要用 ADB 命令或 Root 环境操作)。

2. 删除手机 download_rom 文件夹,新建同名但无后缀文件。这样系统更新会下载失败,但仍有更新提示。

三、小米手机安装 Magisk 获取 Root 权限指南

现在获取手机 Root 主要通过安装 Magisk 实现,这篇文章将以新手视角介绍如何安装使用 Magisk。

为尽可能介绍明白,文中所提步骤均配上了截图说明(点击文字链接可以查看操作图解)。

1、准备工作

一、安装 Magisk 过程中需要用到 fastboot 命令,请确保电脑已下载相关工具和配置好命令环境变量。

在自定义手机设置或刷写分区等操作时,需要用到 adb 或 fastboot 命令。如果电脑没有设置环境变量,则必须在命令前面添加程序路径,或从程序目录打开命令行窗口,不然系统无法识别运行命令。

下面介绍 Windows 如何配置 fastboot 和 adb 环境变量。

1. 点击下载 Android SDK Platform Tools,它包含 fastboot、adb 命令程序文件,下载后完整解压一旁备用(例如解压到 C 盘根目录)。

2. 同时按下键盘上的 Windows 图标键 + R 字母键,在弹出“运行”窗口中输入 sysdm.cpl 并回车,然后点击“系统属性”窗口“高级”选项,再点击下方的“环境变量”按钮。

Windows运行打开系统属性
步骤一:从“运行”打开系统属性
Windows环境变量设置选项
步骤二:点击“环境变量”按钮

3. 选中系统变量下的“Path”,点击“编辑”,然后在新窗口中点击“新建”,输入之前 Android SDK Platform Tools 解压目录路径,添加后关闭窗口。

注:对于 Windows 7 而言,最后一步略有不同,需要将路径追加到已有变量值后面,用英文 ;分号间隔。

Windows编辑系统变量Path
步骤一:选中系统变量Path编辑
Windows添加环境变量路径
步骤二:添加环境变量路径
Windows 7 添加方式

4. 到此,添加环境变量就完成了。在“运行”窗口输入 cmd 打开命令行,用 adb version 或 fastboot --version 测试命令是否能正常使用。

测试fastboot和adb命令是否可用
运行命令能正常返回内容就表示环境变量设置成功,以后可以直接使用而不用添加命令路径

二、安装 Magisk 过程中需要刷写手机 boot 或 Recovery 分区,请确保手机已完成 BL 解锁,不然无法进行

三、安装 Magisk 正常情况下不会丢数据,但稳妥起见,尤其是新手,建议先外置备份手机数据再操作

最后,虽然文中方法已用实机多次验证,但每人环境可能不同,无法承诺获得一致结果,文章仅供参考!

2、下载 Magisk

Magisk 下载地址 https://github.com/topjohnwu/Magisk/releases(选择下载最新版,然后安装到手机)。

如果下载遇到打不开情况,请多刷新几次,或者切换不同网络测试。

3、查询手机环境(这里有点麻烦,而且也不转确,如果是红米8A的直接按我下面说的操作吧,如果不是,直接看原文

4、提取相应文件

查看手机上运行的系统版本是多少

查看手机系统版本

下载对应系统版本刷机包,从里面提取相应文件(请见下面说明)。

红米8A刷机root流程记录
提取 boot.img 文件

将提取到的文件复制到手机上(手机usb连电脑时选文件传输模式才可以看到Download文件夹)。

红米8A刷机root流程记录

5、生成修补文件

手机打开 Magisk 软件,点击 Magisk 卡片中的“安装”按钮。接下来的界面不同机型显示的选项可能不同。

如果显示有其它选项,一般保持默认不要更改。稍微新一些的机型通常不会显示相关选项,所以请忽略。

接下来点击“选择并修补一个文件”,选择之前提取到的 boot.img 或 recovery.img 文件,点击“开始”,然后等待生成修补文件。

补充:据 Magisk 文档指出,小米有个别机型 Ramdisk 结果可能不能准确检测。如果修补 recovery.img 文件失败,可以尝试用 boot.img 修补,后面安装也遵循 Ramdisk 结果为“是”的做法。

将生成的修补文件复制到电脑上(修补文件默认保存在手机内部存储 Download 目录)。

红米8A刷机root流程记录
将生成的修补文件复制到电脑上

6、刷写修补文件

将手机关机,长按音量下键 + 电源键进入 FASTBOOT 模式,用数据线连接到电脑。

电脑打开存放修补文件的文件夹,按住键盘 Shift 键,同时鼠标右键点击文件夹空白处,在右键菜单点击“在此处打开 Powershell 窗口”,然后运行下面刷写命令(命令中的文件名请先自行修改)。

# 如果之前修补 boot.img 文件请用这个命令
fastboot flash boot magisk_patched-25200_pU6ZV.img
红米8A刷机root流程记录

刷写完成后用下面命令重启手机(这样进入的系统才能使用 Magisk)。

fastboot reboot

如无意外,重启手机后就安装好 Magisk 了。打开 Magisk 软件可以看到已经有 Root 授权管理选项,现在可以开始使用了。

红米8A刷机root流程记录
su命令也有效了

提示:如果刷完后遇到反复重启进不去系统问题,可以尝试先用下面命令禁用启动验证(AVB/DM-Verity),然后重复上一步骤重新刷写修补文件(这个方法仅限具有单独 vbmeta 分区的机型使用)。

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

命令中用到的 vbmeta.img 文件从刷机包内提取,方法和之前提取其它文件一样。

或者,如果遇到问题打算放弃 Magisk 安装,只需用之前方法刷回从刷机包提取的原始文件。

7、使用问题补充(原文的内容,并未测试)

Magisk 如何对软件隐藏 Root

目前比较好的方法是安装 Shamiko 模块实现,具体请查看这篇文章

安装 Magisk 后系统更新注意事项

安装 Magisk 后如果按往常一样更新系统,会出现 OTA 增量更新失败,需要下载完整包的问题,并且更新后会丢失 Magisk 安装。

采取下面更新步骤可以避免上述问题(仅适合 A/B 分区机型使用。其它机型忽略第 3 步骤,更新后重新安装 Magisk)。

  1. 平时关闭系统自动更新,以防后台自动下载安装更新
  2. 当要更新系统时,先打开 Magisk 软件,点击“卸载 Magisk”,选择“还原原厂映像”
  3. 运行系统更新,安装后先不要点重启,打开 Magisk 软件点击“安装”,选择“安装到未使用的槽位”,之后再重启

更新 Magisk 方法

Magisk 更新分 Magisk 软件 和 Magisk 安装,两者都可以在 Magisk 软件内操作更新(先更新 Magisk 软件,再更新 Magisk 安装)。

由于网络环境和应用权限问题,在 Magisk 里的点击更新软件可能会遇到不能下载或安装的问题。可以直接访问 GitHub 下载 APK 文件覆盖安装,然后再更新 Magisk 安装,选择“直接安装”模式即可。

卸载 Magisk 方法

打开 Magisk 软件,停用已安装模块(如果有的话),点击“卸载 Magisk”按钮,选择“完全卸载”,卸载后会自动重启生效。

提示:如果之前安装 Magisk 时取消了“保持强制加密”选项(修补文件那步,通常只在旧机型和旧版本上有显示该选项,且默认不会取消),则卸载 Magisk 后系统可能会自动加密用户数据,操作前记得外置备份数据。

参考资料&鸣谢

主要参考了如下资料,主要是如今的网站盈利能力的消逝,大部分站长们完全靠兴趣在支撑,很多网站说不定哪天就消失了,因此这里转载过来,多留一个备份。然后部分下载链接替换成了免费下载地址。如果大家经济允许,就支持一下原文站长吧。最后衷心感谢原文作者的分享。

1.小米手机获取 Root 权限教程(详细图文)(原文):https://miuiver.com/how-to-root-xiaomi-phone/

2.MIUI官方ROM仓库:https://roms.miuier.com/devices/olivelite/

原创文章,作者:Zeyu,如若转载,请注明出处:https://jinzhijun.cn/develop/1240

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注