RKAndroidTool工具的各项image详解(RK2918版本)
/******************************************************************************************** ?*site:http://menwoo.com/ ?*深圳市大望谷科技有限公司? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?********************************************************************************************/
..rockdev表示RKAndroidTool所在目录的上一层目录下的rockdev文件夹。 工具预设目录为..rockdev,若扫描有Paremeter ,则载入,读出分区表信息,关于Paremeter ,参看第2点。 工具的“偏移”(offset)表示分区的起始地址,也参看第2点。 1、Loader.bin (100K左右) 系统启动必须的引导文件 RK29xxLoader(L)_V2.08.bin 2、Paremeter 分区信息表(50K左右) 打开rockdev目录下的Paremeter 文件,内容如下 FIRMWARE_VER:0.2.3 MACHINE_MODEL:rk29sdk MACHINE_ID:007 MANUFACTURER:RK29SDK MAGIC: 0x5041524B ATAG: 0x60000800 MACHINE: 2929 CHECK_MASK: 0x80 KERNEL_IMG: 0x60408000 #COMBINATION_KEY: 0,6,A,1,0 CMDLINE: console=ttyS1,115200n8n androidboot.console=ttyS1 init=/init initrd=0x62000000,0x800000 mtdparts=rk29xxnand:0x00002000@0x00002000(misc),0x00004000@0x00004000(kernel),0x00008000@0x00008000(boot),0x00008000@0x00010000(recovery),0x00078000@0x00018000(backup),0x0003a000@0x00090000(cache),0x00100000@0x000ca000(userdata),0x00002000@0x001ca000(kpanic),0x00080000@0x001cc000(system),-@0x0024c000(user) misc kernel——内核镜像 boot——系统引导 recovery backup cache——缓存区 userdata——用户rom区 kpanic system——系统程序 user———用户储存区 下面的 mtdparts=rk29xxnand 则表示机器nand flash的分区信息。 0x00002000@0x00002000(misc)右边的0x00002000表示起始地址,左边的0x00002000表示misc分区的容量大小。至于为什么要从0x00002000开始,因为分区表Paremeter 也要占有flash的容量,Paremeter 是从0x00000000开始的。左右两边数值相加,就等于下一个分区的起始地址,如此类推。如到了recovery分区。 0x00008000@0x00010000(recovery) 起始地址为0x00010000,recovery分区大小为0x00008000,所以下一个backu分区的起始地址为0x00018000。 另外,关于用户区userdata,也就是rom区。常说的扩容就是扩展此分区。 0x00100000@0x000ca000(userdata),先来算算此分区的大小。 0x00100000为十六进制,折算成十进制为1048576,因为瑞芯微rockchip采用的是0.5K为单位。折算结果为 1048576*0.5K=524288K 524288K/1024=512M 也就是说rom区容量为512M。 假若要扩展此分区,则往后的各个偏移量都要相加推移。 到了最后一个user分区, -@0x0024c000(user) 左边的“-”表示user分区占有剩余的nand flash所有容量。也就是常常存放一些用户的数据如电影、音乐之类的。不同于rom区的存放安装软件。 3、Misc.img(1K左右) cpu加电之后,启动bootloader,(即是RK29xxLoader(L)_V2.08.bin),就会读取MISC分区第一块的内容, 决定进入recovery模式还是升级基带Baseband Processor(BP)或做其它事情。而更改Misc内容的操作为按下某个按键或者用户设置系统。 4、kernel.img(6M左右) 内核镜像,经过编译得出zImage,即为Kernel.img。或者SDK包直接附带。 5、boot.img(8M左右) 系统bootload启动之后,进入正常启动模式,就会读取boot.img进去系统正常模式。 boot.img包括了kernel.img镜像和一个根文件系统(rootfs) 6、recovery.img(12M左右) 系统bootload启动之后,通过读取Misc分区的内容,确认如果是进入Recovery模式的话,进去读取Recovery.img。 recovery.img包括了一个kernel.img与一个根文件系统(rootfs),kernel镜像与boot,img的完全一样。 7、system.img(100+M左右) 包括了系统必要的app,详细参考 http://blog.csdn.net/conowen/article/details/7251057 8、擦除IDB 表示清空分区表,就是低级格式化nand flash。这样的话,要重新刷入parameter分区。 附:Recovery 根文件系统目录结构? $ tree . ├── advanced_meta_init.rc ├── data ├── default.prop ├── dev ├── etc ├── init ├── init.factory.rc ├── init.goldfish.rc ├── init.quacomm.rc ├── init.rc ├── meta_init.rc ├── proc ├── res │?? ├── images │?? │?? ├── icon_error.png │?? │?? ├── icon_installing.png │?? │?? ├── indeterminate1.png │?? │?? ├── indeterminate2.png │?? │?? ├── indeterminate3.png │?? │?? ├── indeterminate4.png │?? │?? ├── indeterminate5.png │?? │?? ├── indeterminate6.png │?? │?? ├── progress_empty.png │?? │?? └── progress_fill.png │?? └── keys ├── sbin │?? ├── adbd │?? ├── advanced_meta_init │?? ├── meta_init │?? ├── meta_tst │?? └── recovery ├── sys ├── system └── tmp (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |