fastboot烧写是在aboot阶段做的,所以空板没有完整烧写aboot及其boot sequence前的image是没法使用fastboot的。在手机开机状态下,执行:
adb reboot bootloader
手机就会重启进入fastboot模式,然后就可以利用fastboot进行单个image的烧写,具体如下:
fastboot flash <partition> <filename>
其中:partition为分区名称;filename为image的文件路径和文件名;两者可以在下载包的rawprogram0.xml文件中找到,例如:
filename="boot.img" label="boot"
label代表分区名,filename代表image名称,即烧写boot.img命令为:
fastboot flash boot <path>oot.img
msm8974分区名和image名称对照表如下:
分区名 | Image名 |
modem | NON-HLOS.bin |
sbl1 | sbl1.mbn |
dbi | sdi.mbn |
rpm | rpm.mbn |
aboot | emmc_appsboot.mbn |
boot | boot.img |
recovery | recovery.img |
tz | tz.mbn |
persist | persist.img |
cache | cache.img |
system | system.img |
userdata | userdata.img |
system.img和userdata.img不包含在qpst的软件发布包里,可以在android的out/target/product/<project>目录下找到。
fastboot 支持的命令:
usage: fastboot [ <option> ] <command>
commands:
update <filename> reflash device from update.zip
flashall flash boot + recovery + system
flash <partition> [ <filename> ] write a file to a flash partition
erase <partition> erase a flash partition
getvar <variable> display a bootloader variable
boot <kernel> [ <ramdisk> ] download and boot kernel
flash:raw boot <kernel> [ <ramdisk> ] create bootimage and flash it
devices list all connected devices
reboot reboot device normally
reboot-bootloader reboot device into bootloader