在之前的文章中,我们讨论过ROM刷机原理,修改ROM包以及如何让ROM包获取root权限。那么接下来,我们谈谈MTK平台手机ROM移植的话题。如果你是ROM小白,那么建议可以先看看之前的文章。 ROM刷机原理 修改ROM包 ROM包获取root权限 好了请注意:下面的教程只适用于MTK芯片手机,并且理论上只能同安卓版本相互移植,例如4.1移植4.1,4.2移植4.2。建议选取分辨率相近的机器,避免部分错位和不开机情况。 我们今天先讨论同平台移植(例如MTK65××相互移植) 一、准备ROM 1.把官方ROM和要移植的ROM解压。 2.从你的官方系统中提取以下文件(建议整合一下,方便以后更多次的移植),需要替换的文件夹有: system/vendor/lib/ 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问题请替换) 二、刷机脚本的修改 用编辑器(如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的脚本中去。 三、build.prop修改 此为优化配置文件,要优化的请在此优化,具体请在网上查。 ril.telephony.mode=# 这里#为一个数字,把这个数字改为官方包里的。至于机型、版本,可以不改。 四、boot.img部分 这里呢,有一键移植boot工具,网上就可以找到,用工具移植一下boot.img就OK了。后面有时间也可以谈谈手动修改boot.img。 五、打包 把上面三个打包成zip格式的压缩包。如果移植包目录除了/system,data/,/META-INF,boot.img还有一些其它文件,比如lk.bin,logo.img,或者logo.bin等等,这一部分文件可以用官方rom里的文件替换。如果官方rom里没有那些文件,那么就在刷机脚本boot.img那一段把响应文件刷入部分的脚本删除就OK了。有经验的童鞋可以自行删除不想要的文件。 下面是压缩文件时应选择的配置:压缩格式: ZIP,压缩方式: 标准 六、签名 网上下载签名工具,签名以后就OK了。
到这里就基本完成了。然后就是刷入测试了,祝你成功!我们下一次讨论。
转自:墨科之家
|