请选择 进入手机版 | 继续访问电脑版

小白手机网_让小白也能一键刷机救砖

查看: 756|回复: 0

MTK6577平台百度云ROM移植教程

[复制链接]
  • TA的每日心情
    擦汗
    2016-6-1 09:40
  • 签到天数: 55 天

    [LV.5]常住居民I

    54

    主题

    59

    帖子

    214748万

    积分

    管理员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    2147483647

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    QQ
    发表于 2016-6-8 14:50:04 | 显示全部楼层 |阅读模式
    本文为MTK6577百度云ROM移植教程,百度云已经有了MTK6577平台的ROM A789,基于A789,我们可以将百度云ROM移植到其他的MTK6577的机型上。类似的可移植机型还有:联想P700i、联想A800、联想 A660、联想s850e、金立GN700W、金立C700、金立C610、纽曼N1、中兴V889M、中兴V880F等,把机型写出来供大家参考。根据 自身的移植心得,再参考其他已有教程,总结了一下百度云ROM的移植。在本文中我们将会对市面上存在的可以刷MTK6577 平台机器的移植进行介绍,本篇理论上适用于所有MTK6577平台的移植。



    准备环境:



    cygwin安装,如果有linux环境,则可以直接绕过这一步。



    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 选择合适的百度云ROM刷机包


    在这里一定要注意,现在百度MTK6577 暂时仅支持WVGA(800X480)分辨率,但是后续应该会支持其他分辨率的机型的!


    现在,请大家到百度官方下载联想A789 的刷机包作为移植基准包(后面简称sample 包)!

    二、移植之前的准备工作


    选择好合适的base 包并下载完sample 包以后,我们首先要进行上面的操作得到system 文件夹和boot.img,这时再将sample 包解压到任意文件夹。


    1.明确移植操作的方向


    在这里,我们首先一定要明确移植的方向是:



    以百度的sample 包作为最终成型刷机包的基础,把base 包中各机型特有的东西加上去,最终形成自己的刷机包。


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

    三、移植过程中所需要的操作


    1.移植百度的应用层和framework 框架层


    此处将如下图三个文件夹必须使用百度sample包的,否则会产生各种bug:


    百度云ROM移植教程

    2.移植lib层


    system下的lib 文件夹主要是Android 系统的动态链接库,这里面有一些是系统硬件相关的接口,以及一些系统层应用需要调用的库文件,还有厂商的HAL 层的库文件,百度同样在此处进行了修改。所以在移植这里的时候一定要谨慎,不能随便删减添加东西,但是其中的modules必须使用官方base包的,下面给出使用的基本列表,在列表以外的尽量保持百度sample包的:







    需要替换为官方的文件状态(如果没有需要添加)


    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://www.cnanzhi.com/topic/yizhi/184



    修改配置文件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



    添加副卡路径(可选):



    在下面



    export EXTERNAL_STORAGE /mnt/sdcard



    的后面加上一行



    export SECONDARY_STORAGE /mnt/sdcard2



    注意:不一定是/mnt/sdcard2, 如果加上后,文件管理器上面找不到手机上的文件,请不要添加这一项)   



    将BOOTCLASSPATH改为百度的,为了防止有些jar包遗漏)



    另外在on fs下加上



    chown root root /system/bin/su
    chmod 6755 /system/bin/su

       

    添加以下内容, 好像是百度的服务



    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论坛提出。


                                                                         
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|小白手机网  |申请友情链接

    GMT+8, 2019-3-22 06:27 , Processed in 0.867518 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表