Fastboot具有以下方便feature(如果启动自定义图像失败,设备下次会神奇地启动默认图像,并且所有内容都会正常运行):
使用主机端内核映像启动
此命令允许您下载内核映像(和可选的根文件系统映像)并使用这些映像启动电话,而不是使用启动闪存分区中的内核和rootfs。在开发内核或修改rootfs时非常有用。
fastboot boot<内核> [< ramdisk> ]
是否有人知道内部如何工作?在重启设备之前,是否将内核复制到特殊启动分区? (更新:正如答案所指出的,没有重启,因为fastboot是启动过程中的一个步骤,这基本上使我的问题毫无意义。)我正在研究fastboot的源代码,但是它似乎只包含在主机端发生的事情,而不包含在设备上。
我的意思是,闪存功能的工作原理非常简单,我可以通过将带有自定义内核的启动映像复制到boot
分区来模仿它,例如,通过:
dd if='<my_boot.img>' of='/dev/block/platform/msm_sdcc.1/by-name/boot'
答案 0 :(得分:8)
在重启设备之前,是否将内核复制到特殊启动分区?
不,任何分区都不会有任何修改 引导内核意味着从存储设备加载(即读入内存)内核映像。这种fastboot类似于网络引导,例如使用TFTP通过以太网链路从服务器/主机加载内核映像。如果唯一的目的是使用内核映像引导系统,那么根本没有理由将内核映像写入分区,尤其是在没有明确指定的情况下。
此操作的可选根文件系统明确指定为ramdisk映像,也不需要写入或存储在分区中。
有谁知道它内部的运作方式?
fastboot程序是在重启设备后执行的备用引导加载程序 内核从主机通过USB加载到内存中。可选的rootfs(ramdisk或者initramfs映像)也可以通过USB从主机加载到内存中。加载后,可以开始普通的内核启动。
顺便问一下:因为我正在开发的应用程序,我问这个问题;我想“冒险”直接从设备启动定制内核,在那里存储例如:在SD卡上
你可能不得不使用其他一些bootloader /方法而不是这个fastboot。