用法

fastboot [选项...] 命令...

刷写操作

  • update ZIP

    • To check:从 update.zip 包中刷写所有分区。
  • flashall

    • $ANDROID_PRODUCT_OUT 刷写所有分区。在A/B设备上,非活动槽位将被刷写,并被更改为活动槽位。
  • flash 分区名 [文件名]

    • 使用指定的镜像文件刷写指定的分区。如果没有提供文件名,则使用 $ANDROID_PRODUCT_OUT 中的镜像。

基础操作

  • devices [-l]

    • 列出处于 Fastboot 模式的设备

    • To check:(-l: 显示设备路径)

  • getvar 变量名

    • 显示指定的引导加载程序变量。

    • 可以尝试通过执行 fastboot getvar all 命令来列出所有可用的引导加载程序变量及其值(如果设备支持此命令)。

  • reboot [bootloader]

    • 重启设备。

锁定/解锁操作

  • flashing lock|unlock

    • 锁定/解锁用于刷写的分区。
  • flashing lock_critical|unlock_critical

    • 锁定/解锁“关键”引导加载程序分区。
  • flashing get_unlock_ability

    • 检查设备是否允许解锁。(返回值为 1 表示允许解锁,为 0 表示不允许解锁)

高级操作

  • erase 分区名

    • 擦除(即清空)指定的分区。
  • format[:文件系统类型[:大小]] 分区

    • 按照指定的文件系统类型和大小格式化一个分区。
  • set_active 槽位

    • 设置活动槽位。
  • oem [命令...]

    • 执行 OEM 特有的命令。

    • OEM 特有的命令取决于设备制造商和设备型号。

  • gsi wipe|disable|status

  • 擦除、禁用或显示 GSI 状态(仅限 fastbootd)。

  • wipe-super [SUPER_EMPTY]

    • 擦除超级分区,并使其包含一组空的默认动态分区。
  • create-logical-partition 名称 大小

    • 在超级分区中创建一个具有指定名称和大小(单位未知)的逻辑分区。
  • delete-logical-partition 名称

    • 删除超级分区中具有指定名称的逻辑分区。
  • resize-logical-partition 名称 大小

    • 更改超级分区中指定名称的逻辑分区的大小(单位未知)。
  • snapshot-update cancel

    • 在支持基于快照的更新的设备上,取消正在进行的更新。这可能会使设备无法启动,直到重新刷入完整的镜像。
  • snapshot-update merge

    • 在支持基于快照的更新的设备上,如果更新处于“合并”阶段,则完成正在进行的更新。
  • fetch 分区 输出文件

    • 从设备中获取分区映像。

启动映像

  • boot KERNEL [RAMDISK [SECOND]]

    • 从RAM下载并启动内核。
  • flash:raw PARTITION KERNEL [RAMDISK [SECOND]]

    • 创建启动映像并将其闪存。
  • --dtb DTB

    • 指定一个 DTB 文件的路径,这个文件将被包含在引导镜像的头部中,以支持版本 2 的引导镜像头。
  • --cmdline CMDLINE

    • 覆盖内核命令行。
  • --base ADDRESS

    • 设置内核基地址(默认:0x10000000)。
  • --kernel-offset

    • 设置内核偏移量(默认:0x00008000)。
  • --ramdisk-offset

    • 设置ramdisk偏移量(默认:0x01000000)。
  • --tags-offset

    • 设置标签偏移量(默认:0x00000100)。
  • --dtb-offset

    • 设置dtb偏移量(默认:0x01100000)。
  • --page-size BYTES

    • 设置闪存页大小(默认:2048)。
  • --header-version VERSION

    • 设置启动映像头版本。
  • --os-version MAJOR[.MINOR[.PATCH]]

    • 设置启动映像的操作系统版本(默认:0.0.0)。
  • --os-patch-level YYYY-MM-DD

    • 设置启动映像的操作系统安全补丁级别。

Android Things

  • stage IN_FILE

    • 将指定文件发送到下一命令的暂存区。
  • get_staged OUT_FILE

    • 将上一个命令暂存的数据写入到文件中。

选项

  • -w
    • 擦除 Userdata 分区。
  • -s SERIAL
    • 指定一个USB设备。
  • -s tcp|udp:HOST[:PORT]
    • 指定一个网络设备。
  • -S SIZE[K|M|G]
    • 分割成不超过SIZE的稀疏文件。
  • --force
    • 强制执行可能不安全的操作。
  • --slot SLOT
    • 使用 SLOT 指定在后续操作中要使用的槽位;'all' 表示两个槽位,'other' 表示非当前槽位(默认:当前活动槽位)。
  • --set-active[=SLOT]
    • 在重启前设置活动槽位。
  • --skip-secondary
    • 在 flashall/update 中不刷新次要槽位。
  • --skip-reboot
    • 刷入镜像后不重启设备。
  • --disable-verity
    • 在刷入 vbmeta 时禁用文件系统完整性验证。
  • --disable-verification
    • 在刷入 vbmeta 时禁用 Verified Boot 验证。
  • --disable-super-optimization
    • 在刷入超级分区时禁用优化。
  • --disable-fastboot-info
    • 从映像列表而不是 $OUT/fastboot-info.txt 中收集任务。
  • --fs-options=OPTION[,OPTION]
    • 启用文件系统的某些功能。
    • OPTION 可选填为 casefold、projid、compress。
    • casefold:文件系统特性,通常用于不区分大小写的文件系统(如某些版本的 NTFS 或某些定制的 FAT/exFAT 实现)。在 Android 设备上,这通常不是默认的文件系统行为,因为 Linux 下的文件系统(如 ext4,这是 Android 设备上常见的文件系统)默认是区分大小写的。
    • projid:项目ID(Project ID)。这是某些文件系统(如 XFS)支持的一个特性,用于实现更细粒度的权限控制。在 Android 设备上,这个特性也不常见,因为 Android 使用的是基于 UNIX/Linux 权限模型的安全系统。
    • compress:文件系统的压缩支持。一些现代的文件系统(如 F2FS、ZFS 等)支持在文件系统级别对数据进行压缩,以减少存储空间的占用。然而,在 Android 设备上,这通常不是通过 Fastboot 来配置的,而是在文件系统被挂载或创建时通过内核参数或文件系统工具来设置的。
  • --unbuffered
    • 不缓冲输入或输出。
  • --verbose, -v
    • 启用详细输出模式。
  • --version
    • 显示当前使用的 Fastboot 的版本。