安卓rom移植教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安卓rom移植教程
前言:因为很多机友都想自己移植rom,苦于找不到教程,所以我今天抛砖引玉啦,为了大白,为了我们玩机一族,我慢慢将这段时间移植的经验分享一下,估计一天写不完,那就分几篇写啦,有兴趣的朋友可以留意一下,不想花时间移植的机友就飘过啦!
另外我移植的经验都是基于安卓4.0的,我只保证安卓4.0可以通过此方法顺利快速移植一个ROM,那么想移植安卓2.3或者移植安卓4.1的朋友就另外请教高手啦。
一、找相近机型
找相近机型主要是为我们移植rom节省功夫,因为相近机型的rom大部分驱动都是相同的,比如和我们大白G21相近的机型有G10、G11、G12,我推荐大家找G11的rom,为什么?因为G11与我们大白G21的硬件配置最相似,比如CPU是同型号的,分辨率也是一样的,连摄像头像素都一样,所以为我们大白G21移植rom,找G11机型的rom是首选。二、移植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这一项,这一项后面就是启动系统的相关项目,不同机型不同系统这一项启动内容都不一样,那么我们怎么修改这个呢?很简单,比如我们解包G11的sense4的rom,找到G11
的内核boot.img,然后解包G11的boot.img,找到init.rc文件,然后用文本打开将export BOOTCLASSPATH这一项后面的内容全部复制,然后再到我们G21的init.rc,把export BOOTCLASSPATH这一项的内容复制上去,简单的说就是将G11的启动内容复制到G21的启动内容上,到这里,boot.img的移植就完成了,最后将我们G21的boot.img打包回来。
将G11的启动项复制到G21的启动项里,修改完打包boot.img就可以了!
本帖隐藏的内容
三、修改rom包刷机脚本
我们知道recovery刷机包都是zip格式的,所以我们完全可以解压修改后再打包回来,完全没有问题。比如我们下载G11的一个MIUI的官方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")== "vivo" ||
getprop("ro.build.product") == "vivo");
将 mount("ext4","EMMC", "/dev/block/mmcblk0p26", "/data");
改为mount("ext4", "EMMC", "/dev/block/mmcblk0p29","/data");修改好保存updater-script
四、替换boot.img
将修改好的G21的boot.img(不会修改boot的机油就用我的最终版里面的boot.img)替换到G11的一个MIUI的官方ROM里面
五、重新打包G11的一个MIUI的官方ROM为zip格式,然后拿去刷机吧,按照上面过程操作,这个rom完全可以开机进入系统的。
让我们回顾今天的移植要点,第一找相近机型的rom,第二移植boot.img,第三修改rom包里面的刷机脚本,第四替换boot.img,第五打包rom
后刷机,成功进入系统,初步移植教程结束。没错,纯粹是替换了boot.img就完成了移植,这么简单我们大白就可以用到小米系统了,看似很复杂的移植,却如此简单,这都要归功于我们大白有相近机型G11,因为它们大部分驱动都是通用的。
今晚就到此为止,下次我就着重讲一下接下来怎么把bug一个个修复,因为简单替换boot.img,虽然可以进入系统,但是由于驱动或配置不同,还是存在很多bug的,比如开机后不能识别内存卡,usb不能挂载内存卡,wifi不能用,wifi热点不能用,GPS不能用,重力感应不能用,声
音有问题等等,没关系,等肥虫第二篇教程慢慢告诉你们,慢慢将以上bug一个个攻破,享受移植的快乐,我们下次见!
第二篇--移植MIUI
移植前准备
1、首先推荐大家用一个文件对比软件BCompare,自行到网上下载,用BCompare进行对比非常方便。
2、选择一个合适的G21官方4.0的rom,最好是原汁原味的官方rom,没有太多的优化或精简,已经做好odex合并,选择这样的rom目的是考虑到稳定,这样有利于我们进行移植。
移植前先介绍一下rom包的简单结构:
我们最常用的一种刷机方法就是通过recovery刷机,recovery刷机rom 就是zip格式的压缩包,里面结构如下:
\META-INF
刷机脚本,recovery刷机时通过里面的脚本命令刷机
\system
安卓系统,移植时就是改动里面的文件
\system\app
这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件
\system\bin