文章写到现在,似乎在刚刚切入正题。但自己也感觉,如果有所有的源码,自己所写的就有点滑稽了。不管怎么样,还是秉着一种钻研的精神,从反向的角度来玩MiniPC吧。也希望一些玩家能从我的每步尝试中获得灵感,学到一些东西。
承上一篇,我们得知,bootloader并不care kernel分区的内容,而是关心bootimg。在bootimg中包含了kernel和ramdisk。想要自由的玩转MiniPC,在当前的bootloader下,就要弄明白bootimg内部的一些原理。
一,bootimg的解包。
在网上有几个解包工具,以下是我总结的链接。
unpack-bootimg.pl http://pan.baidu.com/s/1kspZM
bootimg.py http://pan.baidu.com/s/1BwA39
但这两个工具(bootimg.py被我修改过)都无法完全解开我们的bootimg。
unpack-bootimg.pl是按照ramdisk的gzip magic来解包的,所以解包完后kernel的开始部分由很多无效数据。