设为首页收藏本站

移动叔叔

搜索
查看: 4395|回复: 0
打印 上一主题 下一主题

ROM移植简明教程

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-8 13:41:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
教程类
教程类: 操作使用

此教程仅介绍如何移植MIUI到MT4G,原理方面的东西不会涉及太多,主要是因为我对原理方面的东西也不是很懂,怕误导了大家。其次,因为官方支持Desire HD和DZ,所以移植MIUI到MT4G相对来说还是比较容易的。

开始讲移植之前要先介绍一下CM(CyanogenMod),CM是基于AOSP的开源Android系统,它对官方版本进行了一些优化和改进,是开源社区里比较流行的一个Android系统,对应的也出了很多机型的版本,其中就包括了MT4G。如果我没有猜错的话,MIUI是基于早期版本的CM(没有看到MIUI组确认,所以说是猜测),主要是我在MIUI上看到了很多CM的代码。知道了MIUI是基于CM的,那可以帮我们解决一个问题,如果你移植的时候,发现了问题,最快的解决方法就是打开CM的代码看一下,一般呢,通过一些LOG就可以找到具体是哪些代码了。然后就是读CM的代码,分析MIUI的代码,对比起来,大概就能找到解决问题的方法了。这些涉及的东西可能不是做开发的人不是很好理解,我也只是希望有更多的人能够一起来做。

接下来我们正式讲如何移植MIUI。Android的ROM都是一个经过签名的zip包,我们看一下这个zip包的格式:



目录结构应该在很多地方都有介绍过,为了完整性,我还是简单地介绍一下:

1.
META-INF

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

2.
system

这里面就是android的系统部分

1.
app

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

2.
bin

这里面存放的是native程序。简单来说,apk是JAVA程序,而这个是C/C++的程序。这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件(命令)

3.
etc

这里面存放的是系统默认的配置文件,GPS、音频、视频、apn的配置都在这里,init.d文件夹这里主要是引导方式之类的,反正这里最好不动,或者使用你使用的内核的作者提供的,如果弄错了就会定在第一屏。

4
fonts

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

5.
framework

这里存放的主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。美化ROM的话, 主要改framework-res.apk就可以了。当然,MIUI本身就有主题机制了,不用这么麻烦去改。这个文件夹里也会有对应的odex文件。MT4G基于Desire HD版本移植的话,基本不需要修改。

6.
lib

lib目录中存放的主要是系统底层库,一些so文件,如平台运行时库,一般是由app/bin里面的程序调用的。

7.
media

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

8.
usr

用户文件夹,包含共享、键盘布局、时间区域文件等,移植时,键盘布局文件就在这里面。

9.
xbin

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

10.
build.prop

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

3.
boot.img

系统核心,其实就是Linux内核部分,这个img也是可以解开来定制的,但我没有试过。如果你喜欢新的核心的话,可以将这个文件替换掉,不过要兼容才行。目前国外XDA的小4论坛上,Faux123大神做的CM7/AOSP内核就兼容。


移植步骤:

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

xUltimate: http://www.droidforums.net/forum/xeudoxus/47283-release-xultimate.html

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

替换MT4G专用的文件,一般我们下载的MIUI ROM都是Desire HD的,我们下载了以后,要先把MT4G专用的文件替换进去:boot.img 和bcm4329.ko 分别为内核和无线驱动,一般来说换内核必换的system/lib/modules/bcm4329.ko,这个文件是wifi和蓝牙驱动,不同内核的驱动不同,如果不换wifi和蓝牙只会提示错误

这个前面介绍过了。这个可以从我以前的ROM中拿,也可以自己下载CyanogenMod 7的小4 ROM中提取。也可以到XDA上面下载新的AOSP核心。

bin/目录下的2个文件,awb_camera和lsc_camera 这2个是相机相关文件,用Desire HD的就会出现前置倒置的问题,

etc/firmware

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

etc/目录下
A1026_CFG.csv、 AdieHWCodec_WA.csv、AdieHWCodec.csv、media_profiles.xml、NOTICE.html.gz

音频解码和视频相关配置,替换掉

etc/gps.conf

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

lib/hw/目录下,从我的ROM中提取后替换掉。

lib/modules/bcm4329.ko

WIFI驱动,替换掉。

lib/目录下的.SO文件,从我的ROM中和Desire HD官方ROM中对比文件大小,不一样的就是可以替换的,可以从我的ROM中拿,也可以去CM7的ROM中拿,注意:千万要看好了,是在用我ROM和Desire HD官方ROM对比文件大小,不要拿CM7的对比,替换错了会开机卡在第一屏。

usr/目录下的keylayout和keychars2个文件夹是键盘相关文件,可以直接从我的ROM中提取替换。,

到此为止,简单的工作都做完了。下面要开始修改文件了。

修改刷机脚本
updater-script

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

修改build.prop

system/build.prop

  这个文件嘛,一般是留名用的:
  主要改以下几个地方:
  1、
  ro.product.locale.language=hdpi(或者有的机型是mdpi ldpi)
  ro.product.locale.region=

  改成
  ro.product.locale.language=zh

  ro.product.locale.region=CN

  这样开机第一次锁屏的时候就是中文
  2.

  ro.build.description=

  后面改成你想要的,也就是你作品的名字
  ro.product.version=

  这里也可以改成你作品的名字或者版本号,一般我们留为基于制作的官方系统的驱动版本号
  3、
  ro.sf.lcd_density=

  后面一般为240。
  4、
  ro.ril.def.agps.mode = 2

  听说改成0可以加速gps定位省流量

请对照我提供的文件进行修改,

这样,我们的移植就算完成了,接下来就是生成ROM了,我们用压缩工具将ROM打包成zip格式,注意目录结构,生成的zip根目录就有MATE-INF和system,别搞错了。将打包好的zip文件拷到工具包当中,改成update.zip,再双击sign.bat进行签名,签名后就生成了update_signed.zip了。


  
把签名后的ROM拷到卡上刷机吧~~

望高手研究研究!!!

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /1 下一条

© 2008-2025 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2025-1-28 03:22 , Processed in 0.153691 second(s), 13 queries , Gzip On, Memcache On.

返回顶部