1. fastbootd追根溯源
Google在Android 10上正式引入了动态分区机制来提升OTA的可扩展性。动态分区使能后:andorid系统可以在开机阶段动态地进行分区创建、分区销毁、分区大小调整等操作,下游厂商只需要规划好super
分区的总大小,其内部的各个子分区(例如system
、vendor
和product
)的大小区均可根据需求进行动态调整。
动态分区super
使能后,fastboot程序无法在bootloader阶段解析出其中的子分区label,因此无法对其进行刷写。 为解决此问题,google将bootloader中的 fastboot 协议的移植到了android用户空间,称为 fastbootd。
2. fastbootd使用下载固件方法
进入fastbootd模式的命令如下:
adb root
adb disable-verity
adb reboot fastboot //等着系统重启进入fastbootd模式若从fastboot模式可以通过下面命令进入fastbootd模式
fastboot reboot fastboot
进入fastbootd模式后,固件下载命令与bootloader的fastboot模式下的格式上并无区别,但所能下载的分区不同。
举例如下:
fastboot flash system system.img
fastboot flash vendor vendor.img
fastboot flash product product.img
fastboot reboot
参考资料:https://source.android.google.cn/docs/core/architecture/bootloader/fastbootd?hl=zh-cn