当前位置:木子软件>资讯>使用技巧

MTK手动移植内核boot教程

作者:enter 来源:木子教程 时间:2015-07-07 15:05

现在MTK手机越来越多,魅族旗下的魅蓝系列大多数使用的MTK处理器,MTK的机器比高通要便宜,开发者更倾向于MTK处理器的手机,今天给大家带来一篇MTK手动移植内核boot教程!

1 分解想移植的其他机型的boot(设定为B)

2 分解本机原厂boot(设定为A)

3 分解出来的文件有:

  • rmdisk(文件夹,这个是重点用来修改的,这个用原厂的对比着修改)
  • boot.img(这个应该是分解的boot的备份,打包时候记得删除它)
  • kernel(内核源码是需要重点替换的,把原厂A的内核源码替换到想移植B的boot分解文件里)
  • kernel_header(原厂的替换了吧)
  • new_ram_disk.cpio(无视)
  • new_ram_with_header(无视)
  • ram_disk(无视)
  • ram_disk.gz(无视)
  • ram_header(无视)

其中kernel为kernel内核有源码文件,需要用原厂的内核源码替换ramdisk文件夹是ramdisk.gz解压后生成的,移植boor需要修改的部分主要ramdisk里面进入ramdisk目录,使用文本编辑器打开init.rc,搜索找到export BOOTCLASSPATH这一项,这一项后面就是启动系统的相关项目,不同机型不同系统这一项启动内容都不一样,把原厂包export BOOTCLASSPATH这一项后面的内容全部复制,黏贴到移植包的init.rc,把export BOOTCLASSPATH这一项的内容后面黏贴上去,

注意一下,就是在保持B原来的基础上,加入原厂A的东西(就是新移植的C=A+B,去掉重复的部分)修改好了,打包就可以了。

手机显示完logo后不显示开机动画,直接黑屏 遇到这种情况应该是显示驱动不匹配导致的,需要确认三个路径的文件,包括system/lib/hw、system/lib/modules和system/vendor/lib目录。

首先要确认这三个目录下的文件和官方的是否相同,如果相同的话,就把system/lib/libsurfaceflinger.so替换成官方的重新打包boot.img不能开机的。

有时候也可以换vendor lib/modules lib/hw等文件 ,这个得根据log去替换。 


  • default.prop修改,
  • ro.secure=0 允许adb root (内核ROOT)
  • ro.adb.secure=0 允许adb root 
  • ro.debuggable=1 允许adb debugg
  • persist.service.adb.enable=1默认开启USB调试模式
  • ro.allow.mock.location=1默认允许安装未知程序
  • persist.sys.usb.config=mass_storage,adb 开启大内存,adb

关于乐蛙 Boot移植


方法如下:手机无法开机卡在开机动画,基本上是错误修改boot.img导致的,乐蛙需要导入自己jar包lewa-framework.jar。在init.rc找到BOOTCLASSPATH,在最后加上一项 :/system/framework/lewa-framework.jar(mtk的init.rc又两个[size=12.0000pt]BOOTCLASSPATH,两处都需要加上),

关于MIUI Boot移植


方法如下:使用mtkboot的解包工具解包boot,替换官方的kernel(内核),以及rmdisk目录下的init.usb.rc和init.charging.rc 解决相机不能用的方法是比较官方和红米的init.project.rc文件,将官方这个文件的相机配置部分贴过去,大概内容如下:

  • #Camera
  • chmod 0660 /dev/OV8825AF
  • chown system camera /dev/OV8825AF
  • #Add by mtk71344 for multiple modules
  • chmod 0660 /dev/FM50SUNNYAF
  • chown system camera /dev/FM50SUNNYAF
  • chmod 0660 /dev/FM50KERRAF
  • chown system camera /dev/FM50KERRAF
相机不可用,打开相机绿屏,打开相机后强制关闭,或者前置相机不可用等等相机问题,init.rc这个文件,打开是一个文本,用搜索功能搜索camera,然后把#camera 与#Matv之间的语句复制下来,注意这里并不包括MATV下面的语句,只是从#camera一直到﹟matv之间的语句,替换成官方原厂的这段内容。