请选择 进入手机版 | 继续访问电脑版

小白手机网_让小白也能一键刷机救砖

查看: 722|回复: 0

Android ROM移植开发基础教程

[复制链接]
  • TA的每日心情
    擦汗
    2016-6-1 09:40
  • 签到天数: 55 天

    [LV.5]常住居民I

    54

    主题

    59

    帖子

    214748万

    积分

    管理员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    2147483647

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    QQ
    发表于 2016-6-8 14:45:39 | 显示全部楼层 |阅读模式
    步骤方法
    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更完美。
                                                                         
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|小白手机网  |申请友情链接

    GMT+8, 2019-3-22 06:00 , Processed in 0.956152 second(s), 32 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表