定制 Android 固件¶

打包¶

首先要检查一下 system.img 的大小,对照 parameter 文件的分区情况(可参考文档Parameter 文件格式,作必要的大小调整。例如,parameter.txt 文件里的 system 分区大小,可以找到 CMDLINE 一行,然后找到 system 字符串:

0x00200000@0x000B0000(system)

@ 前面就是分区的大小,单位是 512 字节,这样该 system 分区的大小就是:

$ echo $(( 0x00200000 * 512 / 1024 / 1024))M

1024M

只要 system.img 的大小不超过 1024M,parameter 文件就不用更改。如果分区不用更改,可以直接用烧写工具将新的 system.img 烧写到开发板的 system 分区上做试验。否则,需要制作新固件并烧写后再行测试。以下是打包成统一固件 update.img 所需要的步骤:

合成 update.img :

# 当前的目录仍然为 update/ ,内有 package-file, package-file 所列的文件均存在

# 将参数文件拷贝一份到 paramter, 因为 afptool 默认要用到

$ cp Image/parameter.txt parameter

$ afptool -pack . ../update_new.img

------ PACKAGE ------

Add file: ./package-file

Add file: ./Image/MiniLoaderAll.bin

Add file: ./Image/parameter.txt

Add file: ./Image/trust.img

Add file: ./Image/uboot.img

Add file: ./Image/misc.img

Add file: ./Image/resource.img

Add file: ./Image/kernel.img

Add file: ./Image/boot.img

Add file: ./Image/recovery.img

Add file: ./Image/system.img

Add file: ./RESERVED

Add CRC...

------ OK ------

Pack OK!

合成 release_update.img :

$ img_maker -rk33 loader.img update_new.img release_update_new.img

generate image...

append md5sum...

success!

release_update_new.img 即为最终生成的可烧写的统一固件文件。


腾达和TP-Link路由器比较
如何更新系统BIOS