百度云ROM移植教程
這是基于MTK平頭的??,應該高通的移植起來差不多
百度云ROM移植教程(基于MTK6577)
百度云已經有了MTK6577平臺的ROM A789,基于A789,我們可以將百度云ROM移植到其他的MTK6577的機型上。類似的可移植機型還有:聯想P700i、聯想A800、聯想A660、聯想s850e、金立GN700W、金立C700、金立C610、紐曼N1、中興V889M、中興V880F等,把機型寫出來供大家參考。
根據自身的移植心得,再參考其他已有教程,總結了一下百度云ROM的移植。在本文中我們將會對市面上存在的可以刷MTK6577 平臺機器的移植進行介紹,本篇理論上適用于所有MTK6577 平臺的移植。
準備環境:
cygwin安裝,如果有linux環境,則可以直接繞過這一步:
http://bbs.gfan.com/android-3940709-1-1.html? ?
MTK刷機工具下載地址:
http://pan.baidu.com/share/link?shareid=217870&uk=3609743142? ?? ?
一、選擇合適的基礎包
1.1?選擇合適的第三方ROM?包
市面上MTK 平臺的手機眾多,這時我們需要選擇一個合適的ROM 作為基礎包(這這里簡稱Base)。
首先,本篇中我們講的是直接將MTK6577 平臺手機的官方ROM 移植成為百度的ROM。
在這里我們首先要找到自己機型的刷機包,然后進行如下操作(如果是卡刷包可以直接跳過):
1)首先要找到自己機型的線刷包和卡刷包,卡刷包的目的主要是不用去解包system.img;
2)提取卡刷包的system(或者找工具解包線刷包的system.img);
3)提取解包出來的system 文件夾和線刷包中的boot.img。
1.2 選擇合適的百度OS 刷機包
在這里一定要注意,現在百度MTK6577 暫時僅支持WVGA(800X480)分辨率,但是后續應該會支持其他分辨率的機型的!
現在,請大家到百度官方下載聯想A789 的刷機包作為移植基準包(后面簡稱sample 包)!
二、移植之前的準備工作
選擇好合適的base 包并下載完sample 包以后,我們首先要進行上面的操作得到system 文件夾和boot.img,這時再將sample 包解壓到任意文件夾。
1.明確移植操作的方向
在這里,我們首先一定要明確移植的方向是:
以百度的sample 包作為最終成型刷機包的基礎,把base 包中各機型特有的東西加上去,最終形成自己的刷機包。
2.學習使用BeyondCompare
三、移植過程中所需要的操作
1. 移植百度的應用層和framework?框架層- W8 t3 z; k??[/ B0 @
此處將如下圖三個文件夾必須使用百度 sample? 包的,否則會產生各種 bug :
9??2013-1-18 11:38 上傳
下載附件?(85.76 KB)?
2.移植lib 層
system 下的lib 文件夾主要是Android 系統的動態鏈接庫,這里面有一些是系統硬件相關的接口,以及
一些系統層應用需要調用的庫文件,還有廠商的HAL 層的庫文件,百度同樣在此處進行了修改。
?2013-1-18 11:41 上傳
下載附件?(37.95 KB)?
庫
需要替換為官方的文件狀態(如果沒有需要添加)
modules 文件夾必須整個使用官方base 包的
使用BeyondCompare 對比出來base 包多的.so 文件可以添加
3.移植system/bin?和system/xbin?文件夾
必須全部使用sample 包的,否則有可能出現系統權限錯誤,busybox 失效等問題
4.移植system/media?文件夾整個文件夾必須使用百度sample的,否則可能出現開機動畫消失,鎖屏消失,無法開機等問題。
5.移植system/usr?文件夾,?
這里請將sample 包的keychars 和keylayout 兩個文件刪除,替換為base 包中的這兩個文件夾。
6.移植system/etc?文件夾
必須將sample 文件夾中firmware 文件夾刪除,替換為官方base 包中的firmware 文件夾。:
7.修改build.prop
必須使用base 包中官方的build.prop,但是必須在build.prop 任意位置加入如下幾行(對比了A789百度和聯想官方的build.prop,發現百度修改和添加了一下prop,移植時如果base的build.prop有這個屬性,替換,沒有則增加即可):
ro.baidu.build.hardware=A789(這里以A789為例,可選擇自己適配的機型)
ro.baidu.build.hardware.version=1.0
ro.baidu.build.software=yi_3.0
ro.baidu.build.version.release=2.1
ro.product.manufacturer=Baidu
persist.sys.emmc=/mnt/sdcard2
ro.config.notification_sound=Ding.mp3
ro.config.ringtone=Echo.mp3
ro.config.alarm_alert=alarm.mp3
刪除以下幾個屬性
ro.operator.optr=
ro.operator.spec=
ro.operator.seg=
注意事項:
修改build.prop,建議直接使用BeyondCompare來做,按給出的參考進行復制。
8.移植boot.img
這里無需多說,boot.img 啟動鏡像必須使用自己手機的。對比了一下百度和聯想官方的boot.img,發現百度修改了boot.img里的default.prop和init.rc來支持手機root和它自己的一些服務。
注意事項:
由于.gz文件格式的問題,要修改ramdisk里的default.prop和init.rc,必須在linux下修改
解包和打包mtk的boot.img的方法和工具見如下連接,需要安裝perl:
http://hi.baidu.com/juicewb/item/60894415329ae2fb65eabfa9
修改:boot.img-ramdisk/default.prop
ro.secure=1? ?修改為??ro.secure=0
ro.debuggable=1?修改為?ro.debuggable=1
persist.sys.usb.config=mass_storage?修改為?persist.sys.usb.config=mass_storage,adb
修改:boot.img-ramdisk/init.rc
a)? ?? ?? ?添加副卡路徑(可選):在export EXTERNAL_STORAGE /mnt/sdcard后面加上一行export SECONDARY_STORAGE/mnt/sdcard2??
注意:不一定是/mnt/sdcard2,?如果加上后,文件管理器上面找不到手機上的文件,請不要添加這一項
b)? ?? ?? ?將BOOTCLASSPATH改為百度的,為了防止有些jar包遺漏
c)? ?? ?? ?另外在on fs下加上
chown root root /system/bin/su
chmod 6755 /system/bin/su
d)? ?? ?? ?添加以下內容,?好像是百度的服務
service alljoyn-daemon /system/xbin/alljoyn-daemon --internal --no-switch-user --no-bt
? ? class main
? ? oneshot
service WordSegService /system/bin/WordSegService
? ?? ?? ?class main
? ?? ?? ?oneshot
service backuprestore /system/bin/backuprestore
? ? class main
socket backuprestore stream 600 system system
四、移植完成后的工作
1.壓縮打包為zip?刷機包
META-INF建議在百度的A789基礎上進行修改
修改META-INF/com/google/android/updater-script:
百度的A789在這里添加了:
assert(getprop("ro.product.device") == "A789" ||
? ?? ? getprop("ro.build.product") == "A789" ||
? ?? ? getprop("ro.product.device") == "a789" ||
? ?? ? getprop("ro.build.product") == "a789");
這個需要根據具體機型進行更改,要不然就直接刪除吧。
assert(package_extract_file("recovery.img", "/tmp/recovery.img"),
? ?? ? write_raw_image("/tmp/recovery.img", "recovery"),
? ?? ? delete("/tmp/recovery.img"));
這個是要來刷recovery的,如果沒有就刪除吧。
2.壓縮打包為zip?刷機包
完成上述操作后,你的百度OS 移植ROM 已經基本完成了,這時候,你需要將你解包sample 包出來并移植完成后的system,META-INF 文件夾以及boot.img 啟動鏡像打包回去,只需要像平時壓縮文件時一樣,將它們打包為一個zip 壓縮包。在這里一定要注意,必須使用zip 格式壓縮,同時不能用太大的壓縮碼率。
3.使用Recovery?輸入ROM?包進行測試!?
我相信進行移植操作的各位都已經很熟練刷機這個步驟,但是在這里我還是要提醒大家,做好的ROM 一定要自己刷入進行測試,刷入時一定要雙清(雙Wipe)。
4.測試過后出現Bug?的反饋機制
我相信大家只要選好base 包,并如上操作,你們的百度ROM 已經成型并可以使用了。
但是,因為每一個ROM 制作者針對不同機型所做的修改不同,有可能會出現一些Bug,如果出現了大家無法解決的Bug。
這時,可以考慮去百度云rom論壇反饋問題,請教百度云rom的大神們!!!哈哈~~~~
總結
以上是生活随笔為你收集整理的百度云ROM移植教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows环境下electron开发
- 下一篇: 如何看待深度学习门槛低的说法?