任意安卓移植ROM教程,超详细ROM技术学习

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任意安卓移植ROM教程,超详细ROM技术学习

相信有过刷机经历的都知道安卓系统的构造,我们讲述一下安卓的几大组成:从内核基于linux开始,整个系统就运行在一个虚拟机上,这是安卓的一大特征!!

那么我们移植的时候要修改哪一部分?这就是我们这个帖子的重点了。在刷机时,我们大多使用zip格式的升级包进行刷机,那zip 格式的升级包是怎么样的一个组成呢?一个zip升级包的完整构造,其中我们要移植所需要修改的就是META-INF里的刷机脚本。

对于这个构造,有必要完整的解释一次。

META-INF

这里面主要是签名文名和刷机时执行的脚本(updater-script),移植时,我们主要要更改的就是刷机的脚本。system

这里面就是android的系统部分app

这里存放的是系统的app,每个app都有两个文件,一个*.apk,一个*.odex,我们在移植时,要将这个文件合并到对应的*.apk里面去,apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的,当然,合并odex文件不是把它改名直接放到apk里去这么简单的,后面具体介绍一下。还有,这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的。bin

这里面存放的是native程序,不好意思,一下子忘掉中文怎么说了。简单来说,apk是JAVA 程序,而这个是C/C++的程序。etc

这里面存放的是系统默认的配置文件,GPS的配置也在这里J。fonts

这个是字体文件夹,一般很少改动,除非要做美化framework

这里存放的是android框架,移植MIUI,很多改动在这个文件夹里,美化ROM的话,主要改framework-res.apk就可以了。当然,MIUI本身就有主题机制了,不用这么麻烦去改。这个文件夹里也会有对应的odex文件。lib

一些通过的类库,一般是由app/bin里面的程序调用的。media

媒体文件,要添加系统默认的铃声就在这里了。如果是别的ROM的话,壁纸也会放在这里面。

usr

这个文件夹我不知道如何解释,移植时,键盘布局文件就在这里面xbin

扩展命令文件夹,一般不动它,有一些ROM可能直接用busybox来替代了。

1.build.prop

这个文件也类似于一个配置文件,它主是描述了这个ROM的版本,对应的机型名称,还会有部分的硬件配置,移植的时候我们也会要修改这个文件。

2.boot.img

系统核心,其实就是Linux内核部分,这个img也是可以解开来定制的,但我没有试过。如果你喜欢新的核心的话,可以将这个文件替换,不过要兼容才行。

因为不同的机子有不同配置,接下来就以当下最火的小米移植为例子。为大家讲述如何移植小米(以下例子参考隔壁网站,在这里感谢”潇琪“)

移植步骤:下载完ROM以后,用解压工具解压到一个目录,先将odex合并到apk文件中去,这里要用到工具,有两个工具可以用:

工具名称:xUltimate 自己百度下合并的方法比较简单,以xUltimate为例,将app里面的所有文件拷到origi_app里面,将framework里面的所有文件拷到origi_frame里面,再运行程序,再过几个选项就可以进行转换了,转换好会放到另一个文件夹里面,把原来的文件删掉,把生成的放回去就可以了。如果转换过程中失败了,应该是JAVA的版本低了,升级到最新的JRE试一下。

如果用Droid Builder合并的话,稍微简单一点,选择ROM的文件夹,点Deodex就可以进行合并了。删除APP2SD相关的文件,这好像成了传统,从n_i_x开始移植MIUI开始,一直都这样,我也没试过保留这个会怎么样。要删除的文件是固定的,大家可以用下面这个脚本:del bin\a2sd /s /q del bin\apps2sd /s /q del bin\apps2sd.hlp /s /q del bin\boota2sd /s /q del bin\busybox.a2sd /s /q del bin\chka2sd /s /q del bin\fixa2sd /s /q del bin\jita2sd /s /q del bin\launcha2sd /s /q del bin\starta2sd /s /q del etc\init.d\04apps2sd /s /q del xbin\a2sd /s /q del xbin\apps2sd /s /q

大家要注意的是APP2SD和A2SD+是两个概念,大家可以自己去搜一下,如果大家有兴趣,可以研究一下Incredible的A2SD+和DATA2SD+,这样可以提高I/O速度。

替换Incredible专用的文件,一般我们下载的MIUI ROM都是Desire或N1的,我们下载了以后,要先把Incredible专用的文件替换进去:boot.img 这个前面介绍过了。这个可以自己下载CyanogenMod的Incredible ROM中提取。也可以到x,d-a上面下载新的AOSP核心。bin/vold 这个文件是解决内部存储(EMMC)的一部分,Incredible的内存分成了几个分区,前面两个是data和cache,第三个就是EMMC,早期的vold代码在挂载一个挂载点的时候,是以磁盘为单位的,而不是以分区为单位,CM最新的代码解决了这个问题,大家自己编译或从新的ROM里拿就可以了。etc/firmware

这整个文件夹都可以替换掉(注意,是etc下面的firmware)etc/AdieHWCodecSetting.csv

这个要加进去,音频解码相关etc/agps_rm

这个可以不用加,空文件,不知道有何用。为何险,可以加一下。etc/AudioBTID.csv

音频相关,替换掉etc/gps.conf

GPS的配置,可以自己去搜一下,了解如何改后,可以自己动手改一下。etc/TPA2018.csv

加进去,不知道何用。etc/vold.fstab

分区表,必须替换,解决EMMC的另一步,之后还有一步lib/hw/lights.inc.so,

lib/hw/sensors.inc.so 删掉lights.bravo.so和sensors.bravo.so替换成这两个。lib/modules/bcm4329.ko WIFI驱动,替换掉。lib/liblog.so

打LOG用的,替换掉,不然,出错了,没法查LOG,不看LOG的同学可以不用换。usr/keychars/incrediblec-keypad.kcm.bin

删掉bravo-keypad.kcm.bin,替换成这个。这是个二进制文件,虽然我每次都替换了,但我从LOG来分析,这个文件一直没起到作用,我看了很多Incredible的ROM,也包括官方的,这个文件一直没变过,真是奇怪。usr/keylayout/incrediblec-keypad.kl

删掉bravo-keypad.kl,替换成这个。这个是Incredible的键盘布局配置。到此为止,简单的工作都做完了。下面要开始修改文件了。

修改刷机脚本这个比较简单,一般只要修改前面几行,把条件改一下,再加一段欢迎词,请对照我提供的文件进行修改。

修改build.prop 请对照我提供的文件进行修改,请注意一下,里面所有ro.cdma的都是需要的,有一行:ro.cdma.home.operator.alpha=中国电信有些编辑器可能会显示成乱码,如果不行,用记事本修改好了。还有内部存储相关的两条配置也别忘了:ro.phone_storage =1ro.additionalmounts=/mnt/emmc

相关文档
最新文档