安卓清理大师
您当前位置: 刷机教程 -移植教程
Android ROM移植开发基础教程(一)
发布日期:2014/1/13 来源:ROM基地 编辑:ROM基地 30687 阅读 0评论
很多朋友都想自己移植ROM,但是网上没有好的教程。小编这次找到了一些教程,结合自己的经验,跟大家分享一下。一次写不完,我就分开写了。有兴趣的朋友可以留意一下,不想花时间移植的机友就纯当路过了。另外本教程主要是针对Android4.0,非此版本请谨慎行动。

步骤方法

  1. 找相近机型
    找相近机型主要是为我们移植rom节省功夫,因为相近机型的rom大部分驱动都是相同的,比如和小编用的G22相近的机型有G14、G18、One S,然后我选择的是G14的ROM,为什么?因为G14与G22的硬件配置最相似,比如CPU是同型号的,分辨率也是一样的,连摄像头像素都一样,所以为G22移植ROM,找G14机型的rom是首选。机友们认真分析之后可以找到合适的吧。
  2. 移植boot.img
    移植安卓rom首先要移植boot.img,这里我只说一下要重点修改boot.img里面的内容,此外怎么解包和打包boot.img就不在这里谈及了,网上有很多教程,多用搜索功能。我推荐用厨房软件解包boot.img,解包boot.img后有BOOT-EXTRACTED文件夹,BOOT-EXTRACTED文件夹里面有boot.img-ramdisk文件夹和zImage内核,我们找到boot.img-ramdisk文件夹里面的init.rc文件,移植boot.img全部就在init.rc文件,init.rc文件我理解就是一个启动文件,我们开机后通过init.rc文件启动系统。好,现在我们用文本编辑打开init.rc文件,找到export BOOTCLASSPATH这一项,这一项后面就是启动系统的相关项目,不同机型不同系统这一项启动内容都不一样,那么我们怎么修改这个呢?很简单,比如我们解包G14的sense4的rom,找到G14的内核boot.img,然后解包G14的boot.img,找到init.rc文件,然后用文本打开将export BOOTCLASSPATH这一项后面的内容全部复制,然后再到22的init.rc,把export BOOTCLASSPATH这一项的内容复制上去,简单的说就是将G11的启动内容复制到G22的启动内容上,到这里,boot.img的移植就完成了,最后将G22的boot.img打包回来。
  3. 修改rom包刷机脚本

    我们知道recovery刷机包都是zip格式的,所以我们完全可以解压修改后再打包回来,完全没有问题。比如我们下载G14的一个XUI的官方ROM,解包后里面有META-INF文件夹,有system系统文件夹,有boot.img内核文件,我们只要修改META-INF文件夹,META-INF里面都是刷机脚本文件,操作如下:

    \META-INF\CERT.RSA 签名文件 删掉

    \META-INF\CERT.SF 签名文件 删掉

    \META-INF\MANIFEST.MF 签名文件 删掉

    \META-INF\com\android 机型验证文件夹 整个删掉

    \META-INF\com\google\android\ update-binary 刷机命令程序 保留

    \META-INF\com\google\android\ updater-script 刷机脚本 需要修改

    修改updater-script如下:

    用文本打开updater-script,删除以下两行机型验证

    assert(getprop("ro.product.device")== "ruby" ||

    getprop("ro.build.product") == "ruby");

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

    改为mount("ext4", "EMMC", "/dev/block/mmcblk0p31","/data");

    修改好保存updater-script

    注意上面的红色数字改成你data分区的分区表的代码。红色数字每个机型特定,如果错误,ROM直接就不能刷了。如何查看分区表信息,可以直接找度受。或者等小编后续的教程。

  4. 替换boot.img
    将修改好的G22的boot.img(不会修改boot的机油可以直接用相同UI的ROM的boot.img)替换到G14的XUI官方ROM里面
  5. 签名打包

    重新打包ROM为zip格式,然后拿去刷机吧,按照上面过程操作,这个rom完全可以开机进入系统的。
    不过进入系统之后你会发现完全不能使用啊,各种进程停止。因为简单替换boot.img,虽然可以进入系统,但是由于驱动或配置不同,还是存在很多bug的,比如开机后不能识别内存卡,usb不能挂载内存卡,wifi不能用,wifi热点不能用,GPS不能用,重力感应不能用,声音有问题等等。这些都会在后续的教程中间一一解决,尽量使我们的ROM更完美。

扫一扫可添加微信客服

获取更多ROM基地动态

35

下一篇:Android ROM移植开发基础教程(二)

发表评论
点击换图
发表