在以前的文章中,咱们讨论过ROM刷机原理,修改ROM包以及如何让ROM包获取root权限。那么接下来,咱们谈谈MTK平台手机ROM移植的话题。若是你是ROM小白,那么建议能够先看看以前的文章。php
ROM刷机原理:http://www.morecomtech.com/community/article/sjjc/w2015090005.phpandroid
修改ROM包:http://www.morecomtech.com/community/article/sjjc/w2015102300.phpweb
ROM包获取root权限:http://www.morecomtech.com/community/article/sjjc/w2015102000.php编辑器
好了请注意:下面的教程只适用于MTK芯片手机,而且理论上只能同安卓版本相互移植,例如4.1移植4.1,4.2移植4.2。建议选取分辨率相近的机器,避免部分错位和不开机状况。工具
咱们今天先讨论同平台移植(例如MTK65××相互移植)测试
1、准备ROM优化
1.把官方ROM和要移植的ROM解压。ui
2.从你的官方系统中提取如下文件(建议整合一下,方便之后更屡次的移植),须要替换的文件夹有:google
system/vendor/lib/spa
system/usr/keychars和keylayout两个文件夹(触屏和按键配置)
system/lib/modules/【常规】
system/lib/hw/(传感器)
system/lib/cam开头的.so(这里呢,个人习惯是先替换libcameracustom.so,若是相机出了问题再替换其它的)
system/lib/audio开头的.so(这里一般我也只替换libaudio.primary.default.so)
system/etc/firmware/(基带)【必须】
system/etc/mddb/
system/etc/vold.fstab(挂载分区位置,自行调换)
system/etc/bluetooth(如出现蓝牙问题请替换)
system/etc/wifi(wifi问题请替换)
2、刷机脚本的修改
用编辑器(如notepad++)打开要移植的ROM中META-INF/google/android/updater-script
1.若是脚本开头有验证机型,例如assert(getprop(“ro.product.device”)== “**x” || getprop(“ro.product.product”) ==“**xx”)。这是验证机型的代码。没有则无视,有则删除也能够修改为本身的机器名称。
2.找到format(".......。只须要修mmcblk0p#这里的#是一个数字,修改这个数字为跟官方包相同的,mount("...这句也相同。例如:这是要移植的ROM中的刷机脚本的部份内容:
format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");
这是官方包中刷机脚本的部份内容
format("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
那么,你只需把要移植的ROM中的刷机脚本中的mmcblk0p5改成mmcblk0p3。注意,若是没有基础,请不要直接把官方ROM中刷机脚本的整个内容替换到要移植的ROM的脚本中去。
3、build.prop修改
此为优化配置文件,要优化的请在此优化,具体请在网上查。
ril.telephony.mode=# 这里#为一个数字,把这个数字改成官方包里的。至于机型、版本,能够不改。
4、boot.img部分
这里呢,有一键移植boot工具,网上就能够找到,用工具移植一下boot.img就OK了。后面有时间也能够谈谈手动修改boot.img。
5、打包
把上面三个打包成zip格式的压缩包。若是移植包目录除了/system,data/,/META-INF,boot.img还有一些其它文件,好比lk.bin,logo.img,或者logo.bin等等,这一部分文件能够用官方rom里的文件替换。若是官方rom里没有那些文件,那么就在刷机脚本boot.img那一段把响应文件刷入部分的脚本删除就OK了。有经验的童鞋能够自行删除不想要的文件。
下面是压缩文件时应选择的配置:压缩格式: ZIP,压缩方式: 标准
6、签名
网上下载签名工具,签名之后就OK了。
到这里就基本完成了。而后就是刷入测试了,祝你成功!咱们下一次讨论。