搜档网
当前位置:搜档网 › rom移植的教程

rom移植的教程

rom移植的教程
rom移植的教程

1. 网上有很多关于rom移植的教程很多,百度一下到处都是,但是都不是很容易看懂,而

且819有点特殊性,很多教程都是不通用的,我以最易理解的语言来写这篇教程给你们帮助新手学会移植。

其实rom移植并不难,只要你愿意学。。移植分为正向移植和反向移植。我们需要准备两个包,一个是819的包,可以选择bug少的或者中兴官网的那个中兴u819的升级包作为【底包】。同时还需要找一个【目标包】,也就是你准备要移植的包。所谓正向移植,就是以819的包为基础把其他包的特色文件移植进入819的包里。反向移植是以目标包为基础,把819必须的文件加入目标包里打包形成专属819的刷机包…

忘了说,这篇教程是反向移植

制作移植rom时我们需要准备一些工具:电脑(手机也可以,但是很慢,手机党可以使用手机上的安卓厨房,具体使用方法自己查找)、mtk一键boot移植软件、文件对比软件Beyond Compare破解版【百度一下前几个就有】这些软件自己学习使用,很容易学。

我们先下载两个包,同一般解压一样解压,打开解压后的文件会发现有两个文件夹一个boot.img(一般情况是这样,有的还有recovery文件夹和data文件夹,那怎么办呢?不要担心,删掉!)首先移植boot,boot是引导文件boot有问题会卡第一屏,进不了开机动画,关于boot移植使用一键boot移植软件,秒秒钟就移植完了,但是有些弊端,可能有些包移植完后会有bug,比如蓝牙,wifi等有问题这时就需要手动解包修改boot文件

接下来是修改刷机脚本使用对比软件

修改META-INF/com/google/android/updater-script文件

打开这个文本如果发现开头有

assert(getprop("ro.product.device") == "手机型号" ||

getprop("ro.build.product") == "手机型号" ||

getprop("ro.product.device") == "手机型号" ||

getprop("ro.build.product") == "手机型号"); 语句把手机型号更改为u819,要不然就直接删除(一般有3条,建议直接删掉)比如3c的脚本

删除关于带有recovery的语句,可以搜索一下,把所有带recovery的语句删除

在这个脚本里,还需要修改分区配置,format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0");

format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0");

ui_print

format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0");

mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");

mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/data");

用对比软件直接对比修改以上的数字,改为底包的。比如第一句的format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0") 如果底包的那个数字5是7,那么就将目标包中的5改为底

包的7,只修改底包中有的语句。

2. 修改完boot和脚本以后,接下来就是移植文件了。

忘了说要找到相同cpu的机子的rom,目标包很多,挑选的时候尽量分辨率要一样,可以很好避免分辨率的问题

倘若要移植的ROM只为720p的,那么打开system/build.prop,看看里面有没有ro.sf.lcd_density=这个句子,有,就直接修改=后面数值为240

下面开始移植系统,打开移植包的system目录,我们可以看到整个系统文件夹,当然,此处存在差异,不同的包有所不同,但基本一样。

请注意!!!以下提及的所有目录均在system目录下!!!

打开etc目录,把里面的firmware这个文件夹换成官方包的firmware文件夹,这个是包含了基带文件的文件夹,

然后打开system/lib目录,lib目录下是驱动文件,有声音驱动,相机驱动,wifi驱动之类的。把以下几个文件替换成官方包的文件

libcam.client.so,libcameracustom.so,libcameraservice.so

以上三个就是我们经常说的相机驱动,libcam…这样的东西都是相机驱动,一般只需要替换这三个就行,这里具体情况还要具体分析,相机发暗应该也是这里的问题,有兴趣的可以去解决一下。

除了上面几个以外,还要把lib目录下的所有libaudio开头的文件替换为官方的文件,这些是声频驱动,如果出现问题,那就不要替换这么多,按名称排序替换最后几个

,还有libaudio.primary.default.so是外放的驱动,如果移植后发现没有外放声音,请替换这个驱动!!!接着把system/lib目录下的moudles这个文件夹也换成官方的,这个文件夹基本都是要换的,直接换掉会比较省事

(这里要说一下,如果移植后发现信号不好,可以找到819官方包里的modem_sys2.img换到moudles里)

对同一目录下的hw文件夹进行操作,对于hw这个文件夹,一般我只替换里面的一个文件hwcomposer.mt6589.so

一般情况下,如果不换这个文件就会开机第一屏过后,没有开机动画,屏幕是黑的,但按键会有背光,进不了桌面,长按home键有震动,或者只有按以下开机键才会亮屏幕,遇到这种情况替换掉这个文件大多数都可以得到解决,hw文件夹不能全部替换,全换卡第二屏,819是这样,其他机型自测。但只换hwcomposer.mt6589.so这个也不行,因为光线传感器也在hw文件夹下,我一般这个文件下的文件除了audio开头的个文件,其他的全部替换

【注意!!不要搞蒙了,以上说的lib hw等文件是重819官方包中提取,替换但要移植的那个目标包中!】

对比软件使用方法示例,帮助你们理解,图片是网上找的,圈选的部分并非全要替换

我们打开usr目录该目录下的keychars和keylayout这两个文件夹替换成官方的,这是键盘布局文件夹,一般可以不替换,但有时候不替换会出现键盘错位或者直接键盘无法使用,所以还是直接替换了省事

打开system/vendor,把该目录里面的lib目录换成官方的,其实这个不换也可以的,为了避免问题,还是直接替换了省事

打开system/xbin目录,把里面的su这个文件换成官方包里面的,如果官方包里面没有也可以自己root手机后用re文件管理器提取出来,su主要是root权限文件。

然后将移植包system\etc下的bluetooth、firmware、permissions、wifi四个文件夹替换成本机型的(如果有);

还有enhanced.conf、media_profiles.xml(多媒体配置文件,即视音频配置文件,应该与单双摄像头有关,小9不需要)、vold.fstab(存储分区配置文件,这个不重要,我一般不换)替换成本机型的;

…………………………………………………………………………………………………………………………………………到此,差不多结束了,对于system/app里的系统文件,可以自己删除添加,比如要加入一个输入法,直接下载到输入法的apk文件拖进里面去

注意rom包中出现有中文!

然后打包文件,打包时格式一定要是zip,选择正常压缩率。然后通过手机rec刷入。如果刷时机器人倒地或者刷机失败,那么就是你脚本出了问题

别忘了去build.prop修改机型移植有个原则,我们默认原ROM是最稳定的,对文件所做改动越小,移植生成的系统稳定性越好。按此原则,确保各功能正常的情况下,替换的文件越

少越好。其实移植容易修复bug难,移植后成功开机时会有一种成就感,有bug慢慢修复,一个一个驱动换,一个完美的rom都是经过无数次的修复,任何人都是从新手开始的,上官,甄宗鑫他们也不例外。他们能达到现在的成就也是付出了许多努力。此教程并非完美,也许有些问题,但是我能做的只有这些,我希望9吧能多几位做包的人,有问题大家一起解决

相关主题