手机刷机相关知识

recovery/bootloader/fastboot关系

recovery和android一样,是手机上的两个独立系统(理解为电脑装了双系统)。手机启动时是可以选择启动哪一个的,默认是android

类比于电脑的PE系统,可以对android系统进行刷机、升级、备份等操作

例如,你可以提前在手机上下载好新的android系统,通过进入recovery模式安装该新系统,即卡刷

因为Google官方的recovery系统不好用,所以有人开发出第三方的twrp recovery

bootloader是连接系统和硬件的桥梁,类似bios,主板上电之后,首先bl会启动先初始化硬件并做映射,然后才会启动系统。相当于android或recovery的爸爸

现在的很多手机为了防止刷其他的系统,就会在bootloader上加锁,所以刷系统前需要解锁bootloader。

fastboot可以理解为手机的一个运行模式或一个接口,通过它你就可以直接向bootloader发出指令,例如,当你的手机运行于fastboot模式下,将手机连接电脑,并在电脑上下载android或者recovery的镜像,然后通过命令让bl安装该镜像,即线刷

OTA:空中升级,即直接通过无线网下载镜像进行升级,而不用线刷或卡刷

OEM:bootloader的开关,只有打开这个开关才能解锁bootloader

bootloader/BIOS/UEFI/Legacy

计算机的硬件千差万别,甚至于你可以自己动手组装一部手机或者一台电脑。为了让操作系统能够兼容各种机器,操作系统只能使用虚拟硬件(类似于java内存模型)。在x86架构中,这种用于抽象出虚拟硬件的东西叫做BIOS,在arm架构中就叫做bootloader。

UEFI和Legacy就是两种不同的BIOS(都是指x86下的),可以说,UEFI是新一代的BIOS,传统BIOS统称Legacy。事实上,UEFI只是一个规范,具体的实现得看厂商(类似于jvm规范)。

可以简单理解为:Legacy需要根据不同的硬件进行汇编开发,而UEFI则使用统一的c语言接口,通用性更强。类比于在原生操作系统上开发和在java虚拟机上做开发的区别。

更直观的来看就是:Legacy相当于直接在硬件上烧录一个程序,这个程序的功能就是加载一个系统。而UEFI(说的是UEFI的具体实现)则可以直接看作一个系统,它可以运行各种程序或驱动,甚至可以安装文本编辑器,浏览器等,而操作系统就是安装在其里面的一个程序

现在很多基于arm的手机或者平板都开始支持UEFI(但仍然叫bootloader),使得能在上面安装windows、Ubuntu等电脑操作系统

刷机步骤:

  1. 下载小米官方解锁工具解锁,手机关机后按住音量下加电源键进入fastboot模式。此时可能解锁工具提示找不到设备,有可能是usb口的问题,换个插口试试
  2. 解锁后会清空设备并重启
  3. 将下载好的系统镜像解压缩,并将 .img 文件传输到手机
  4. 电脑上下载 platform-tool工具(ADB工具)压缩包,解压缩,cmd进入该目录
  5. 进入fastboot模式:
    1. cmd输入 ./fastboot devices 命令查看是否已经进入fastboot模式
    2. ./fastboot flash boot XXXXX_XXXXX.img 刷入系统镜像
    3. Fastboot flash boot xxx.img是刷入主系统镜像,若要刷入recovery(例如twrp)则使用 fastboot flash recovery xxx.img,若什么镜像都不想安装,则直接使用 fastboot boot xxx.img命令
    4. 提示完成后输入 ./fastboot reboot 重启手机

刷magisk:

magisk通过修改替换boot.img文件的形式获取root权限。

什么是boot.img?

通过解压miui的卡刷包可以看到里面有各种各样的xxx.img,其中boot.img即为android内核文件,一般来说,不管你是什么系统,只要是基于android的,并且android版本一样,那么这个boot.img就可以互换,不管是miui还是其他什么ui,指的就是该内核的ui

  1. 下载官方卡刷包(需和手机现在系统的版本一致,实在没有android大版本一直应该也可以),解压,提取payload.bin文件(如果解压后就有boot.img则省略下一步)
  2. 下载payloadbin提取软件,可以提取其中的各种 xxx.img
  3. 复制上一步提取的boot.img到手机,并使用手机上的magisk manage软件修改boot.img,形成一个新的 Magisk_xxx.img
  4. 将上一步的magisk_xxx.img复制回电脑,手机连接电脑并进入fastboot模式,执行fastboot flash boot Magisk_xxx.img即可刷入修改后的内核镜像,(可选,因为貌似不这样做也没问题:可以同时也将提取出来的vbmeta.img也复制到adb工具目录下,刷入bootimg时也将该img文件刷入。刷入完成后执行 ‘fastboot.exe –disable-verity –disable-verification flash vbmeta vbmeta.img’命令关闭AVB校验,avb校验img文件的完整性),接着重启手机即可

Leave a Comment