百度云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

使用 BeyondCompare 进行对比操作,篇幅所限,本文中不再教给大家,但是在互联网中关于这个工具的教程有很多,大家可以自学下。

三、移植过程中所需要的操作
1.
移植百度的应用层和framework 框架层- W8 t3 z; k  [/ B0 @
此处将如下图三个文件夹必须使用百度 sample  包的,否则会产生各种 bug
 2013-1-18 11:38 上传
下载附件 (85.76 KB) 




2.移植lib 层
system 下的lib 文件夹主要是Android 系统的动态链接库,这里面有一些是系统硬件相关的接口,以及
一些系统层应用需要调用的库文件,还有厂商的HAL 层的库文件,百度同样在此处进行了修改。

所以在移植这里的时候一定要谨慎,不能随便删减添加东西,但是其中的 modules  必须使用官方 base  包的,下面给出使用的基本列表,在列表以外的尽量保持百度 sample  包的:
 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的大神们!!!哈哈~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值