acess
2015-06-24 22:52:28 +08:00
我记得recovery启动需要的文件都在recovery分区里面(或者说recovery.img),运行时被加载到内存盘里。(其实和Android很像,只是Android又继续启动了很多服务,启动了app_process等)
这一点跟WinPE很像。
/init程序应该和Android相同或者相似,都可以解释执行/init.rc(Linux也有init程序,好像叫做sysvinit,但我记得一般用的都基于shell,systemd就是用来取代传统init的)。
一般看到的那个可以用音量键和电源键等操作的,带菜单的recovery界面就是一个Linux可执行文件搞定的(文件名就是recovery)
我记得recovery分区和boot分区差不多,只是一个开机默认启动,一个按组合键启动,如果给recovery刷了boot.img就可以启动Android。不同机器可能不同吧,我的机器的EMMC分区表就是GPT……
有个工具mkboot可以解压新版Android的boot.img、recovery.img,这些镜像文件貌似是在编译Android时编译出的一个小工具mkbootimg创建的。ubuntu上也有包abootimg可用。我觉得解压看看就大概知道里面有什么了。换内核时可以用这些工具。新版内核还有dtb文件,mkboot可以处理。