我们来详细梳理如何使用
fastboot 命令将编译好的 Android 镜像烧录到开发板。
fastboot 是 Android SDK 提供的一个非常强大的命令行工具,用于在设备的 fastboot 模式下与设备进行通信。这是一种比
adb 更底层的模式,通常用于刷机、解锁设备或烧录系统镜像。
platform-tools 目录添加到系统环境变量
PATH 中,这样你可以在任何地方直接使用
fastboot 命令。验证安装:在终端输入
fastboot --version,如果能看到版本信息则说明安装成功。 编译好的镜像文件:你需要已经编译好的
boot.img,
system.img,
vendor.img,
userdata.img 等镜像文件。这些文件通常位于
out/target/product/<你的设备名称>/ 目录下。USB 数据线:用于连接开发板和电脑。设备驱动(Windows 可能需要):在 Windows 上,可能需要安装对应开发板的 USB 驱动才能让电脑识别 fastboot 设备。
这是最关键的一步。通常有两种方法:
方法一:通过按键组合(最常用)
关闭开发板电源。通过 USB 数据线将开发板连接到电脑。找到开发板上的
RECOVERY 键和
RESET 键(或
POWER 键)。按住
RECOVERY 键不放,然后短暂按下
RESET 键(或重新上电)。等待大约 2-3 秒后,松开
RECOVERY 键。此时,开发板应进入 fastboot 模式。 方法二:通过 adb 命令(如果设备已开机且能通过 adb 连接)如果设备当前可以正常开机并连接
adb,你可以用以下命令重启到 fastboot 模式:
adb reboot bootloader
进入 fastboot 模式后,在电脑的终端中执行以下命令,确认
fastboot 工具能否识别到设备:
fastboot devices
如果一切正常,你应该会看到类似下面的输出,显示设备的序列号和状态为
fastboot:
12345678 fastboot
如果没有任何输出,说明设备未被识别,请检查:
USB 数据线是否连接良好。开发板是否确实进入了 fastboot 模式。Windows 上的驱动是否安装正确。
fastboot 支持多种烧录命令,最常用的是
flash 和
update。
fastboot flash 命令(逐个烧录分区)这是最直接、最灵活的方法。你需要为每个要烧录的分区执行一次命令。
基本语法:
fastboot flash <分区名> <镜像文件路径>
常用分区及对应镜像:
| 分区名 | 镜像文件 | 说明 |
|---|---|---|
boot |
boot.img | 引导镜像 |
system |
system.img | 系统镜像 (对于较新的设备,可能是
system_a 和
system_b) |
vendor |
vendor.img | 厂商镜像 (对于较新的设备,可能是
vendor_a 和
vendor_b) |
userdata |
userdata.img | 用户数据镜像 |
recovery |
recovery.img | 恢复模式镜像 |
示例(以烧录
boot,
system,
vendor,
userdata 为例):
假设你的镜像文件都在
out/target/product/my_device/ 目录下,并且你已经通过
cd 命令进入了该目录。
# 烧录 boot 分区
fastboot flash boot boot.img
# 烧录 system 分区
fastboot flash system system.img
# 烧录 vendor 分区
fastboot flash vendor vendor.img
# 烧录 userdata 分区
fastboot flash userdata userdata.img
注意:对于采用 A/B 分区(Slot)的现代设备,你需要指定烧录到哪个槽位。例如:
fastboot flash boot_a boot.img
fastboot flash system_a system.img
# ...以此类推
你可以用
fastboot getvar current-slot 命令查看当前活跃的槽位。
fastboot update 命令(一键烧录)如果你有一个
.zip 格式的刷机包(例如
ota.zip),可以使用此命令一键完成所有分区的烧录。这个
.zip 包的结构需要符合 Android 的官方规范。
基本语法:
fastboot update <刷机包.zip路径>
示例:
fastboot update my_custom_rom.zip
这个命令会自动解析
zip 包中的
META-INF/com/google/android/updater-script 脚本,并按照脚本中的指令烧录所有必要的分区。
所有镜像烧录完成后,执行以下命令重启开发板:
fastboot reboot
开发板将从烧录好的新系统镜像启动。首次启动可能会比较慢,因为系统需要进行一些初始化工作。
fastboot: command not found:这说明
fastboot 工具所在的目录没有被添加到系统的
PATH 环境变量中。你需要将其添加,或者在命令前加上完整的路径(例如
~/Android/Sdk/platform-tools/fastboot)。烧录
userdata.img 会清除所有用户数据:
userdata.img 是一个空白的或 factory reset 后的镜像。烧录它会导致设备上所有用户安装的应用和数据丢失。确认分区名和镜像文件对应:不同的开发板厂商可能会对分区命名有细微差别。务必确认你的镜像文件是为哪个分区准备的。A/B 分区设备:如果你的设备是 A/B 分区结构,请务必注意
_a 和
_b 的后缀,否则可能烧录到非活跃的槽位导致无法启动。保持供电稳定:烧录过程中,确保开发板供电稳定,不要断开 USB 连接,否则可能导致设备变砖。
通过以上步骤,你就可以成功地使用
fastboot 将自己编译的 Android 镜像烧录到开发板上了。
如何使用fastboot命令解锁设备?
使用
fastboot 命令解锁 Android 设备的 Bootloader 是刷机和自定义系统的前提,但解锁会清除设备上所有用户数据,并且可能导致 Knox 等安全特性失效。以下是详细步骤和注意事项:
platform-tools 目录添加到系统环境变量。 备份数据
解锁会清除所有数据,请提前备份照片、联系人等重要内容。
adb reboot bootloader
确认设备连接
fastboot devices
若输出设备序列号,说明连接成功。执行解锁命令
fastboot oem unlock
或部分设备使用:
fastboot flashing unlock
确认解锁
设备屏幕会提示是否解锁,通过音量键选择「Yes」,电源键确认。解锁完成后,设备会自动重启并清除数据。
fastboot oem lock
但部分设备上锁后仍无法恢复 Knox 状态。设备特定命令:某些品牌(如华为、小米)可能有特殊解锁流程,需先申请官方解锁码。
fastboot 版本是否兼容。部分设备需先刷入特定解锁镜像。 解锁后无法开机:
可能是 Bootloader 版本不匹配,尝试重新刷入对应版本的 Boot 镜像。