教你制作android rom

上传人:kms****20 文档编号:40628467 上传时间:2018-05-26 格式:DOC 页数:4 大小:32.50KB
返回 下载 相关 举报
教你制作android rom_第1页
第1页 / 共4页
教你制作android rom_第2页
第2页 / 共4页
教你制作android rom_第3页
第3页 / 共4页
教你制作android rom_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《教你制作android rom》由会员分享,可在线阅读,更多相关《教你制作android rom(4页珍藏版)》请在金锄头文库上搜索。

1、教你制作 Android ROM 有点玩机兴趣的 android 爱好者,应该对 custom ROM 这种东西都不陌生。我介绍 root 权 限获取的时候,就直接用的 MoDaCo Custom ROM 作为例子。适用于 Hero 比较好的 ROM 还有不少,比如 Drizzys Custom HeroROM 等等,都可以在 XDA 上找到。肯定有不少朋 友感到很好奇,这些 ROM 都是怎么做的。考虑到中文社区相关资料比较少,在这里抛砖 引玉,大概原理介绍一下。 对于第三方 ROM 来讲,通常都包括两部分,一个 recoveryimage,一个 update.zip。而大多 数的第三方 RO

2、M 的特色,就是加入了很多东西,比如 superuser 程序来获得 root 权限, busybox 来扩充命令行下的功能,各种各样的配置文件或者小工具,比如默认打开中文 locale,等等。这些看似神奇的改动,都是在 update.zip 里面搞的,custom recoveryimage 的 主要作用就是引导用户的操作,比如让你先备份,再应用 update.zip,再重启之类的操作。 由于 custom recoveryimage 和 update.zip 的耦合性很小,所以不少 custom ROM 直接都用同 一个 custom recoveryimage,这个好像是出自 MoDaC

3、o 作者之手。再然后,我之前的文章已 经有对 recoveryimage 的简单讲解,所以这里,我主要介绍一下 update.zip 的制作。如果我们直接把 MoDaCoROM 中的 update.zip 解包,我们会发现有一个 boot.img,一个 data 文件夹,一个 system 文件夹,一个 META-INF 文件夹。这个 data 文件夹放的是 init.rc,而本来在系统中,init.rc 就是在 data 目录下的。当然,两者的作用不一样,这里的 init.rc 主要作用是开机执行你希望执行的命令,比如 MoDaCo 的 init.rc 就是 install busybox。

4、 而值得详细说明的,就是 system 文件夹。MoDaCoROM 版本的 system 下有一系列作者希 望放到系统中的工具,对于 apk 文件,就放到 app 下,工具就放到 bin 和 xbin 下,依此类 推。换句话说,system 或者 data 这个目录层次结构是取决于你自己的,你希望放的东西属 于什么,应该运行在 online 系统的什么目录下,update.zip 里面就应该是有相应的目录路径, 然后东西就放在里面。 具体点,我们现在要依样画葫芦,搞一个新的 update.zip,那么第一步就是首先建立一个文 件夹mkdir new-update好,假设我新 update.zi

5、p 的作用就是预装我自己的一个程序,my.apk,那么,我建立对应 的子目录mkdir -p new-update/system/app cp my.apk !$这样,system 目录就完成了。但是这时,update.zip 的目录层次还没完,我们看 MoDaCoROM 中的 update.zip 中有文件夹叫 META-INF,这个文件夹很关键,除了根目录 下的三个文件外,里面层层目录,就包括了一个文件,叫 update-script,内容如下show_progress 0.1 0 copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0

6、 0755 0644 SYSTEM:xbinset_perm_recursive 0 0 0755 0644 SYSTEM:sd set_perm 0 0 04755 SYSTEM:bin/su set_perm 0 0 04755 SYSTEM:bin/a2sd set_perm 0 0 04755 SYSTEM:xbin/busybox copy_dir PACKAGE:data DATA: show_progress 0.2 0 format BOOT: write_raw_image PACKAGE:boot.img BOOT: show_progress 0.2 10这里面的内容,大

7、部分是针对你要做的修改设置的。比如copy_dir PACKAGE:system SYSTEM:就是把 system 中新增的工具拷贝到手机上,然后set_perm_recursive 0 0 0755 0644 SYSTEM:xbin set_perm_recursive 0 0 0755 0644 SYSTEM:sd set_perm 0 0 04755 SYSTEM:bin/su set_perm 0 0 04755 SYSTEM:bin/a2sd set_perm 0 0 04755 SYSTEM:xbin/busybox就是设置 MoDaCo ROM 中新增程序的权限,然后copy_

8、dir PACKAGE:data DATA:把 data 下的内容(就是那个 init.rc)复制到手机上,然后format BOOT: write_raw_image PACKAGE:boot.img BOOT:刷 boot 分区。 那我们这里没有这么多新增的东西,应该怎么写呢?copy_dir PACKAGE:system SYSTEM: set_perm_recursive 0 0 04755 SYSTEM:app/my.apk就可以了。你当然还可以做一些别的事情,比如加一个 FORMAT DATA 之类的_开个玩 笑,千万别这个干,不然你的数据就全没了。 好,那么也就是说,我们要在自己

9、的 new-update 目录下也建一个/META-INF/com/google/目 录,然后把新的 update-script 扔进去。 完了么?差一点。其实如果你没有别的需求了,那么就完了,可以把下面这一小块跳过。 下面这一小块,是关于 boot.img 的。在如何修改 Android 系统的 Ramdisk 以及 boot 镜像文 章中,我们谈到,如果刷 boot 镜像有问题,就要用别的方法让系统 boot 我们自己的bootimage 了,这个别的方法,自然就是用 update.zip 了。MoDaCoROM 版本的 update.zip 也包括了一个 boot.img,但是如果我们有

10、出于各种需求自己修改的 boot.img,自然就可以 替换掉原来的了。当然注意,如果加了 boot.img,那么 update-script 里面就不能漏掉write_raw_image PACKAGE:boot.img BOOT:这句。 好,到现在,我们的 new-update 目录下有/system/app/my.apk /META-INF/com/google/update-script /META-INF/MANIFEST.MF /META-INF/CERT.SF /META-INF/CERT.RSA boot.img恩,那么就进入打包阶段。你可能会问,这有什么难的,直接 zip 一下

11、不就得了。如果要 是这么简单就好了,你打包后,必须把你的内容都 sign 一下,得到相应的 cert,才能在 fastboot 模式中被承认并成功刷机。 在 sign 你的文件之前,先做这么几件事打包。进入 update 文件夹,zip update.zip xxx xxxx xxxx xxxxxxxx。什么意思呢,就是只把 你需要的文件打包,不要用./*作为参数。而且相对路径最好是在 update 下面,不要在外面 用 zipupdate.zip ./update/*这种命令打包 去 sun 网站下载最新的 jre 下载这个文件 testsign 一定要用 JRE1.6.0.16 或者更高,

12、我知道这个有点恶心,但是提供下载的 testsigh.jar 就是按 照这个版本或者更高编译的,你用老版本就运行不了。 好,下下来以后,执行这个命令/jre1.6.0_16/bin/java -classpath testsign_path/testsign.jar testsign update.zip update-signed.zip稍微讲解一下,java 程序是最新 jre 下的,testsign_path 是你放 testsign.jar 的地方,建议放 到 sdk 的 tool 目录下。update 是待 sign 文件,update-signed 是指定的生成文件名。 sign

13、执行完后,用 unzip -l 看,会发现/META-INF/MANIFEST.MF /META-INF/CERT.SF /META-INF/CERT.RSA三个文件的日期属性变了。我怀疑就是重新生成了这三个文件。但如果之前打包时候不包 括这三个文件,sign 完又不会新生成。因为不管大局,所以我就没有仔细研究,有清楚的 朋友恳请赐教。 好了,现在,把你自己的 update.zip 放到 sd 卡上,在 fastboot 下通过 recovery image 引导,执行 update.zip,然后就享受你自己的修改成果吧:) 最后提醒一句,任何类似的操作之前,都把自己的手机做好备份。此方法仅供参考,我不 对任何因此造成的破坏负责,嘿嘿。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号