刷机教程

TL;DR(太长不看版)

  • 大体上分为三步,所有的问题都可归结到这三步之内:
  1. 解锁 BootLoader
  2. 刷入 Recovery
  3. 刷入 Rom(刷机包)
  • 前提注意 极其重要!请一定阅读完毕再进行操作
  • 后续详细步骤教程可以选择性阅读
    • 但是知道得越多,数据丢失的可能性越小

前提

  • 备份好数据
  • Rom
    • 需要与自己手机型号相对应
  • Recovery
    • 支持的 Android 解密方式与 Rom 的 Android 版本号相同
    • Recovey 镜像支持的固件类型也需要与手机型号相同
  • 下载的 ADB(Android Debug Bridge,安卓调试桥接工具)
    • ADB 可以添加至环境变量(Windows 用户)
  • Magisk
    • 如果需要 ROOT 权限可以带上

注意

  • 刷机之前请一定要确保手机电量充足

  • 每次刷机之前最好都备份一下数据,部分情况下必须备份数据:

    1. 如果刷入的 Android 版本与刷入之前的 Android 版本不同:
    • Google 每次升级 Android 版本都会换一种加密方式,各版本不互通
    • 如果不备份数据,意味着数据无法解密,会全部丢失,包括相册,联系人,应用数据等
    1. 厂商推送版本不同时:
    • 小米的 稳定版开发版 ,两者不可以混刷
    1. 更换第三方 Rom
    • 如 PixelExperienceRom 和 LineageOSRom
    • 相当于两个系统,当然不能混刷
  • Rom 包一定要与自己手机型号对应

    • 需要精确到
      • 品牌(OnePlus, Redmi, etc.)
      • 型号(Note 7, Note 10, etc.)
      • 是否为专业版(Note 7, Note 7 Pro, etc.)
    • 否则会因为固件冲突导致硬件不可逆地损坏,成为 Brick(砖头手机)
    • 不要抱有侥幸心理,到时候只能买新手机(因为不保修)
  • 一般手机都会有个独一无二的代号,直接找代号最精确,下面是一些例子

手机型号代号
Redmi Note 7 Proviolet(紫罗兰)
Redmi Note 7lavender(薰衣草)
Xiaomi 12S Prounicorn(独角兽)
OnePlus 5Tdumpling(饺子)
  • 如今市场上,对于刷机比较包容的品牌基本只有 小米(MI)和 一加(OnePlus)
  • 成功刷入 Rom 后请一定设置一个系统密码,然后重启到 Recovery 观察是否能解密
    • Android Version >= 9,详细说明见刷入 Rom
    • 能解密,则可以开始恢复数据了
    • 不能解密,最好另找 Rom 或者 Recovery
    • Recovery 是能救命的,请不要抱有不能解密也没关系的幻想
  • 解锁 BootLoader 会清空手机数据
  • 一般来讲 BootLoader 解锁之后可以 Relock(回锁),但是不建议锁回去,容易出意外

详细步骤流程

解锁 BootLoader

  • 手机厂商为了保护用户数据安全,禁止用户胡作非为,一般默认锁住 BootLoader

  • BootLoader 如字面意思:引导加载器,无法加载引导就无法加载系统

  • 解锁 BootLoader 的两种方式

    • 9008 短接
      • 一般需要短路主板,需要操作硬件
      • 不推荐
    • 手机品牌的官方解锁工具
  • 如果需要解锁,各自按照品牌的提示去做就可以

  • 一般需要用到下面几条命令

    • adb 需要加入 Path 环境变量,否则还需要带上 adb 的路径
    • 手机已经用数据线连接到电脑,并开启 usb 调试
# 重启到 fastboot 模式
# 或者
# 重启同时按住 **音量下键** 和电源键,持续八秒以上
# 两种方法都能重启到 fastboot 模式
adb reboot bootloader

# 确认手机连接到电脑并被 adb 识别
fastboot devices

# 解锁 bootloader
# 如果有解锁码的话还需要再跟一个解锁码参数
fastboot oem unlock

# 查看当前锁状态
fastboot oem get-bootinfo
  • 如果出现 UNLOCKED 字样一般就成功了
  • 各个手机品牌不一样,具体解锁方法可以查看官网教程和其他教程

刷入 Recovery

  • 解锁 BootLoader 成功后,重启到 fastboot 模式
  • 一般需要输入下面这几条命令
# 刷入 Recovery
# 其中 ${path_to_recovery_image} 需要替换为 Recovery 镜像的路径
# 一般为当前目录即可:recovery.img
fastboot flash recovery ${path_to_recovery_image}

# 重启到 Recovery
# 或者
# 重启同时按住 **音量上键** 和电源键,持续八秒以上
# 两种方法都能重启到 Recovery 模式
adb reboot recovery
  • 如果不能重启到 Recovery 模式,则该 Recovery 镜像有问题,需要换一个镜像
  • 可以设定一个时间(一般为三分钟),如果还不能重启,另找镜像重复刷入 Recovery 操作,直到能够正常进入 Recovery 模式为止
  • 一般常见权威 Recovery 镜像
    • TWRP
    • Orange Fox
  • 获取 ROOT 权限一般需要在成功刷入系统 Rom 之后

刷入 Rom

清除类型需要勾选的分区
双清Dalvik/ART Cache,Cache
三清Dalvik/ART Cache,Cache,Data
四清Dalvik/ART Cache,Cache,Data,System
  • 刷入 Rom
    • 找到拷贝到手机内存里的系统 Rom 包,刷入即可
  • 关于 ROOT 和 Magisk
    • Magisk 不能和 Rom 一起刷,因为不起作用
    • 必须要等系统能够正常开机,然后再重启到 Recovery 刷入 Magisk 才起作用
    • 一般来讲刷入 Magisk.apk 之后就有 ROOT 权限了
    • Magisk 更新之后安装包和线刷包合二为一了,都为 Magisk
  • 设置系统密码后,重启到 Recovery 观察是否能解密
    • Android 9 以上,厂商会自动锁定 system 来防止用户进行危险操作
    • 低版本不会出现提示解密的窗口,Data 分区不加密

恢复数据

  • 将之前备份的数据复制到手机上,按照指引恢复数据即可
  • Enjoy your new system!

补充

  • 其实刷机分两种
    • 卡刷
      • 将刷机包拷入到手机内存,使用 Recovey 直接刷入
      • 一般为相同系统更新,清除类型为双清
        • 要不然系统和用户数据都没了
      • 有限制,必须要把想要更新的 ROM(Android系统)拷贝到 SD 卡 或者通过 fastboot 拷贝到内部存储中
    • 线刷
      • 利用电脑使用 fastboot 刷入
      • 一般为升级 Android 版本和更换一个完全不同类型的系统
        • Android 10 -> Android 13
        • LineageOS -> PixelExperienceOS
        • 或者兼而有之
      • 清除类型一般为四清,毕竟都换系统了,也备份数据了
  • 手机文件存储结构
    • 此处显示的为 Google 推出 A/B 分区之前的结构示意图
             手机                                           电脑
+---------------------------+
|        bootloader引导区    |                              BIOS
+---------------------------+--> fastboot 线刷模式
| boot启动区 | recovery恢复区 |                          MBR 硬盘引导区
+-----------+---------------+--> recovery 恢复界面
|         system系统区       |                系统文件(Windows, Program Files, etc.)
+---------------------------+--> 手机界面                 用户图形界面
  • 手机启动过程
    • 流程
      • BootLoader 引导区代码
        • 对硬件进行必要的初始化和检测错误
        • 若启动时没有参数则正常启动
        • 若启动时有相应的参数,则进入 fastboot 线刷模式或 Recovery 恢复界面
      • 加载 Boot 启动区代码
      • 加载 system 系统区代码
      • 显示手机图形界面,正常使用
    • fastboot 手机上一般没有操作界面
  • 刷机没有那么容易成砖,一般就几种情况
    • 刷到一半没电了
    • 刷入了不兼容的固件(Rom, Recovery, etc.)

附录:需要备份的常见数据

  • ADB
  • Rom
    • 目前使用的 Rom
    • 即将刷入的 Rom
  • Recovery
    • 目前使用的 Recovery
    • 即将刷入的 Recovery
  • 应用程序备份
    • Android 高版本推荐 SwiftBackup
    • Android 低版本推荐 TitaniumBackup
    • 备份完毕之后,将文件从手机拷贝到电脑上
  • Magisk
  • 图片,视频
    • 如果有云备份就不用
    • 但是最好还是备份一下
  • 电子书
    • 建议专门建立一个文件夹
  • 下载内容
    • 建议配合存储空间隔离使用,只备份一个文件夹
  • 各种应用程序的配置文件
    • 存储空间隔离
    • list 背单词
    • App Ops
    • etc.

附录:清除类型和分区说明

双清

  • Dalvik/ART Cache,Cache
  • 只清除缓存,不清除系统和用户数据
  • 双清一般用在相同系统版本进行 OTA 升级时
    • 比如 LineageOS 16 的周更包,就可以使用双清刷入

三清

  • Dalvik/ART Cache,Cache,Data
  • 多了用户数据,三清后刷机失败,还可以进入系统
  • 刷机失败:Recovey 在输入检查时出现错误
  • 如果刷机进行中,手机突然没电,无论怎么清都没用,手机报废

四清

  • Dalvik/ART Cache,Cache,Data,System
  • 系统、缓存、用户数据等全部清除
  • 清除了之后如果刷机失败,会进不去系统

分区说明

  • Wipe Dalvik Cache
    • 清空虚拟机缓存
    • 可以解决一些程序 FC 的问题
  • Wipe Cache
    • 清除系统缓存
    • 刷机前执行
    • 系统出问题也可尝试此选项,一般能解决
  • Wipe System
    • 清除操作系统数据
    • 想要干净的可以清除此项
  • Wipe Data
    • 清除用户数据并恢复出厂设置
    • 刷机前必须执行的选项
  • Wipe Internal Storage
    • 清除内置存储
  • Wipe USB OTG
    • 清除挂载的 usb 设备,比如 U 盘等

致谢

  • 技术支持:逐雪
  • 文案:南国微雪
  • 排版:南国微雪
  • 校对:
  • 引用:少数派社区

协议