安卓rom移植教程

安卓rom移植教程
安卓rom移植教程

安卓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

这个目录下的文件都是系统的本地程序,里面主要是Linux系统自带的组件(命令)

\system\etc

从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置

\system\fonts

字体文件夹

\system\framework

framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架

\system\lib

lib目录中存放的主要是系统底层库,一些so文件,如平台运行时库\system\media\system\media\audio

铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音

\system\sounds

默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件\system\usr

用户文件夹,包含共享、键盘布局、时间区域文件等

以上大概说了rom包里面各文件夹的功能,现在我们把目光投向其中三个文件夹,这三个文件夹分别是:

\system\bin

\system\etc

\system\lib

我们移植rom主要修改的就是以上三个文件夹,除了这三个文件夹外其它文件夹基本不用动

现在我们以移植MIUI的rom为例子

1、我们先到MIUI的官方网站下载一个G11现成的MIUI_V4 刷机包,把它命名为miui_IncredibleS_2.10.12.zip

2、准备一个G21的官方4.0刷机包,命名为G21_stockrom.zip

3、分别把以上两个rom包解压到同一个文件夹里面,然后打开BCompare 对比软件,把解压后得到的miui_IncredibleS_2.10.12和

G21_stockrom文件夹拉到BCompare进行比对,请把G21_stockrom放到左侧,把miui_IncredibleS_2.10.12放到右侧

第一步,设置对比规则(点击工具栏戴黑帽的小人),设置比较,见下图

设置好后点击确定

第二步,显示设置为显示左侧孤立项,见下图

第三步,点击中间打开system进行对比,这时左侧显示出来的文件都是G21_stockrom的孤立文件,我们需要把bin、etc、lib三个文件夹

的孤立文件复制到右侧,见下图

接着,我们把显示设置成显示差异项但不包括孤立项,见下图

接着,我们需要把etc整个文件夹复制到右侧,bin和lib两个文件夹

不用动,见下图

2012-10-14 22:49 上传

下载附件(329.47 KB)

好了,到这里可以关闭BCompare对比软件了。

接着,我们将要手动把关键特定的G21的驱动复制到miui_IncredibleS_2.10.12文件夹里面

要复制的特定驱动文件如下:

\system\bin\netd wifi热点有关

\system\bin\vold usb挂载内存卡

\system\bin\wpa_supplicant wifi有关

\system\etc\vold.fstab 我们常说的内存卡分区文件

\system\lib\hw\gps.runnymede.so gps驱动

\system\lib\hw\hwcomposer.msm7x30.so 驱动相关,不替换会出现卡顿

\system\lib\hw\sensors.runnymede.so 感应驱动

\system\lib\modules\bcmdhd.ko wifi驱动

\system\lib\modules\kineto_gan.ko wifi驱动

\system\lib\libhardware_legacy.so wifi驱动相关

以上特定驱动原则上都是从我们G21官方rom里面提取就可以,但是实际上会出现其他问题,此过程我已经尝试过无数遍,自己找到最合适的了,为了方便机友节省时间,我将以上特定驱动打包传上来,分享给大家了,不用大家到处找和不停调试。

本帖隐藏的内容

G21特定驱动.zip(753.06 KB, 下载次数: 285)

接着,要删除miui_IncredibleS_2.10.12文件夹的多余驱动,多余文件如下:

\system\lib\hw\gps.vivo.so

\system\lib\hw\sensors.vivo.so

\system\lib\modules\bcm4329.ko

接着,修改miui_IncredibleS_2.10.12文件夹里的build.prop文件,用文本编辑打开,参照以下我提供的修改:

ro.product.model=HTC Sensation XL with Beats Audio X315e

ro.product.model=HTC Sensation XL with Beats Audio X315e

https://www.360docs.net/doc/eb12137854.html,=htc_runnymede

ro.product.device=runnymede

ro.product.board=runnymede

ro.build.product=runnymede

ro.product.processor=1.5GHz

ro.product.ram=768MB

ro.product.display_resolution=4.7 inch WVGA resolution

ro.product.main_camera=8M

ro.product.front_camera=1.3M

ro.product.bluetooth=3.0

ro.product.wifi=802.11 b/g/n

通过以上复制、替换、修改等操作,移植MIUI就大功告成了,还有记得把G21的boot.img替换进去哦,还有要适当修改刷机脚本\META-INF,这个我在第一篇教程里面说的很详细了,到此我们将miui_IncredibleS_2.10.12文件夹里面的系统打包成zip格式就可以

了,然后拿去用recovery刷机,就这样一个完整没有bug的MIUI小米系统就移植到我们大白G21手机上了。

今晚有点累,不知道说清楚没有,如果不明白就回复我啦~~~

相关主题
相关文档
最新文档