最近学习手机刷机知识,由于刚接触不久,网络上资料大多不全且没有深入讲解,但自己对这方面的兴趣又较大,跟以前学习电脑操作系统时的心态一样,总想搞个明白。
以下是从百度上找的资料,结合后面这图,有一点点了解但仍有疑惑。作个记录,慢慢消化。
Fastboot是传统底层刷机模式,运行在 Bootloader 阶段;fastbootd是 Android 10+ 引入的新模式,运行在 Recovery 用户空间,专门用于处理动态分区。简单来说,老设备或静态分区用 Fastboot,支持动态分区的新设备刷 system/vendor 等分区需用 fastbootd。
两者有什么核心区别
运行环境不同:Fastboot直接运行在引导加载程序(Bootloader)中,是“裸机”环境;fastbootd 运行在Recovery 系统的用户空间,是一个守护进程,有 Linux 内核支持。
分区识别能力不同:Fastboot只能识别物理分区(如 boot、recovery、super 整体),无法操作 super 分区内部的逻辑分区(如 system、vendor);fastbootd能解析 super 分区元数据,直接读写内部的逻辑分区。
依赖条件不同:Fastboot不依赖系统分区,系统损坏仍可进入,是救砖终极手段;fastbootd 依赖 boot 或 recovery 分区能正常启动,若这两个分区损坏则无法进入。
支持版本不同:Fastboot适用于所有 Android 版本;fastbootd 仅 Android 10 及更高版本支持,且设备需采用动态分区架构。
分别在什么场景下使用
使用 Fastboot 的场景:
解锁或锁定 Bootloader。
刷写底层固件,如 boot.img、recovery.img、vbmeta.img、radio 等。
设备无法开机时,通过 Bootloader 模式进行救砖操作。
静态分区设备的系统更新。
使用 fastbootd 的场景:
刷写动态分区内的逻辑分区,如 system.img、vendor.img、product.img。
使用 GSI(通用系统镜像)进行系统替换。
在 A/B 分区架构设备上执行系统级修改。
如何进入及切换模式
进入 Fastboot 模式:
手机关机后,长按特定按键组合(通常是音量减 + 电源键)直到出现 Fastboot 界面。
或在开机状态下通过命令 adb reboot bootloader 进入。
进入 fastbootd 模式:
在 Fastboot 模式下,执行命令fastboot reboot fastboot 即可切换至 fastbootd。
或在开机状态下通过命令 adb reboot fastboot 直接进入。
模式切换验证:
进入后在电脑端执行 fastboot devices,Fastboot 模式下通常显示为<device_id> fastboot,fastbootd 模式下显示可能不同或需特定驱动支持。
注意:从 fastbootd 返回Fastboot 模式,可执行 fastboot reboot bootloader。
|