Android ROM的创建和烧录

Android编译生成的三个镜像文件

Android源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和 data目录下。

三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。

Ramdisk.img

Ramdisk镜像是采用cpio打包,gzip压缩的。用file验证:

# file ramdisk.img

输出:

# ramdisk.img: gzip compressed data, from Unix

为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:

# mv ramdisk.img ramdisk.img.gz

# gunzip ramdisk.img.gz

# mkdir ramdisk

#cd ramdisk

# cpio –i –F ../ramdisk.img

这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。

通过执行以下的操作,我们可由目录树再生成ramdisk镜像

# cd ramdisk

# find . | cpio -o -H newc | gzip > ../ramdisk-new.img

system.img & userdata.img

这两个镜像都属于yaffs2文件格式,生成方式是一样的。我们就以system.img为例来说明。

System.img >> system目录树

所需工具unyaffs, 下载地址 http://code.google.com/p/unyaffs/downloads/list

# mkdir system

# cd system

# unyaffs ../system.img

system目录树 >> system.img

所需工具 mkyaffs2image,Android源码编译后会生成该工具,在 out/host/linux-x86/bin 目录下。

命令格式:

# mkyaffs2image system/ system_new.img

了解以上方法的意义在于,我们可以对镜像文件镜像修改,定制,以符合自己的需求。

Android ROM的制作方法

网上有很多制作Android ROM的教程,这里罗列一些链接:

北理工的陈罡写的两篇文章,是我目前发现的最好的教程,写的非常详细

http://blog.chinaunix.net/u/26691/showart_2193396.html

http://blog.chinaunix.net/u/26691/showart_2194274.html

这两篇文章参考了国外论坛的几个经典教程:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值