原因及工具
想使用原生的Google服务并且需要Root,中国版的开发版里边提供了Root功能,但是安装Google套装之后感觉不是很稳定(可能是我找的包不好);国际版中有原生的Google服务,但是没有提供Root功能(无论开发板还是稳定版)。
加上中国版的广告太多,所以就以国际版的稳定版为基础,自己进行了Root。
刷机&ROOT涉及到的工具有:
- 原版线刷包 (fastboot包)
- SuperSU
- TWRP(一个三方的Recovery Image, 注意选对型号)
- Android Image Kitchen
- XiaoMiFlash(其实是adb&fastboot的一个GUI外挂)
- MiFlash Unlock(小米手机bootloader解锁工具)
- ADB tools(Android SDK中的一部分)
刷机&ROOT过程
解锁Bootloader
解锁的方法没有什么好多说的,按照官方的教程/指示进行即可。
这里会用到
MiFlash Unlock
,它其实调用的就是标准的fastboot oem lock & unlock
命令,只是unlock
时它需要检验一个小米账户登录后生成的token
也就是在标准的lock & unlock
之上加了一个校验机制
刷原版线刷包
曾经试过将修改过的boot.img直接放置到原版的包中刷机,刷机虽然成功但是无法启动。无奈,重新刷了原版的线刷包。
过程很简单,直接参考官方的教程进行即可。
这里会用到
XiaoMiFlash
工具,其实这个工具就是一个fastboot
的GUI外挂,其实你直接执行Rom压缩包里的flash_all.bat
/flash_all.sh
也是完全可以的。
制作boot.img
制作的过程可以参考Using Android Image Kitchen,这篇文章说得非常详细。
教程比较长,其实核心只有一点 - 修改fstab.qcom
文件,将/system/
分区的标记verify
删除。
为什么要这么修改,可以参考下面的几篇文章(我还没有仔细看)
Verifying Boot
Implementing dm-verity
source code of fs_mgr_fstab.c
Using KitKat verified boot
Device Configuration
android文件系统挂载分析(1)—正常开机挂载
刷入编辑过的boot.img
在bootloader模式下,执行命令
fastboot flash boot modified_boot.img
即将modified_boot.img刷入boot分区
刷入twrp
在官网上下载好设备对应的twrp.img之后,进入bootloader模式,执行命令
fastboot flash recovery twrp.img
在网上看到有些在img名字前边有
%~dp0\
符号,不知道这个代表什么含义。我刷的时候没有加,也正常。
安装SuperSU
需要进入twrp(即recovery模式),开机同时按住音量+和电源键即可进入。
将事先下载好的SuperSU准备好,可以放在SD卡里,也可以使用adb sideload
模式进行安装。我使用的是后者,这个最方便,直接将电脑上的SuperSU安装包加载到手机上进行安装
重启 - 完成
到这一步已经完成了