科普:什么是小米刷机中的FASTBOOT

news/2024/11/9 0:36:31/

目录

  • 1. 什么是手机上的FASTBOOT模式?
  • 2. 如何进入与退出FASTBOOT模式?
    • 2.1 进入方式
    • 2.2 退出方式
  • 3. 如何在PC端安装FASTBOOT驱动?
  • 4. 怎么开启FASTBOOT命令提示符?
  • 5. 目前FASTBOOT命令有哪些类型?
  • 6. 常用的FASTBOOT命令都有哪些?
    • 6.1 fastboot devices 查看已连接设备
    • 6.2 fastboot getvar product 查看设备内部代号
    • 6.3 fastboot getvar anti 查看防回滚机制版本号
    • 6.4 fastboot getvar all 查看所有设备信息
    • 6.5 fastboot -w 清空所有数据
    • 6.6 fastboot flash <分区名> <镜像文件名或路径> 烧录镜像到分区
    • 6.7 fastboot erase <分区名> 擦除分区内数据
    • 6.8 fastboot boot <内核镜像文件名或路径> 临时启动
    • 6.9 fastboot oem device-info 查看当前BL锁状态(非MTK)
    • 6.10 fastboot oem lks 查看当前BL锁状态(MTK)
    • 6.11 fastboot oem lock 开启BL锁保护
    • 6.12 fastboot oem edl 进入高通008救援模式
    • 6.13 fastboot reboot 重启进入系统
    • 6.14 fastboot oem poweroff 拔掉数据线后关机
    • 6.15 fastboot oem reboot-recovery 重启进入Recovery模式
  • 7. 执行FASTBOOT命令要注意什么?
  • 8. FASTBOOT命令返回值有何含义?

1. 什么是手机上的FASTBOOT模式?

顾名思义,FASTBOOT这个名词可以理解为“快速启动”的中文意思。但在安卓手机中,则代指一种比Recovery更底层的刷机救援模式,亦被称作“引导模式”、“线刷模式”或“Bootloader模式”。与主要采用手机屏幕及实体按键交互的Recovery模式不同,在FASTBOOT模式下,需要将设备通过数据线连接至PC端,并通过CUI命令行或GUI图形界面的方式,向设备传输各种指令来实现操作(本质上还是CUI交互)。

配合各种不同的指令,FASTBOOT模式具有强大而丰富的功能特性,刷机和解锁也只是其中最常用到的操作而已。

2. 如何进入与退出FASTBOOT模式?

目前所有的小米手机都可以通过如下方式进入和退出FASTBOOT模式:

2.1 进入方式

  • 同时长按电源键+音量下键进入(实测在电源键坏了的情况下,长按音量下键也可以)
  • 关机及关机充电状态下:按上述组合键约3-6秒后进入。
  • 重启状态下:一点重启就按上述组合键约10-15秒

当在手机屏幕看到如下图所示的“米兔修机器人”画面时,则说明已经成功进入FASTBOOT模式。
在这里插入图片描述

2.2 退出方式

  • 在FASTBOOT模式下长按电源键约7-15秒重启进入系统。
  • 通过“fastboot reboot”及“fastboot oem poweroff”命令重启进入系统或拔线关机(下文有详细说明)。
  • 部分机型在FASTBOOT模式下不插入数据线,5分钟到半小时内会自动重启或关机(不推荐,可能会很费电)。

3. 如何在PC端安装FASTBOOT驱动?

与其他多数外设硬件一样,必须通过对应的驱动程序,才能在手机与PC端建立有线通信。所以在插入手机之前,需要先在PC上妥善安装FASTBOOT模式的相关驱动。

在PC端(Windows XP及更高版本)下载MiFlash刷机工具并解压,然后运行其中的XiaoMiFlash.exe并点击窗口顶部的Driver,接着在弹出的窗口中点击安装按钮,安装FASTBOOT相关驱动程序。
在这里插入图片描述

4. 怎么开启FASTBOOT命令提示符?

所谓FASTBOOT模式的本质。其实就是通过向设备发送对应的命令,并实现相应的操作和功能。而MiFlash(线刷工具)、解锁工具、小米助手,以及各种第三方刷机工具等基于GUI图形化界面的程序,也是将各种命令配合条件判断语句等组成脚本,来实现“一键傻瓜式解锁刷机”的功能。

其实我们也可以使用CUI命令行的方式,直接向手机端发送对应的命令,并获取想要的信息或完成各种操作。虽然没有软件界面的便捷美观,但可实现的功能却远比图形化工具更加强大,且整个执行过程都非常直观透明,即使失败也能获取到最为完整的报错信息。

将手机进入FASTBOOT模式,并通过数据线连接至PC,进入MiFlash刷机工具文件夹下的\Source\ThirdParty\Google\Android”目录下,然后在地址栏中输入“cmd”并按键盘上的回车(Enter)键,打开命令提示符窗口。此时可以输入“fastboot --version”命令后回车,并查看当前FASTBOOT软件的版本号。而在下文中所列出的相关命令,也需要在该窗口中输入并执行。
在这里插入图片描述

5. 目前FASTBOOT命令有哪些类型?

可以通过在FASTBOOT命令提示符窗口中执行“fastboot -h”命令,来获取可能用到的命令参考及语法格式帮助,英文不好的同学也可以借助翻译软件阅读。但由于不同机型和处理器的差异,本帮助文档并未涵盖所有可以用到的命令,具体情况还取决于插入的设备本身。

目前几乎所有的FASTBOOT命令,都可以大致分为以下几类:

  • 输出信息类:仅向PC端输出该设备的对应信息,例如当前机型内部代号、BL锁开启状态、防回滚机制状态等,通常不会改写手机中的数据。

  • 执行动作类:仅执行对应的常规动作,例如重启进入系统、Recovery或高通9008救援模式、拔掉数据线后关机等,通常不会改写手机中的数据。

  • 擦写数据类:会擦写手机中的数据或修改相关设置,且大多需要解锁Bootloader后才能被成功执行。例如擦除分区、焼写镜像、开启及关闭BL锁等,在执行此类命令前请务必谨慎,并尽量对重要数据进行妥善备份。不当的操作可能会造成设备无法开机,甚至不可逆的严重损坏。

6. 常用的FASTBOOT命令都有哪些?

6.1 fastboot devices 查看已连接设备

  • 命令类型:输出信息类
  • 命令作用:列出当前已进入FASTBOOT模式,且与PC连接正常的所有设备。
  • 支持机型:所有机型
  • 适用场景:将设备连接PC后,可先通过该命令检测连接状态,在执行后续的操作。
  • 使用方法:直接输入并回车执行,会列出当前所有已连接设备及对应序列号。如果输出结果为空,说明未插入设备,设备未进入FASTBOOT状态,或驱动程序未就绪。
  • 解除BL锁:不需要
  • 注意事项:如果使用CUI命令交互,建议只连接一台设备。如果同时连入多个设备,通常仅对该列表中排在首位的设备有效。
    在这里插入图片描述

6.2 fastboot getvar product 查看设备内部代号

  • 命令类型:输出信息类
  • 命令作用:输出该机型内部代号名称(线刷包文件名前缀)
  • 支持机型:所有机型
  • 适用场景:当不知道具体机型,且该设备又无法开机和查看串号时,可以通过查询内部英文代号来确定。通常该机型的内部代号,与其线刷包文件名前缀是相对应的。
  • 使用方法:直接输入并回车执行,即可看到该机型的内部代号名称。
  • 解除BL锁:不需要
  • 注意事项:如果在官网下载的线刷包文件名前缀,与该机型内部代号不匹配请勿刷入,否则可能会造成设备无法开机。此外小米3 电信/联通版与小米4内部代号均为“cancro”,但线刷包却是不通用的,请勿混淆刷入。
    在这里插入图片描述

6.3 fastboot getvar anti 查看防回滚机制版本号

  • 命令类型:输出信息类
  • 命令作用:输出防回滚机制(ANTI)版本号
  • 支持机型:具有防回滚机制的机型(目前在售的机型均支持)
  • 适用场景:如果想线刷旧版本降级,建议先使用此命令查看当前防回滚机制状态。
  • 使用方法:直接输入并回车执行,如果所显示的ANTI版本输出值大于1,在一个时间点之前的旧版本线刷包可能无法刷入;如果ANTI版本不超过1,未显示数值或输出“getvar:anti FAILED (remote: GetVar Variable Not found)”的报错信息,则说明该设备尚不会对低版本ROM进行限制。
  • 解除BL锁:不需要
  • 注意事项:如果设备已限制回滚低版本系统,强制刷入旧版本包很可能无法开机。
    在这里插入图片描述

6.4 fastboot getvar all 查看所有设备信息

  • 命令类型:输出信息类
  • 命令作用:输出该设备的所有信息
  • 支持机型:大部分机型
  • 适用场景:查看当前BL锁状态、获取分区名
  • 使用方法:直接输入并回车执行,会输出该设备的所有信息,其中不仅有上述提到的设备代号名称,和防回滚机制版本号,还包括CPU编号、 电池电压(mV)、设备序列号,以及各分区所在的内存地址等内容。
  • 解除BL锁:不需要
  • 注意事项:输出的设备信息仅供参考
    在这里插入图片描述

6.5 fastboot -w 清空所有数据

  • 命令类型:擦写数据类
  • 命令作用:清除手机中所有数据,等同于系统中的“恢复出厂设置”,或Recovery模式的“清空所有数据”操作。
  • 支持机型:大部分机型
  • 适用场景:当无法进入系统和Recovery模式时,可以使用该命令清除所有数据。
  • 使用方法:输入该命令并回车单独执行,亦可为其他命令附加“-w”选项一起执行,如执行“fastboot -w reboot”命令后,将在清空所有数据后重启进入系统。
  • 解除BL锁:需要
  • 注意事项:如果手机可以开机且能正常使用,在执行该命令前,需提前对重要数据进行妥善备份。
    在这里插入图片描述

6.6 fastboot flash <分区名> <镜像文件名或路径> 烧录镜像到分区

  • 命令类型:擦写数据类

  • 命令作用:烧录img、bin、mbn、elf等镜像文件内容到指定分区,支持刷入的分区名可通过上述“fastboot getvar all”命令查询。

  • 支持机型:所有机型

  • 适用场景:单独刷入boot、Recovery、cust等分区镜像,或当手机始终卡在小米logo界面无法开机,且线刷和清空数据都无法解决时,可以使用该命令依次烧录对应线刷包“images”目录下,所有能刷入的镜像文件。

  • 使用方法:
    – ① 将需要烧录的镜像文件放置在“fastboot.exe”所在的同一个目录下,然后执行对应的烧录命令。如烧录“recovery.img”镜像文件到Recovery分区,则执行“fastboot flash recovery recovery.img”命令;
    – ② 先输入“fastboot flash <分区名>”,敲一下空格键后,在将需要烧录的镜像文件直接拖拽进命令提示符窗口中,并获取该文件的绝对路径,如烧录“recovery.img”镜像文件到Recovery分区,且文件位于“C:/REC”目录下,则拖拽文件后应执行“fastboot flash recovery C:/REC/recovery.img”命令。

  • 解除BL锁:需要

  • 注意事项:烧录前请确定镜像文件与机型和分区匹配,并尽量提前备份重要数据,在操作执行结束前,切勿拔掉数据线或关闭命令提示符窗口。
    在这里插入图片描述

6.7 fastboot erase <分区名> 擦除分区内数据

  • 命令类型:擦写数据类
  • 命令作用:擦除指定分区内的数据(并非格式化分区),支持擦除的分区名可通过上述“fastboot getvar all”命令查询。
  • 支持机型:所有机型
  • 适用场景:当无法通过上述命令烧录镜像文件到指定分区时,可使用该命令先擦除分区内数据,在尝试重新刷入。
  • 使用方法:输入<分区名>并回车执行,如需要擦除Recovery分区,则执行“fastboot erase recovery”命令。
  • 解除BL锁:需要
  • 注意事项:执行前尽量提前备份重要数据,对于不熟悉的分区需谨慎擦除,否则可能会造成设备无法开机(甚至无法再次进入FASTBOOT模式)的风险。
    在这里插入图片描述

6.8 fastboot boot <内核镜像文件名或路径> 临时启动

  • 命令类型:执行动作类
  • 命令作用:将PC上可引导启动的内核镜像文件下载到设备,并用该内核临时引导启动(类似于在PC端用U盘启动PE系统)
  • 支持机型:所有机型
  • 适用场景:部分机型能直接使用该命令,临时进入第三方Recovery模式界面,可解决无法刷入Recovery的问题。
  • 使用方法:与上述“fastboot flash”命令类似
  • 解除BL锁:需要
  • 注意事项:该命令仅用于临时启动,不会烧录和替换内核文件到存储中。
    在这里插入图片描述

6.9 fastboot oem device-info 查看当前BL锁状态(非MTK)

  • 命令类型:输出信息类
  • 命令作用:输出当前BL锁状态
  • 支持机型:除联发科处理器外具有BL锁的机型(小米4c及之后的机型)
  • 适用场景:查看当前BL锁状态
  • 使用方法:直接输入并回车执行,如果“(bootloader) Device unlocked”项所显示的数值为“false”表示未解锁,数值为“true”则表示已解锁。
  • 解除BL锁:不需要
  • 注意事项:处理器为联发科的机型(如一些红米或Redmi机型)不支持该命令
    在这里插入图片描述

6.10 fastboot oem lks 查看当前BL锁状态(MTK)

  • 命令类型:输出信息类
  • 命令作用:输出当前BL锁状态
  • 支持机型:处理器为联发科且具有BL锁的机型
  • 适用场景:查看当前BL锁状态
  • 使用方法:直接输入并回车执行,如果“(bootloader) lks”项所显示的数值为“1”表示未解锁,数值为“0”则表示已解锁。
  • 解除BL锁:不需要
  • 注意事项:处理器为非联发科的机型不支持该命令
    在这里插入图片描述

6.11 fastboot oem lock 开启BL锁保护

  • 命令类型:擦写数据类
  • 命令作用:开启BL锁保护
  • 支持机型:具有BL锁且未开启Root权限的所有机型
  • 适用场景:除了重新开启BL锁外,部分机型还可以用该命令清除所有数据(即使BL锁已开启也能重复执行,等同于在解锁后执行“fastboot -w reboot”命令)
  • 使用方法:直接输入并回车执行,部分机型将在清空所有数据后重启进入系统
  • 解除BL锁:不一定需要
  • 注意事项:在解除BL锁时需要清除数据的机型,通过上述命令重新开启BL锁后,通常还会再次自动清空所有数据,所以在执行前需提前备份重要数据。对于已刷入开发版系统且开启Root权限的设备,请勿使用该命令直接开启BL锁,否则极有可能导致手机无法开机的情况。
    在这里插入图片描述

6.12 fastboot oem edl 进入高通008救援模式

  • 命令类型:执行动作类
  • 命令作用:进入高通008救援模式(EDL)
  • 支持机型:处理器为高通骁龙的机型
  • 适用场景:无需工程线或进行短接操作,直接进入高通008刷机模式。
  • 使用方法:直接输入并回车执行,然后手机会直接黑屏,并在PC端设备管理器中显示对应端口。此时长按电源键约10-15秒可重启进入系统。详情请查看9008模式深刷刷机教程。
  • 解除BL锁:需要
  • 注意事项:在高通9008模式下刷机失败率较高且风险更大,可能会造成设备无法开机(甚至无法再次进入FASTBOOT模式)的风险,且部分机型在刷机过程中,需要登录具备刷机权限的小米帐号才能继续,非特殊情况下不推荐使用。
    在这里插入图片描述

6.13 fastboot reboot 重启进入系统

  • 命令类型:执行动作类
  • 命令作用:退出FASTBOOT模式并重启进入系统,等同于长按电源键强制重启。
  • 支持机型:所有机型
  • 适用场景:在FASTBOOT模式下的操作完成后,执行该命令重启进入系统。
  • 使用方法:直接输入并回车执行,等待重启进入系统。
  • 解除BL锁:不需要
  • 注意事项:无
    在这里插入图片描述

6.14 fastboot oem poweroff 拔掉数据线后关机

  • 命令类型:执行动作类
  • 命令作用:在拔掉数据线后立即退出FASTBOOT模式并关机
  • 支持机型:部分机型
  • 适用场景:当手机始终卡在小米logo界面,或系统被锁定等导致无法关机,并需要进行充电或售后维修时,可以使用该命令关机,以避免电能的持续消耗,此时连接充电器还能看到剩余电量。
  • 使用方法:直接输入并回车执行,拔掉与PC连接的数据线后关机。
  • 解除BL锁:不一定需要
  • 注意事项:部分机型可能不支持,或需要关闭BL锁后才能执行成功.
    在这里插入图片描述

6.15 fastboot oem reboot-recovery 重启进入Recovery模式

  • 命令类型:执行动作类
  • 命令作用:退出FASTBOOT模式并重启进入Recovery模式
  • 支持机型:部分机型
  • 适用场景:在刷入第三方Recovery后,使用该命令直接进入Recovery模式。
  • 使用方法:直接输入并回车执行,等待重启进入Recovery模式。
  • 解除BL锁:不需要
  • 注意事项:部分机型可能不支持,或重启后直接进入系统而非Recovery模式。
    在这里插入图片描述

7. 执行FASTBOOT命令要注意什么?

在输入和执行上述FASTBOOT命令时,除每个命令所单独列出的具体注意事项外,还需要格外注意以下事项:

  • 在输入命令时,除“fastboot”和文件及其绝对路径不强制要求区分大小写外,包括附加选项在内的其他字母一律为小写,且之间的空格分隔不能被省略,否则可能会导致无法执行成功。

  • 一些命令在执行过程中可能会卡住,此时请耐心等待操作结束,期间切勿拔掉数据线或关闭命令提示符窗口。如果始终卡在光标处,且未输出任何的信息,可以先按住键盘上的“Ctrl”键后再按下“C”键强制终止操作。

  • 最好仅在一个命令提示符串口中操作,请勿通过多个不同的窗口同时向设备发送命令,否则可能会造成冲突及执行失败。

  • 建议将MiFlash工具解压至不包含中文和特殊字符的目录中,推荐放置在本地任意磁盘分区根目录下。且在需要烧写分区或引导启动时,镜像文件的命名及其绝对路径,也尽量避免包含中文和特殊字符,否则在安装FASTBOOT驱动或执行命令时,可能会出现一些莫名其妙的问题(来自一位热心米粉的提醒)。

8. FASTBOOT命令返回值有何含义?

在执行FASTBOOT命令的过程及结束后,都会在命令提示符窗口中输出一些信息,其中除了执行结果或说明文本外,还有一些固定的返回值内容,通过它们即可直观反映操作情况,以及造成失败的具体原因。

  • finished. total time: XXXs:代表该命令已经执行完毕,其中“XXX”为执行过程中已消耗的秒数。
  • OKAY [ XXXs]:通常代表部分或全部操作执行成功,其中“XXX”为执行过程中已消耗的秒数。
  • FAILED (remote: XXX):通常代表部分或全部操作执行失败,或命令输入有误,其中“XXX”为具体报错信息。
  • waiting for any device:代表未插入设备,设备未进入FASTBOOT状态,或驱动程序未就绪。
  • 直接输出FASTBOOT帮助信息或“fastboot: usage: unknown command XXX”:代表命令或语法格式输入有误,其中“XXX”为输入错误的命令。

enjoy!

参考来源:https://web.vip.miui.com/page/info/mio/mio/detail?postId=19025264


http://www.ppmy.cn/news/172048.html

相关文章

ChatGPT分销版多开4.4.2版本源码

ChatGPT分销版多开4.4.2版本AI源码 版本号&#xff1a;4.4.2 - 默认 19:29 优化 购买会员套餐界面 修复 mj后面显示错误 修复 mj绘画生成不了 优化 后台新增套餐没有其它选项 备注 本次更新需要重新保存下后台用户充值->充值套餐中所有涉及会员的套餐 29 2023-05…

亚信前端面试真题

目录 1.如何设置一个元素不可见&#xff1f; 2.谷歌浏览器设置比12px还小的字体&#xff1f; 3.深拷贝实现方法&#xff1f;??????? 4.防抖节流实现原理???? 5.遍历循环数组方法&#xff1f;???? 6.vue的双向绑定&#xff1f;???? 7.compute和watche…

01_pytorch中的DataSet

在pytorch 中&#xff0c; Dataset: 用于数据集的创建&#xff1b; DataLoader: 用于在训练过程中&#xff0c;传递获取一个batch的数据&#xff1b; 这里先介绍 pytorch 中的 Dataset 这个类&#xff0c; torch.utils.data. dataset.py 是一个表示数据集的抽象类。任何自定义…

动画制作流程

动画制作的相关流程 动画制作需要大量的流程&#xff0c;这就不仅仅一个人就能完成的&#xff0c;需要部门之间的相互合作&#xff0c;才能达到预期的效果。接下来就为大家带来3D动画制作的工作流程。 第一步&#xff1a;统筹策划 这是做什么事情之前都要做的事情&#xff0…

制作点线动画用它,轻松实现创作 | 万彩动画大师

点线动画具有灵活多变&#xff0c;高端大气的特点。以圆点和线条为主&#xff0c;通过不停地变幻和排列组合给观众带来震撼的视觉冲击力&#xff0c;常常被应用到互联网、金融等行业。虽然只有简单的点和线条&#xff0c;然而用AE制作起来可不简单哦。别担心&#xff0c;有万彩…

Canvas 图片制作动画

Canvas入门文档推荐 菜鸟教程 W3cschool 这个是 做的其中一个动画&#xff0c;只是html案例&#xff0c;后来做了十个添加到项目里面了&#xff0c;另外实现了暂停、继续、背景音乐同步播放/同步暂停、最后还将动画转成了视频并合成了音乐实现上传下载&#xff1b; &#xff…

使用ivx制作进场动画的经验总结

在案例制作中为了让展示效果更加精致&#xff0c;可能用到一些进场的小动效。今天使用时间轴和轨迹做了3个小样例给大家作为一个参考。轨迹在之前的帖子里已经讲过了&#xff0c;时间轴可能还比较陌生&#xff0c;可以把它理解为一个对轨迹进行管理的组件。因为有时案例中会有很…

X3D制作简易三维动画

第一次接触X3D&#xff0c;想留下一些自己的学习想法。 首先&#xff0c;直接百度X3D&#xff0c;会发现除了官网文档&#xff0c;其他的资料很少&#xff0c;官网文档全英文&#xff0c;看完它提供的例子后&#xff0c;知道X3D是一个HTML5框架&#xff0c;可以直接在项目文件…