今天对boot.img和recovery.img结构做了研究,这是一个十分好玩的事情,当然,在android移植和编译的过程中,也是需要有一定了解的。
Why:
其实为什么要做这个了解呢,起源是源于S-ON的问题,当然,这个是HTC的加密方式,源于硬件,如果还有什么其他的方式,这个在刷机的过程当中,了解了也是有一定帮助的。如果做了这个开关限制的,那么我们的boot.img或者recovery.img在刷入手机后,在启动的时候,会对img分区做一个校验,如果通过,才能让手机启机,否则就停留在某个预订的画面当中。当然,我们是知道的,如果通过破解boot.img的方式去开root模式,那是永远解决了各种root硬伤,虽然麻烦,但是相当好用。而如果遇上了这种检测机制,那在制作这个boot.img包的时候策略就要有所改变了。
当然,这只是一个基础的说明,如果是官方对img进行了CRC加密验证,那么img就刷不了了,就是这么现实。
boot.img是怎么打包在一起的呢?找到bootimg.c文件,看吧。 header + padding + kernel + padding + ramdisk + padding + ...
所以一个boot.img或者recovery.img开头的结构具体
如下:
4 * 2, magic,固定为"ANDROID!"