上次咱們在《Android ROM DIY之MTK平臺手機通用移植》中討論了MTK芯片手機同平臺移植的方法,那麼今天咱們就談談跨CPU平臺的移植,以MT6582移植MT6572爲例。實際上大體步驟都差很少,只是還須要注意更多的細節。php
1、準備ROMandroid
參看同平臺篇web
Android ROM DIY之MTK平臺手機通用移植(同平臺篇)http://www.morecomtech.com/community/article/sjjc/w2015102700.phpapache
2、build.prop修改工具
打開移植包的build.prop,找到ro.mediatek.platform=MT65xx,修改這個MT65xx;再找到ril.telephony.mode=# 這裏#爲一個數字,把這個數字改成官方包裏的;至於機型、版本請酌情處理。ui
3、刷機腳本的修改spa
1.修改分區,(參看同平臺篇)debug
2.在"set_perm"這一大段找到set_perm(0, 0, 0644, "/system/vendor/lib/hw/gralloc.mt65xx.so");修改這裏的mt65xx。orm
3.移植內核(這裏能夠用BeyondCompare直接對比修改)server
用boot解包工具把官方boot和要移植的boot解包。這裏以6572移植6589爲例。
第一步:打開要移植的boot解包後的boot.img-ramdisk,而後從中複製全部文件到官方boot中的boot.img-ramdisk 文件夾中。若是文件存在就跳過,至關於把要移植包boot中多餘的文件複製到官方中去。打開官方boot.img-ramdisk文件夾中的init.rc。
①修改default.prop,參照要移植的boot改
②#Create Chip Property
on early_property:ro.hardware=mt6582
setprop ro.mtk.hardware mt6589
on early_property:ro.hardware=mt6589
setprop ro.mtk.hardware mt6589
修改後面兩個mt6589,例如,個人cpu是MT6572,那麼就這樣改 :
#Create Chip Property
on early_property:ro.hardware=mt6582
setprop ro.mtk.hardware mt6572
on early_property:ro.hardware=mt6589
setprop ro.mtk.hardware mt6572
第二步:修改init.rc裏的啓動項
以移植LewaROM爲例(MIUI大同小異,只是後面的lewa-framework.jar是miui-framework.jar而已,其它第三方ROM也差很少,具體看第三方ROM的啓動項後面)
複製如下代碼(不放心的能夠解開要移植包的內核查看):/system/framework/lewa-framwork.jar。把這一句放到每一段的最後,注意不要漏了前面的冒號。
修改好的示例:
on early_property:ro.build.type=user
write /proc/bootprof "INIT: user build setting"
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar:/system/framework/lewa-framework.jar
on early_property:ro.build.type=userdebug
write /proc/bootprof "INIT: userdebug build setting"
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar
on early_property:ro.build.type=eng
write /proc/bootprof "INIT: eng build setting"
export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar:/system/framework/emma.jar:/system/framework/lewa-framework.jar
修改好之後保存文件,而後打包boot.img,搞定!
後面就是打包ROM,而後該幹嗎幹嗎。
附:若遇到短信,電話,設置,通信錄強行關閉,可經過以下方法修復
1.反編譯官方和要移植的包中framework.jar,找到:\smali\com\mediatek,替換官方全部的這個文件夾的內容到移植的ROM中。
2.\smali\com\android\server替換官方全部的這個文件夾的內容到移植的ROM中。修改好後,回編譯要移植的ROM的framework.jar,而後替換回去。
下次咱們介紹在移植過程當中常見的問題以及解決辦法。