CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 11204|回复: 6

android 编译后boot.img文件的解压打包

[复制链接]
发表于 2014-1-3 14:58:34 | 显示全部楼层 |阅读模式
问个问题呀,官方android bsp编译后,boot.img镜像包含了kernel镜像和ramdisk镜像,当我打算修改了ueventd.rc文件,不用重新编译,我先解压ramdisk.img,然后修改里面的ueventd.rc文件,再然后打包镜像文件。请问,我怎么更新boot.img?也就是把kernel镜像和修改的ramdisk.img合为新的boot.img?
回复

使用道具 举报

 楼主| 发表于 2014-1-3 15:12:51 | 显示全部楼层
make bootimage 就可以打包boot.img,不过我想知道操作指令过程
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-3 15:31:04 | 显示全部楼层
自问自答吧,都留下一个帖子,占地方了。
make bootimage 指令用到了 mkbootimg工具,源码在android目录下的/system/core/mkbootimg/下mkbootimg.c中

/*
** +-----------------+
** | boot header     | 1 page
** +-----------------+
** | kernel          | n pages  
** +-----------------+
** | ramdisk         | m pages  
** +-----------------+
** | second stage    | o pages
** +-----------------+
**
** n = (kernel_size + page_size - 1) / page_size
** m = (ramdisk_size + page_size - 1) / page_size
** o = (second_size + page_size - 1) / page_size
**
** 0. all entities are page_size aligned in flash
** 1. kernel and ramdisk are required (size != 0)
** 2. second is optional (second_size == 0 -> no second)
** 3. load each element (kernel, ramdisk, second) at
**    the specified physical address (kernel_addr, etc)
** 4. prepare tags at tag_addr.  kernel_args[] is
**    appended to the kernel commandline in the tags.
** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr
** 6. if second_size != 0: jump to second_addr
**    else: jump to kernel_addr
*/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-3 15:35:26 | 显示全部楼层
上面就是boot.img的生成过程,包含boot header启动首信息、kernel内核、ramdisk磁盘文件,前面三项是必需的。boot header应该是uboot启动所需的64字节帧头。
回复 支持 反对

使用道具 举报

发表于 2014-3-11 20:18:18 | 显示全部楼层
顶 顶 顶
回复 支持 反对

使用道具 举报

发表于 2014-7-5 11:28:20 | 显示全部楼层
顶~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2014-7-7 14:09:52 | 显示全部楼层
顶....make
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-27 16:24 , Processed in 0.020910 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部