子毅工作室吧 关注:201贴子:3,860

《子毅工作室》~ROM移植之百度云~移植流程

取消只看楼主收藏回复

想学移植都看看,


IP属地:广西来自Android客户端1楼2015-01-23 08:10回复
    工具:Beyond Compare【需要注册码,建议下载破解版,具体下载链接自己百度】
    ----------- Windows下解包打包boot套件【下载地址放出 http://pan.baidu.com/share/link?shareid=3714585920&uk=1413120000


    IP属地:广西来自Android客户端5楼2015-01-23 08:13
    回复
      一、 选择合适的基础包和底包
      底包是本机型的包,基础包是移植的目标包【百度云ROM】
      在基础包的选择上尽量选择硬件相似的包,mt到mt,高通到高通,最好是同一个cpu,分辨率也经量接近,尽量是百度云官方是配的包。底包尽量选择官方的包。或者同一个ui。比如你要移植的是百度云ROM52,那你可以选择别人已经移植好的前几期的百度云,例如百度云48,49.


      IP属地:广西来自Android客户端6楼2015-01-23 08:13
      回复
        1.明确移植操作的方向
        在这里,我们首先一定要明确移植的方向是:
        以百度的基础包作为最终成型刷机包的基础,把底包中各机型特有的东西加上去,最终形成自己的刷机包。


        IP属地:广西来自Android客户端7楼2015-01-23 08:14
        回复
          2.移植lib 层
          system 下的lib 文件夹主要是Android 系统的动态链接库,这里面有一些是系统硬件相关的接口,以及
          一些系统层应用需要调用的库文件,还有厂商的HAL 层的库文件,百度同样在此处进行了修改。
          所以在移植这里的时候一定要谨慎,不能随便删减添加东西,但是其中的modules 必须使用官方底 包的,hw是传感器的驱动,也要替换。libaudio开头的是音频的驱动也必须替换,libcame和开头的是相机的驱动,也要替换。


          IP属地:广西来自Android客户端8楼2015-01-23 08:14
          回复




            IP属地:广西来自Android客户端9楼2015-01-23 08:18
            回复
              3.移植system/bin 和system/xbin 文件夹
              必须全部使用底包的,否则有可能出现系统权限错误,busybox 失效等问题,所以我们对其不进行任何操作。
              4.移植system/media
              整个文件夹必须使用百度云rom基础包的,否则可能出现开机动画消失,锁屏消失,无法开机等问题。所以我们对其不进行任何操作。
              5.移植system/usr 文件夹
              这里请将百度云rom基础包的keychars 和keylayout 两个文件删除,替换为底包中的这两个文件夹。那是按键的驱动


              IP属地:广西来自Android客户端10楼2015-01-23 08:20
              回复
                6.移植system/etc 文件夹
                必须将百度云ROM基础包文件夹中firmware 和permissions文件夹删除,替换为官方底包中的firmware和permissions 文件夹。System/etc中的WiFi和bluetooth文件夹是WiFi和蓝牙的文件,如果出现WiFi或者蓝牙fc的情况,请替换这两个文件。


                IP属地:广西来自Android客户端11楼2015-01-23 08:21
                回复
                  在这里顺便说一下在system/vendor/APP里可以添加推广应用,一般rom的推广应用都在这个文件夹里。或者你想要的预装应用。


                  IP属地:广西来自Android客户端12楼2015-01-23 08:21
                  回复
                    7.修改build.prop:
                    这个自己对比修改机型就行了吧!
                    8.如果百度云ROM基础包是华为的,而且在system文件夹里有set_immutable.list这个文件,建议删除,不删除会导致下图的文件无法修改,添加了i属性,这就是为什么有些华为的百度云ROM用户无法使用xposed原因之一


                    IP属地:广西来自Android客户端13楼2015-01-23 08:22
                    回复
                      主要驱动部分
                      lib/modules
                      lib/hw传感器驱动
                      etc/bluetooth蓝牙驱动
                      etc/firmware基带信号配置文件
                      etc/permissions
                      etc/wifi
                      内核
                      boot.img
                      键盘布局部分
                      usr/keychars
                      usr/keylayout
                      音频驱动部分
                      lib/
                      libaudio.a2dp.default.so
                      libaudio.primary.default.so
                      libaudiocompensntionfilter.so
                      libaudiocustparam.so
                      libaudioeffect-jni.so
                      libAudiofe-V1.so
                      libaudioflinger.so
                      libaudio-resampler.so
                      libaudiosetting.so
                      libaudioutils.so
                      libSR_AudioIn.so
                      libwebrtc_audio_preprocessing.so
                      lib/hw/
                      audio.primary.default.so
                      audio_policy.defanlt.so
                      audio_policy.stub.so
                      libaudio.r_submix.default.so
                      libaudio.usb.default.so
                      音效驱动部分
                      etc/
                      audio_effects.conf
                      audio_policy.conf
                      lib/soundfx
                      基带
                      etc/firmware/modem.img【有些百度云ROM用户反应百度云rom信号不好,可以提取你认为信号好的包中的modem.img,然后替换至百度云ROM】


                      IP属地:广西来自Android客户端14楼2015-01-23 08:23
                      回复
                        8.移植boot.img
                        这里无需多说,boot.img 启动镜像必须使用自己手机的。对比了一下百度和联想官方的boot.img,发现百度修改了boot.img里的default.prop和init.rc来支持手机root和它自己的一些服务。
                        注意事项:
                        由于.gz文件格式的问题,要修改ramdisk里的default.prop和init.rc,必须在linux下修改,没有安装Linux的话解压开两个boot用BeyondCompare修改,不能使用记事本打开
                        解压开底包的boot
                        修改:boot.img-ramdisk/default.prop
                        ro.secure=1 修改为 ro.secure=0
                        persist.sys.usb.config=mass_storage 修为 persist.sys.usb.config=mass_storage,adb


                        IP属地:广西来自Android客户端15楼2015-01-23 08:27
                        回复
                          修改:boot.img-ramdisk/init.rc
                          b) 将BOOTCLASSPATH改为百度云rom基础包的,为了防止有些jar包遗漏


                          IP属地:广西来自Android客户端16楼2015-01-23 08:28
                          回复
                            如果是华为的百度云基础包有set_immutable.list文件的,请boot.img-ramdisk/init.rc中的
                            exec /system/xbin/busybox chattr -i -R /system/framework/
                            exec /system/xbin/busybox chattr -i -R /system/bin/
                            exec /system/xbin/busybox chattr -i -R /system/lib/
                            exec /system/xbin/busybox chattr -i -R /system/xbin/
                            exec /system/xbin/busybox chattr -i -R /system/usr/
                            exec /system/xbin/busybox chattr -i -R /system/vendor/
                            exec /system/xbin/busybox chattr -i /system/build.prop
                            删除,否者以上文件将无法修改


                            IP属地:广西来自Android客户端17楼2015-01-23 08:30
                            回复
                              如果无root权限在
                              # Mount /system rw first to give the filesystem a chance to save a checkpoint
                              #mount ext4 emmc@android /system wait commit=1,data=journal,noauto_da_alloc
                              mount ext4 /emmc@android /system wait commit=1,noauto_da_alloc
                              的下一行加入


                              IP属地:广西来自Android客户端19楼2015-01-23 08:34
                              回复