Android ROM的制作与烧录 (2010-08-25 19:34)

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.imgRamdisk镜像是采用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.imgsystem.img & userdata.img这两个镜像都属于yaffs2文件格式,生成方式是一样的。我们就以system.img为例来说明。System.img >> system目录树所需工具unyaffs, 下载地址 /p/unyaffs/downloads/list# mkdir system# cd system# unyaffs ../system.imgsystem目录树 >> system.img所需工具 mkyaffs2image,Android源码编译后会生成该工具,在 out/host/linux-x86/bin 目录下。命令格式:# mkyaffs2image system/ system_new.img了解以上方法的意义在于,我们可以对镜像文件镜像修改,定制,以符合自己的需求。Android ROM的制作方法网上有很多制作Android ROM的教程,这里罗列一些链接:北理工的陈罡写的两篇文章,是我目前发现的最好的教程,写的非常详细/u/26691/showart_2193396.html/u/26691/showart_2194274.html这两篇文章参考了国外论坛的几个经典教程:/showthread.php?t=566235/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images国内还有一篇文章写的也不错,这篇文章更侧重于制作类似Patch的ROM包/html/201002/1267213800ID1030.html这里基于自己的理解和测试,总结了一些方法步骤。1.从可用的ROM起步Android 的ROM包通常称为update.zip包,你可以到上下载现成的.zip包。要学习ROM包的制作,我们可以从这样一个zip包开始。解开zip包后,通常有这样一些内容:boot.img?? ?文件?? ?这是编译内核源代码生成的内核映像,然后与android源码编译出来的ramdisk.img一起通过mkbootimg工具创建出来的,图省事的朋友也可以从网上其他的刷机包里面拷贝一个能用的出来即可,基本上都差不多。META-INF?? ?目录?? ?这个目录是手工创建的,主要用来存放一个升级脚本update-script(这个脚本的内容与system目录中包含的文件有很大关联)以及签名。system?? ?目录?? ?这个目录就是编译android的平台源代码生成的要创建自己的ROM,我们通常会涉及到以下的一些工作:1.?? ?编译内核生成内核映像。但一般情况下,我们没有必要自己去编,直接从刷机包里面取出一个就可以。譬如,你要做一个2.2版本的升级包。可以到网上找一

android rom包的组成结构,AndroidROM的制作与结构构成..doc相关推荐

  1. android rom打包解包工具,Android ROM包定制(解包,增删模块,打包)

    解包 假设有一个名为update.zip的ROM包,我们要在Ubuntu下对它进行定制.首先把system.transfer.list和system.new.dat.br(有些旧版的系统的镜像可能是s ...

  2. android rom包修改工具,自己修改安卓的ROM包(非官方) | 寒山烟雨

    从网上下载的ROM包多少有些不完善,需要自己修改.本文主要介绍修改预装软件包.所需要的工具JDK和安卓签名软件(网上一搜一大堆). 1.设置电脑系统的环境变量.在桌面[我的电脑]上点击鼠标右键,选择[ ...

  3. 谷歌的android官方刷机,一加手机谷歌原生Android ROM包刷机教程

    [TechWeb报道]自发售之后,一加手机一直秉承着兼收并蓄的姿态,在系统方面也让消费者有了诸多的选择. 一加手机除了默认的Color OS系统外,已经开发了CM系统的刷机包下载,同时,MIUI的适配 ...

  4. Android学习笔记06---电话拨号器的制作:项目结构深化

    13.电话拨号器的制作:    a.窗口上有显示文字的Textview控件    b.用于显示文本输入框的    c.和button控件 ------------------------------- ...

  5. linux rom打包工具,Android rom解包打包工具

    eMMC主要是针对手机和平板电脑等产品的内嵌式存储器,由于其在封装中集成了一个控制器,且提供标准接口并管理闪存等优势,越来越受到Android手机厂商的青睐,以eMMC为存储设备的android手机, ...

  6. 服务器android打包,Android rom解包打包工具

    eMMC主要是针对手机和平板电脑等产品的内嵌式存储器,由于其在封装中集成了一个控制器,且提供标准接口并管理闪存等优势,越来越受到Android手机厂商的青睐,以eMMC为存储设备的android手机, ...

  7. android rom结构_如何将新的ROM刷新到您的Android手机

    android rom结构 When you bought your phone it was cutting edge, had the latest version of Android, and ...

  8. 安卓rom包解包linux,Android rom解包打包工具

    eMMC主要是针对手机和平板电脑等产品的内嵌式存储器,由于其在封装中集成了一个控制器,且提供标准接口并管理闪存等优势,越来越受到Android手机厂商的青睐,以eMMC为存储设备的android手机, ...

  9. Android 固件,刷固件,ROM包

    什么是固件?刷固件?Rom包 ...? 1.  固件----操作系统 所谓的固件就是将操作系统固定在手机中的一个固定的位置(硬件上),平时不随意改动,活动的数据另外单独放一边. 这样做的目的在于保护内 ...

最新文章

  1. 为什么程序员不能接私活?
  2. eclipse 新建maven项目报错Could not resolve archetype org.apache.maven.archetype修改配置
  3. 【Leetcode | easy】最长公共前缀
  4. VMware “Transport(VMDB)error -44:Message”
  5. [react] 怎样在react中创建一个事件?
  6. DockPanel 类
  7. 四种策略确保 RabbitMQ 消息发送可靠性!你用哪种?
  8. java redis的应用_Redis-Java 交互的应用
  9. codeforces629C Famil Door and Brackets (dp)
  10. 通过HTTP协议发送远程消息
  11. 移远EC20、EC200S-CN上网测试
  12. GRE+托福四个半月复习计划
  13. 企业邮箱服务器如何设置?
  14. win7 注册表禁 com服务器,win7系统注册表清理后导致不能上网如何解决
  15. 29岁,从绝望崩溃到年入50万:这个技能,决定你5年后的人生!
  16. 电脑截图快捷键有哪些?5大截图方法总结!(2023版)
  17. 先序和中序构造二叉树
  18. 屏下指纹版iPhone终于稳了!效果很好很强大
  19. 偏微分方程的基本概念
  20. 元宇宙基础设施五层级模型的关系作用与实力。

热门文章

  1. idea设置Java class模板注释
  2. 番茄炒鸡蛋里隐藏的九大秘密功效
  3. 阿里云-云存储OSS
  4. it does not have a type annotation and is referenced directly or indirectly in its own initializer
  5. 运维小白的python之路(一)
  6. win10下安装多个JDK配置方法
  7. HTML复选框的全选、全不选以及单选操作。
  8. Solidity入门级别|用智能合约实现房屋贷款系统
  9. Python编程快速入门
  10. python 写文件的疑问