当前位置:首页 >> 信息与通信 >>

Android Rom修改过程学习


一、

背景和基础知识介绍

关于 Android 手机系统文件的组成, 在教程 《如何解包/编辑/打包 boot.img 文件 》 中有比较详细的介绍。
Android 手机的文件系统有许多存储器组成,以下是在 adb shell 下面的输出:

#cat /proc/mtd dev: size erases

ize name mtd0: 00040000 00020000 "misc" mtd1: 00500000 00020000 "recovery" mtd2: 00280000 00020000 "boot" mtd3: 04380000 00020000 "system" mtd4: 04380000 00020000 "cache" mtd5: 04ac0000 00020000 "userdata"

注意,不同的手机在上述存储设备的顺序可能会各不相同!一定要检查您的手 机,确定在以下的操作中选择正确的设备号(mtdX,这个 X 的序号一定要检查清 楚)。
在本向导中,我们主要描述对"recovery"和"boot"的存储设备进行操作;"system"存储设备保存 了 android 系统目录的所有数据 (在系统启动后会挂载到“system/”目录) “userdata”存储设备 ; 将保存了 android 数据目录中的所有数据(在系统启动后会挂载到“data/”目录,里面是会有很多 应用数据以及用户的 preference 之类的配置数据) 。 从上面的输出可以看出来,recovery 和 boot 分区对应着/dev/mtd/mtd1 和/dev/mtd/mtd2, 在你您开始做任何修改之前一定要做两件事情,第一件事情,一定要先对这两个分区进行备份。 可以使用如下命令进行备份:

# cat /dev/mtd/mtd1 > /sdcard/recovery.img # cat /dev/mtd/mtd2 > /sdcard/boot.img

(注意 added by lxros,只有手机获取了 ROOT 权限以后才能够执行上述的 备份命令,手机中的超级终端可以操作) 第二件事情,你您应该把你您最喜欢的 update.zip 刷机包放置到你您的 sd 卡的根目录上面。如此一来,即使你您在后续的操作中出了问题,也可以启动到 recovery 模式进行恢复。 另外一个你需要知道的重要文件是在 android 系统目录下的 /system/recovery.img,此文件是 mtd1 存储设备的完全拷贝。这个文件在每次 关机的时候,会自动地被写回到 mtd1 存储设备里面。 这会意味着两个事情: (1)任何对/dev/mtd/mtd1 中数据的直接修改都会在下一次重启手机以后消失。 (2)如果希望对/dev/mtd/mtd1 进行修改,最简单的做法是用你您自己的 recovery.img 替换掉/system/recovery.img。当你您创建自己的 update.zip 刷 机包的时候(特别是在做刷机包的适配的时候),如果你您忘记替换这个 /system/recovery.img,这个 recovery.img 就会在关机的时候被烧写到 mtd1 里 面去或许会变砖。一定要注意这一点! (译者的话,关于这个/system/recovery.img 文件,在 2.1 的 android 的平台

里面并没有找到, 或许这个机制已经 out 了?!或者偶本人对这段话的理解不够 深入?!希望明白的朋友不吝斧正) 至此,我们可以总结一下 1. Rom 一般保护以下内容: Boot.img:在 Rom 的根目录下。 Recovery.img:应该在/system 目录下。但是现在 V880 的 rom 中没有,何 解???(是 2.1 以后的 rom 机制都改变了??)每次开机都被写入 /dev/mtd/mtd1,如果文件错误不合适就变砖。
二、 Rom 的修改

本文摘自《【自订 ROM 教程】中兴 x876 自订 ROM 教程 menglei3684》, 除了我自己的意见会写【在编者注】,其他文件和图片都来自原文。
本教程主要针对中兴 x876_Android2.1 手机 rom 的修改过程进行一下详细的讲述,旨在为广大有兴趣自制 rom 机友们提供依据与工具。 本教程以从简到难为讲述顺序,具体顺序如下: 第一步:system.img 的修改-此部分为系统的核心系统文件镜像,大部分库文件、系统应用程序、配置文件存放于此镜像文件中,对其修改可 以达到系统应用程序自订、开机动画与音乐的修改、系统主题的修改、系统字体修改等操作。 第二步:boot.img 的修改-此部分为系统内核与 ramdisk 文件镜像现阶段暂时处于不成熟阶段,在此为大家提供理论依据以及修改的方法及工 具,为以后打下基础,对其修改可以达到取消还原机制实现 app2sd、修改开机第一幅与第二副画面等操作。 第三步:recovery.img 的修改-此部分暂时还在摸索阶段,修改方法与 boot.img 相同。 中兴 x876-ROM 修改

2.1 第一步:system.img 的修改
此部分为系统的核心系统文件镜像, 大部分库文件、 系统应用程序、 配置文件存放于此镜像文件中, 经过多次尝试, 对原厂 ROM 中的 system.img 文件进行修改后打包刷机不成功,分析原因为重组文件时地址出错,所以采用备份手机中未修改过的 system 文件夹进行修改,实践证明此方法的 成功率高于使用 unyaffs 解压修改的成功率。

2.1.1

system 文件夹提取步骤:

首先将您的手机恢复出厂设置,或重新刷写原厂 ROM(强烈建议刷原厂 ROM),然后安装破解 Root 权限.apk 获得 root 权限,不要重启,继续 安装 androidterm.apk 超级终端软件,打开超级终端中输入以下命令

$rootshell($为标记符,不须输入)



输入 rootshell 后您即可获得 root 权限标记符变为“#”,在着急用户状态下输入以下命令得到

system 文件夹压缩文件,这里利用系统自带的 busybox 工具(system/bin/busybox)

#busybox tar zcvf sdcard/system.tar.gz system 等待压缩过程后,即可在 sd 卡根目录得到 system.tar.gz 文件,即为 system 的压缩文件。得到了 system 文件夹即可对其进行修改得到我们想要 的 system.img 镜像文件。

2.1.2 system.img 的修改
2.1.2.1 解压 system 接下来来到 Linux 环境下,来实施具体的修改。 这里使用的 Linux 环境是在虚拟机下建立的,大家可以自行下载 vmware 精简版虚拟机来安装 Linux 系统,虚拟的配置这里就不多说了,大家自己 查资料吧,我采用操作系统是 fedora9,是从前做开发经常使用的环境,建议大家主选,这个系统包含了大部分可函数,出错概率小,不过 Red Hat、 Ubuntu 也应该可以,大家可以自己尝试。

【在编者注】:在另一边教程《Andorid 刷机包修改教程》只读打开有详细的 Linux 环境搭建 教程。

将 sd 根目录下的 system.tar.gz 文件复制到虚拟机内,在 Linux 的 root 下打开终端,进入 system.tar.gz 存放的目录(这里我将 system.tar.gz 存放与 opt/buckup 下),输入以下命令,解压 system.tar.gz。 #tar zxvf system.tar.gz

#tar zxvf system.tar.gz

解压完毕后,即可在 opt/backup 下得到 system 文件夹剩下的工作就是对具体的文件进行修改了。

2.1.2.2

System 下文件夹的组成构造

可以看到,system 文件夹下包括十个目录与一个配置文件,修改修改的主要是以下几个文件夹. system/app 文件夹-该文件夹存放的是系统自带的 apk 应用程序,可以删除和添加自己需要的 apk 程序。 system/lib 文件夹-包含了大部分 linux 系统的库文件,需要特别说明的是,当您需要添加的 apk 中有需要包含的库时(以.so 后缀),请将库文 件放于此目录下,否则应用无法运行。 system/fonts 文件夹-字体文件夹,可以更改自己喜欢的 ttf 字体重命名为 DroidSansFallback.ttf 后覆盖原文件即可。 system/framework 文件夹-其中的 framework-res.apk 文件为系统核心文件,可以修改此文件达到更换开机动画的动作。 system/media 文件夹-其中最主要的是包含开机音乐,可以选择自己喜欢的音乐剪切后替换即可。

2.1.2.3 主题和开机动画的修改方法
主题放与 app 下的 Launcher2.apk 中,开机画面放于从前的 framework 下的 framework-res.apk,传统的方法是把 apk 后缀改为 zip 解压修改 后签名再放回原有目录里,这里告诉大家一个简单的方法,只需要用 winrar 打开方式打开 apk 文件,将你想要修改的文件重命名为需要替换的文 件拖进具体目录中替换即可,这样就省去了签名的麻烦。 例如修改开机画面如下操作:

右键 framework-res.apk 文件,在打开方式里选择 winrar,即可看到文件结构,开机画面位于 assets 目录下的 images 中,其中 ZTE_240X400_01.png 到 ZTE_240X400_25.png 即为开机动画元素, 把你已经做好的 25 幅 png 图命名为 ZTE_240X400_01.png 至 ZTE_240X400_25.png 然后突入压缩文件夹中替换原文件即可,再将修改好的 framework-res.apk 文件放于虚拟机中 framework 文件夹下。

2.1.2.4

重新打包。

打包使用附件中的 mkyaffs2image 工具,特别提示:打包必须使用我附件中的 mkyaffs2image 工具,其他的同名工具我使用了很多,刷机后不 开机。具体步骤如下: 将 mkyaffs2image 放于 opt 文件夹下,在终端中执行以下命令: #./mkyaffs2image system system.img

打包完成后即可在 opt 文件夹下看到修改后的 system.img 文件,将该文件复制出来替换\X876 平台,驱动,软件\115160B0910UNI_CN_X876 1.1\115160B0910UNI_CN_X876 1.1(下载)目录下的 system.img 文件,使用刷机工具刷机即可。

未完,待续?? 2.2

三、



相关文章:
Android_Rom修改过程学习
Android_Rom修改过程学习_IT/计算机_专业资料。S么 一、 背景和基础知识介绍 手机系统文件的组成, 在教程《如何解包/编辑/ 关于 Android 手机系统文件的组成, 在...
安卓ROM修改教程
安卓ROM修改教程_计算机软件及应用_IT/计算机_专业资料。1: 文件夹介绍(tts \...谢谢~~ 友情提示,光头佬发表了很多不错的 ROM 修改贴子,大家可以到里面学习,...
教你如何制作安卓rom教程(内置两个教程看完之后基本能解决所有难题)
android\server\status\statusbaricon.smali 10.用文本编辑软件打开该文件找到 ...我们有没有可能自己定制 ROM 呢 详细过程 1、刷机原理 记得第一次刷机,哪个...
自己修改安卓刷机包ROM教程
自己修改安卓刷机包ROM教程_信息与通信_工程科技_专业资料。我们通常会从网上下载...“告别小白基础篇”以及“完全定制进阶篇” 、, 以满足不同层次的机油选学。 ...
ROM修改教程
修改为主的主要以修改官方 ROM,或者 修改网友 ROM,或者修改英文 ROM(可称作...libandroid_runtime.so Android 运行时库 libandroid_servers.so 系统服务组件 libau...
任意安卓移植ROM教程,超详细ROM技术学习
android 框架,移植 MIUI,很多改动在这个文件夹里,美化 ROM 的话, 主 要改 ...如果转换过程中失败了,应该是 JAVA 的版本低了,升级 到最新的 JRE 试一下。...
ROM 制作修改初步白话版教程
ROM 制作修改初步白话版教程_信息与通信_工程科技_专业资料。前言: 看到网上最近安卓总是有许多人写 ROM 教程,也有不少人学习,但是都 是说的很深奥,机油不太理解...
安卓手机ROM制作分为制作和修改教程
安卓手机ROM制作分为制作和修改教程_计算机软件及应用_IT/计算机_专业资料。网上积分下载,大家共享 教程ROM 制作分为制作和修改。其实都是修改。利用专门的厨房工具...
简单易懂的Android ROM定制与修改教程
简单易懂的Android ROM定制与修改教程_计算机软件及应用_IT/计算机_专业资料。简单...文件存放位置 二.再来认识一下刷机脚本文件 用 recovery 刷机时,刷机过程由脚本...
[ROM教程]任意机型的rom移植教程
进阶学习:(以下仅作参考,因实际情况不同,可能会有...参考资料:android-dls.com 制作一个刷机包 ROM ...修改过程: 1.反编译 framework-res.apk,找到\...
更多相关标签: