自从安卓版本升级以后,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
程序,按提示登录小米帐号。
7、将手机关机,按住音量下键 + 开机键
进入 Fastboot 模式,用数据线连接电脑(如果显示未连接,请检测安装电脑驱动)
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 盘根目录。需留意:解压路径应避免有中文、特殊字符或空格)。
2、刷机操作步骤
1. 下面正式开始刷机,先将手机关机(建议先退出小米账号),长按音量下键 + 开机键
进入 Fastboot 模式,用数据线连接到电脑。
2. 在线刷工具文件夹里找到 XiaoMiFlash.exe
双击运行,如果电脑没有驱动会提示安装,然后软件界面点击“选择”按钮,选中之前解压的线刷包文件夹(留意路径不要选错了,选择线刷包解压的根目录,也就是 images
上一级目录)。
3. 这步是可选项,但强烈建议在线刷工具右下角选中“全部删除”模式,待之后确认刷机正常后再选“全部删除并lock”重新刷一遍(也可以不lock重刷。是否lock的区别是锁不锁BL,不锁后面刷机会方便一些,不用重新解锁,锁的话会提升安全性,但以后刷机要重新申请解锁)。
之所以这样做是为降低刷机风险。如果后面刷机遇到意外问题,想要重新刷因为之前已默认 BL 上锁,刷机又要重新 BL 解锁。为避免这种情况,建议新手先选择不锁 BL 刷一遍,确认没问题后,再根据需要选择是否锁定 BL 重新刷,这样比较稳妥。
注1:如果刷的是海外版 MIUI 系统,因为 BL 增加了版本启动校验,切记不要锁 BL,不然会启动不了系统(如果误操作了,可尝试 Fastboot 模式下连接电脑重新解锁)。也就是说手机购买渠道和系统版本要对应上,国行手机刷国行系统可以锁 BL,海外手机刷海外系统可以锁 BL,反之则不行。
注2:虽然 MiFlash 有保留用户数据刷机模式,但可能会遇到刷完后某些应用不可用(如相册),建议最好手动备份数据,不要依赖这个功能。
4. 点击“加载设备”,识别到手机设备后就可以点击刷机。刷机过程大约需时十几分钟,完成后手机会自动重启进入系统。
如果在刷机过程中遇到错误信息,可参考这个问题总结帖。如果需要手动退出 Fastboot 模式,长按手机电源键 10 秒。
对于降级系统,后续还可以设置关闭系统更新提示,以避免这个烦人问题。
3、小米手机关闭通知栏系统更新提示
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
并回车,然后点击“系统属性”窗口“高级”选项,再点击下方的“环境变量”按钮。
3. 选中系统变量下的“Path”,点击“编辑”,然后在新窗口中点击“新建”,输入之前 Android SDK Platform Tools 解压目录路径,添加后关闭窗口。
注:对于 Windows 7 而言,最后一步略有不同,需要将路径追加到已有变量值后面,用英文 ;
分号间隔。
4. 到此,添加环境变量就完成了。在“运行”窗口输入 cmd
打开命令行,用 adb version
或 fastboot --version
测试命令是否能正常使用。
二、安装 Magisk 过程中需要刷写手机 boot
或 Recovery
分区,请确保手机已完成 BL 解锁,不然无法进行
三、安装 Magisk 正常情况下不会丢数据,但稳妥起见,尤其是新手,建议先外置备份手机数据再操作
最后,虽然文中方法已用实机多次验证,但每人环境可能不同,无法承诺获得一致结果,文章仅供参考!
2、下载 Magisk
Magisk 下载地址 https://github.com/topjohnwu/Magisk/releases(选择下载最新版,然后安装到手机)。
如果下载遇到打不开情况,请多刷新几次,或者切换不同网络测试。
3、查询手机环境(这里有点麻烦,而且也不转确,如果是红米8A的直接按我下面说的操作吧,如果不是,直接看原文)
4、提取相应文件
查看手机上运行的系统版本是多少
下载对应系统版本刷机包,从里面提取相应文件(请见下面说明)。
将提取到的文件复制到手机上(手机usb连电脑时选文件传输模式才可以看到Download文件夹)。
5、生成修补文件
手机打开 Magisk 软件,点击 Magisk 卡片中的“安装”按钮。接下来的界面不同机型显示的选项可能不同。
如果显示有其它选项,一般保持默认不要更改。稍微新一些的机型通常不会显示相关选项,所以请忽略。
接下来点击“选择并修补一个文件”,选择之前提取到的 boot.img
或 recovery.img
文件,点击“开始”,然后等待生成修补文件。
补充:据 Magisk 文档指出,小米有个别机型 Ramdisk 结果可能不能准确检测。如果修补 recovery.img
文件失败,可以尝试用 boot.img
修补,后面安装也遵循 Ramdisk 结果为“是”的做法。
将生成的修补文件复制到电脑上(修补文件默认保存在手机内部存储 Download 目录)。
6、刷写修补文件
将手机关机,长按音量下键 + 电源键
进入 FASTBOOT 模式,用数据线连接到电脑。
电脑打开存放修补文件的文件夹,按住键盘 Shift 键
,同时鼠标右键点击文件夹空白处,在右键菜单点击“在此处打开 Powershell 窗口”,然后运行下面刷写命令(命令中的文件名请先自行修改)。
# 如果之前修补 boot.img 文件请用这个命令 fastboot flash boot magisk_patched-25200_pU6ZV.img
刷写完成后用下面命令重启手机(这样进入的系统才能使用 Magisk)。
fastboot reboot
如无意外,重启手机后就安装好 Magisk 了。打开 Magisk 软件可以看到已经有 Root 授权管理选项,现在可以开始使用了。
提示:如果刷完后遇到反复重启进不去系统问题,可以尝试先用下面命令禁用启动验证(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)。
- 平时关闭系统自动更新,以防后台自动下载安装更新
- 当要更新系统时,先打开 Magisk 软件,点击“卸载 Magisk”,选择“还原原厂映像”
- 运行系统更新,安装后先不要点重启,打开 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