melonl吧 关注:97贴子:2,322

分享一下我个人移植Mtk ROM的心得,经验等

只看楼主收藏回复

好久没发帖了,来篇原创吧,锁屏镇楼


IP属地:广东来自Android客户端1楼2015-08-02 21:15回复
    这个教程理论上适用于所有Mtk的cpu,可能部分芯片这样移植不完美,不过大体上都是相同的,我的手机是Mtk6572的,6582,6589都是可以用这个教程的,其他请自测


    IP属地:广东来自Android客户端2楼2015-08-02 21:15
    回复
      先说说我吧,自从2014年3月份买了华为的一台mtk机子之后就一直没换,虽然中间用过别的机子,但没一会就又换回来了,期间弄了很多rom,也学了很多,从最开始的root,刷recovery,刷机,到后来的自己精简ROM,自己美化ROM,自己移植ROM,反编译,跨平台移植,编译ROM等等现在大部分同时期的机友都已经换机了,可能我也要换了吧,所以把经验都写下来,给其他人参考


      IP属地:广东来自Android客户端3楼2015-08-02 21:19
      回复
        解压两个包,分别是官方包和要移植的包,同芯片移植我们使用反向移植,这样比较稳定。
        从你的官方系统中提取以下文件替换到要移植的ROM中,注意,替换整个文件夹时先删除要移植的包中相应文件夹,不要直接合并
        system/vendor/lib
        system/usr/keychars和keylayout
        system/lib/modules
        system/lib/hw
        system/etc/firmware
        system/lib/soundfx


        IP属地:广东4楼2015-08-02 21:42
        回复
          还有system/lib/audio*.so(开头为audio的全部so)


          IP属地:广东5楼2015-08-02 21:45
          收起回复
            system/vendor/lib,这个文件夹我一般都不换,对于mt6572来说这个换不换没什么关系,至于为什么我也说不清楚,仅仅是因为实验过,当然,换也没问题。
            system/usr/keychars和keylayout,这两个文件夹是rom里的键值对应文件,不换这个可能会出现按键错误,比如返回键变成了home键。
            system/lib/modules,这个文件夹是boot.img-zimage相关的驱动文件(准确的说,ko文件才叫驱动,而so文件叫库文件),要使内核能运行,就必须将这个文件夹的换成你官方的,否则可能开不了机。
            system/lib/hw,这个文件夹放着一些比较重要的库文件,例如传感器,音频,gps相关的。
            system/etc/firmware,基带文件夹,不换的话开机了会找不到sim卡。
            system/lib/soundfx和system/lib/audio*.so,这两个文件夹都是一些音频相关的库文件。


            IP属地:广东6楼2015-08-02 21:54
            回复
              至于boot.img的处理方式,如果两个rom差异不大的话,是可以将boot.img直接换成官方的,具体看两个包的framework里的jar文件的数量,文件名是否一一对应,有多有少都不可以用这个方法,当然,有些情况就算jar相同也会开不了机。那么这时候就得把boot解开,可以用厨房工具,把官方boot里的zimage(kernel)替换到要移植的包中的boot里,然后把要移植包的boot作为最终要使用的boot打包进刷机包。


              IP属地:广东7楼2015-08-02 22:01
              回复


                IP属地:广东来自Android客户端9楼2015-08-02 22:17
                收起回复
                  然后就是跨cpu移植了,我的mt6572可以移植6582,6589的,至于6577什么的没试过,毕竟6582和6589才是65xx系列中热门的芯片。咳咳,回归正题,跨cpu移植很难,如果你连同cpu都没移植过,那么请不要尝试跨cpu,否则会打击你的自信心...


                  IP属地:广东10楼2015-08-02 22:23
                  回复
                    累死了。。打这么多字,以后有时间再继续写吧。。


                    IP属地:广东12楼2015-08-02 22:32
                    回复
                      …………


                      来自Android客户端13楼2015-08-03 11:48
                      回复


                        来自Android客户端14楼2015-08-03 13:47
                        回复


                          IP属地:广东来自Android客户端15楼2015-08-03 18:16
                          回复
                            有时间了,现在继续。说到boot的处理方式,我所知道有三种方法,一是使用同cpu移植的方法,直接替换boot.img-zimage(kernel)为官方的,这种方法可能行不通,但也不好说。二是来自xda的跨cpu移植文章里说的,用官方的boot.img,解包修改init.rc的启动项为要移植包的boot.img里的,然后将这个boot作为最终要使用的boot打包进rom。三是别人告诉我的方法,将要移植的rom的boot解开,将里面的ueventd.rc换成官方boot里的,再把官方的init.rc修改启动项,覆盖到要移植的boot里。


                            IP属地:广东来自Android客户端16楼2015-08-04 17:08
                            回复
                              我尝试过这三种方法,大多数包都是可以过第一屏,也就是说boot是可以正常起来的,我推荐使用第二种和第三种,只是推荐,具体的看你自己决定


                              IP属地:广东来自Android客户端17楼2015-08-04 17:10
                              回复