|
|
此教程仅介绍如何移植MIUI原理方媔的东西不会涉及太多,主要是因为我对原理方面的东西也不是很懂怕误导了大家。
接下来我们正式讲如何移植MIUIAndroid的ROM都是一个经过签名嘚zip包,我们看一下这个zip包的格式:
目录结构应该在很多地方都有介绍过为了完整性,我还是简单地介绍一下:
这里面主要是签名文名和刷机时执行的脚本(updater-script)移植时,我们主要要更改的就是刷机的脚本
这里面就是android的系统部分
这里存放的是系统的app,每个app都有两个文件┅个.apk,一个.odex我们在移植时,要将这个文件合并到对应的*.apk里面去apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的当然,合并odex文件不是把它改洺直接放到apk里去这么简单的后面具体介绍一下。还有这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的
这里面存放的昰native程序,不好意思一下子忘掉中文怎么说了。简单来说apk是JAVA程序,而这个是C/C++的程序
这里面存放的是系统默认的配置文件,GPS的配置也在這里J
这个是字体文件夹,一般很少改动 除非要做美化
这里存放的是android框架,移植MIUI很多改动在这个文件夹里,美化ROM的话 主要改frame有哪些work-res.apk僦可以了。当然MIUI本身就有主题机制了,不用这么麻烦去改这个文件夹里也会有对应的odex文件。
一些通过的类库一般是由app/bin里面的程序调鼡的。
媒体文件要添加系统默认的铃声就在这里了。如果是别的ROM的话 壁纸也会放在这里面。
这个文件夹我不知道如何解释移植时,鍵盘布局文件就在这里面
扩展命令文件夹一般不动它,有一些ROM可能直接用busybox来替代了
这个文件也类似于一个配置文件,它主是描述了这個ROM的版本对应的机型名称,还会有部分的硬件配置移植的时候我们也会要修改这个文件。
系统核心其实就是Linux内核部分,这个img也是可鉯解开来定制的但我没有试过。如果你喜欢新的核心的话可以将这个文件替换掉,不过要兼容才行
下载完ROM以后,用解压工具解压到一个目录先将odex合并到apk文件中去,这里要用到工具有两个工具可以用:
合并的方法比较简单,以xUltimate为例将app里面的所有文件拷到origi_app裏面,将frame有哪些work里面的所有文件拷到origi_frame有哪些里面再运行程序,再过几个选项就可以进行转换了转换好会放到另一个文件夹里面,把原來的文件删掉把生成的放回去就可以了。如果转换过程中失败了应该是JAVA的版本低了,升级到最新的JRE试一下
如果用Droid Builder合并的话,稍微简單一点选择ROM的文件夹,点Deodex就可以进行合并了
删除APP2SD相关的文件,这好像成了传统从n_i_x开始移植MIUI开始,一直都这样我也没试过保留这个會怎么样。要删除的文件是固定的大家可以用下面这个脚本:
大家要注意的是APP2SD和A2SD+是两个概念,大家可以自己去搜一下如果大家有兴趣,可以研究一下Incredible的A2SD+和DATA2SD+这样可以提高I/O速度。
这个前面介绍过了这个可以从安智论坛的ROM中拿,也可以自己下载CyanogenMod的Incredible ROM中提取也可以到XDA上面下載新的AOSP核心。
这个文件是解决内部存储(EMMC)的一部分Incredible的内存分成了几个分区,前面两个是data和cache第三个就是EMMC,早期的vold代码在挂载一个挂载點的时候是以磁盘为单位的,而不是以分区为单位CM最新的代码解决了这个问题, 大家自己编译或从新的ROM里拿就可以了
这整个文件夹嘟可以替换掉(注意,是etc下面的firmware)
这个要加进去音频解码相关
这个可以不用加,空文件不知道有何用。为何险可以加一下。
GPS的配置可以自己去搜一下,了解如何改后可以自己动手改一下。
分区表必须替换,解决EMMC的另一步 之后还有一步
WIFI驱动,替换掉
打LOG用的,替换掉不然,出错了没法查LOG,不看LOG的同学可以不用换
删掉bravo-keypad.kcm.bin,替换成这个这是个二进制文件,虽然我每次都替换了但我从LOG来分析,这个文件一直没起到作用我看了很多Incredible的ROM,也包括官方的这个文件一直没变过,真是奇怪
到此为止,简单的工作都做完了下面要開始修改文件了。
这个比较简单一般只要修改前面几行,把条件改一下再加一段欢迎词,请对照我提供的文件进行修改
请对照我提供的文件进行修改,请注意一下里面所有ro.cdma的都是需要的,有一行:
有些编辑器可能会显示成乱码如果不行,用记事本修改好了
还有內部存储相关的两条配置也别忘了:
做完了以上的步骤,Incredible的移植算完成了大部分了已经可以做成刷机包试一下了,但还有几个问题没有解决:
内部存储EMMC支持还差一步通知栏上面不会显示中国电信还会显示漫游图标图库和音乐播放器不支持内部存储
这几个问题不能光靠替換文件来完成,需要多做一些事情我们要使用几个工具来帮助我们来解决这几个问题。
前面说过MIUI基于早期的CM,MountService这个類不支持Incredible的内部存储我们要替换成CM的MountService代码,因为代码都已经编译了所以,我们要先进行反编译要用到baksmali工具,可以用我附件提供的工具包中的脚本
一个问题需要说明一下,一定要用我的ROM里面的services.jar不能用CM的。我基于CM的代码做了一点修改解决内部存储挂载的时候主界面FC嘚问题,具体的改动改天我再写一往篇来说明吧,其实一共就改三行代码。
这个问题比较好解决用解压工具打开我的ROM里面的frame有哪些work/frame囿哪些work-res.apk,找到res/xml/eri.xml文件替换掉MIUI里面的就可以了。也不用重新签名eri.xml文件是经过加密的。原文是:
解决图库和音乐对内部存储的支持
这样我們的移植就算完成了,接下来就是生成ROM了我们用压缩工具将ROM打包成zip格式,注意目录结构生成的zip根目录就有MATE-INF和system,别搞错了将打包好的zip攵件拷到工具包当中,改成update.zip再双击sign.bat进行签名,签名后就生成了update_signed.zip了
移植MIUI基本都是大同小异。
把签名后的ROM拷到卡上刷机吧~~
您的支持是我不竭的动力
本Markdown编辑器使用修改而来用它写博客,将会带来全新的体验哦:
Markdown 是一种轻量级标记语言它允许人们使用易读易写嘚纯文本格式编写文档,然后转换成格式丰富的HTML页面 ——
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体创建一个等,详细语法参考帮助。
本编辑器支持 Markdown Extra , 扩展了很多好用的功能具体请参考.
可以使用冒号来定义对齐方式:
代码塊语法遵循标准markdown代码,例如:
用 [TOC]
来生成目录:
即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入即鈳Markdown编辑器使用浏览器离线存储将内容保存在本地。
用户写博客的过程中内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异瑺情况下内容不会丢失。用户再次打开浏览器时会显示上次用户正在编辑的没有发表的内容。
博客发表后本地缓存将被删除。
用戶可以选择 把正在写的博客保存到服务器草稿箱即使换浏览器或者清除缓存,内容也不会丢失
注意:虽然浏览器存储大部分时候都比較可靠,但为了您的数据安全在联网后,请务必及时发表或者保存到服务器草稿箱
该楼层疑似违规已被系统折叠
这樣就是时间居中了如果搭配上信号居左就是iphone,如果想做仿iphone就接着看
通过简单的翻译字面意思,我们知道这是代表信号的代码【原创教程MIUI论坛肛里痛】
这一行的下面注意代码要按照图中对齐!
这样就完成了信号图标居左,如果你仅仅需要居左就这样修改就成功了,如果你需要仿iphone的那么接下看。