android手机刷机root教程

文章最后更新时间为:2021年11月02日 12:29:00

1. 为什么需要root权限

安卓是基于 linux 内核的系统,在 linux 中用户分为 root 账户和普通用户,在安卓系统中也是一样,普通用户权限较小。

在安卓设备出厂时,由于运营商和硬件制造商的限制,用户通常不具有 root 权限,所以当我们需要对系统做一些高级操作时,获取 root 权限通常就很必要了。下面是获取 root 权限的好处:

  1. 完全控制设备
    没有root权限前,我们甚至无法访问安卓的 /data/data 目录,在 root 后我们就可以完全控制整个安卓设备,浏览整个文件系统,修改系统文件等等。
  2. 安装其他应用
    拥有 root 权限的用户可以安装一些具有特殊功能的应用,这些应用被称为 root 应用,比如 busybox 就是一款能提供更多 linux 命令的应用,这些命令在 root 前是不能执行的。
  3. 更多的特性和个性化功能
    这也是大多数人刷机的原因,在安卓设别上安装第三方的 recovery 和 room 之后,可以自定义我们的系统 ui 和功能。

当然 root 肯定也有坏处,权限开放的越多,风险就越大,在默认情况下,每个应用都在自己的沙盒中运行,拥有不同的用户 ID,应用无法相互访问其他 app 的资源和数据。但是一旦该应用拥有 root 权限,那么它能够读取设别上其他应用的数据,比如提取短信、通话记录联系人等数据。

下面以小米 readme 9 手机为例,记录一下 root 刷机的整个过程。

2. 解锁 bootloader

boot loader 是设备启动后最先运行的程序,其作用是负责维护和启动硬件和安卓内核,加载内核到内存,使内核开始执行。因为通常是硬件厂家编写 boot loader,所以它一般是锁定的,这保证了中断用户无法更改设别的固件,要想在设别上运行第三方镜像,必须先解锁 boot loader。

小米提供了解锁的官方办法,进入 https://www.miui.com/unlock/download.html ,下载解锁工具,这个工具只能在 windows 上运行。

然后进行如下操作:

1.手机进入“设置 -> 开发者选项 -> 设备解锁状态”中绑定账号和设备;(需要绑定7天以上)
2.手动进入 Bootloader 模式(关机后,同时按住开机键和音量下键);
3.通过 USB 连接手机,点击 “解锁”按钮;

需要注意的是:解锁会清除所有数据!

这里比较坑的一点是,绑定账号和设备需要超过7天,目前还没有比较好用的办法绕过,慢慢等吧。

如果已经进入 fastboot 界面,但是解锁工具始终显示未连接,数据线电脑 USB 口没有问题的情况下就是驱动的问题解决办法:
1、下载最新的小米解锁工具
2、解压之后,在小米解锁工具文件夹内找到 driver 文件夹
3、连接 fastboot 模式下的手机
4、在我的电脑右击-管理-设备管理器下找到安卓手机,然后右击更新驱动程序,选择浏览我的电脑以查找驱动程序,再选择刚才小米解锁工具下的 driver 文件夹
5、重新连接手机即可

2021-06-04T02:06:34.png

如下所示,解锁完毕。

2021-06-17T11:36:36.png

设备解锁后,打开手机,点击设置 --> 开发者选项 --> 设别解锁状态,会显示当前设备已解锁。

3. 刷入第三方 recovery

Android 手机上正常运行两个系统,一个是正常使用的 Android 系统,还有一个是 recovery 系统,Recovery 是 Android 手机备份功能,指的是一种可以对安卓手机内部的数据或系统进行修改的模式。在这个模式下可以,对已有的系统进行备份或升级,也可以在此恢复出厂设置。

每一款手机都有官方的 recovery,但是一般原厂的rec没怎么有使用价值,官方的 recovery 功能单一且弱,且不支持刷入第三方的 room。

所以刷机时我们都会刷入第三方的 recovery ,比如 TWRP。TWRP 是一个开源的社区项目,是目前最常用的 Recovery 系统,打开官方 https://twrp.me/ ,找到手机对应的 twrp,然后点击 Americas 或者 Europe 都可以跳到下载页面,下载到一个.img文件, 这就是我们要刷进去的 TWRP 了。

我刷机的时候,官方上并没有找到 readme 9 的 TWRP,这种情况下,也可以百度搜索手机型号加第三方 rec,一般都有国人官改的 TWRP,这里我直接用 wzsx150 (https://weibo.com/u/6033736159) 大佬出品的定制版 TWRP 了,下载完压缩包后,解压即可看到 TWRP 的 img 文件了。

备注:twrp 目前还不支持 android 10,需要找找有没有官改版的,如果官网没有,且没有搜到官改版本的twrp,则可以跳过刷入twrp这一步,直接进入下一步,刷入magisk

安卓10系统在recovery这块有一些调整主要体现在以下几点:
1.将原有/sbin模式改为类似于系统下的/system/*的方式,这对twrp来说就很麻烦,运行程序路径和链接路径都需要修改,挂载system等操作可能就不是那么顺等等
2.采用动态分区技术,将system、vendor等改为逻辑分区存放在super分区里,正常情况下是看不到system、vendor等分区的,也无法直接挂载和修改。需要twrp适配。
3.新增用户空间fastboot模式,其实就是recovery模式下也可以支持fastboot命令。需要twrp适配。

下面我实操将 TWRP 刷入手机,首先电脑上下载安装好 adb 工具,然后手机开启 usb 调试模式,连接电脑。

# 确保设备正确连接电脑
adb devices

# 重启到bootloader模式
adb reboot bootloader

# 输入twrp
fastboot flash recovery recovery-TWRP-3.4.2B-0108-REDMI9-CN-wzsx150.img

# 重启手机到Fastboot
fastboot reboot recovery

刷入完成后,进入 recovery 界面如下所示:

刷完不能重启,比如进入 recovery 模块,直接重启会导致 TWRP 被官方 rec 所覆盖。

进入 TWRP 界面后,点击高级--> 关闭 AVB2.0 校验(启动校验和 DM 校验同时勾选),然后先不要重启,停在这里,继续下一步操作。

4. 刷入magisk

Magisk 是出自一位台湾学生 @topjohnwu 开发的 Android 框架,是一个通用的第三方 systemless 接口,通过这样的方式实现一些较强大的功能。也是我们用来获取 root 权限的主流方式,可以方便地管理各个 app 的 root 授权。

实现原理:由于它是通过启动时在 boot 中创建钩子,把 /data/magisk.img 挂载到 /magisk,构建出一个在 system 基础上能够自定义替换,增加以及删除的文件系统,所有操作都在启动的时候完成,实际上并没有对 /system 分区进行修改(即 systemless 接口,以不触动 /system 的方式修改 /system)。

其github地址为:https://github.com/topjohnwu/Magisk

下面来刷入magisk,有几种种方式:

方式一:如果没有刷入TWRP,可以先刷入room,再替换boot.img即可。这一步可以参考下面两篇文章:https://www.bilibili.com/video/BV1NA411L78Q/https://blog.isteed.cc/post/pixel-3-install-magisk/ 。 因为我是成功刷了twrp进去,所以这里的步骤就不演示了。

方式二:如果 上一步成功刷入 TWRP, 我们可以直接在 TWRP 界面安装 magisk,过程也很简单:

  1. 下载 magisk 安装包 https://github.com/topjohnwu/Magisk
  2. 将后缀从 apk 改为 zip,然后拷贝到安卓手机里
  3. 在 rec 中点击安装 --> 选中刚才的 zip --> 右滑安装 --> 安装完成后点击重启

重启后,点击桌面上的 magisk 按钮打开安装即可。安装完成后打开是如下界面:

2021-06-18T16:28:25.png

至此,magisk 安装完毕。手机 app 已经可以获取 root 权限了。可以看到下图中用 adb 获取成功获取到 root 权限:

2021-06-18T16:30:05.png

5. 刷入 room

刷系统有两种方式,卡刷和线刷:

线刷是用 fastboot,一般都是直接刷镜像,由 uboot 以直接写入闪存的办法把镜像直接写到闪存对应的位置(或者说分区)。线刷包为系统底包,一般是 tg 压缩文件,里面是一大堆 img 文件,某些底包里也有文件夹。

卡刷一般是在 recovery 里进行的,用 SD 卡作为储存介质来存放 ROM 文件(手机操作系统文件),本质是对系统文件替换的过程,不会重新刷写整个分区,只是替换部分系统分区文件来实现对手机内软件版本升级或更换第三方操作系统。卡刷包即 rom包,一般是一个 zip 压缩文件,里面有 system 文件夹和其他一两个文件夹。

线刷可以救转,但一般情况下都是使用卡刷,比较方便,卡刷过程如下:

  1. 手机进入 recovery 模式,然后把手机连接到电脑
  2. 在 recovery 中,要做的双清操作,也就是清除数据。点击清除点击-->格式化 data --> 点击输入'yes',双清结束后,重启到 recovery 模式。
  3. 在电脑上下载对应的 rom 刷机包,把 rom 包复制到手机上。
  4. 在 recovery 模式中,点击安装--> 选中 rom 包,开始刷机
  5. 刷机完成后重启即可。

6. 刷入edxposed

刷入 EdXpose 分为三步:

  1. Magisk 安装 Riru-Core,可在线搜索 Riru-Core 或者 官方仓库找到 riru-core 安装,安装后重启
  2. Magisk 安装 edXposed,可在线搜索 edXposed (yahfa和sandhook版本二选一)或者 官方仓库找到 edxpose安装,安装后重启
  3. 下载EdXposed 的app:https://github.com/ElderDrivers/EdXposedManager/releases

7. 总结

在实际操作过程中,刷完 recovery 后没有取消 AVB 校验,导致重启后,无限卡死在启动 logo 死循环中。

这时候看看能不能进去 recovery 模式,如果不能的话,看看能不能进 fastboot 模式线刷。miui 官方线刷教程:https://www.miui.com/shuaji-393.html

需要注意的是,线刷时软件右下角不要勾选全部删除并 lock,不然又要解锁一遍!这里神坑。

2021-06-18T17:11:03.png

8. 参考

1 + 6 =
1 评论
    LF-Lian Chrome 104 OSX
    2022年08月20日 回复

    好详细!真的厉害