安卓rom移植教程.docx

上传人:b****2 文档编号:23005878 上传时间:2023-04-30 格式:DOCX 页数:12 大小:1.31MB
下载 相关 举报
安卓rom移植教程.docx_第1页
第1页 / 共12页
安卓rom移植教程.docx_第2页
第2页 / 共12页
安卓rom移植教程.docx_第3页
第3页 / 共12页
安卓rom移植教程.docx_第4页
第4页 / 共12页
安卓rom移植教程.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

安卓rom移植教程.docx

《安卓rom移植教程.docx》由会员分享,可在线阅读,更多相关《安卓rom移植教程.docx(12页珍藏版)》请在冰豆网上搜索。

安卓rom移植教程.docx

安卓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文件,找到exportBOOTCLASSPATH这一项,这一项后面就是启动系统的相关项目,不同机型不同系统这一项启动内容都不一样,那么我们怎么修改这个呢?

很简单,比如我们解包G11的sense4的rom,找到G11的内核boot.img,然后解包G11的boot.img,找到init.rc文件,然后用文本打开将exportBOOTCLASSPATH这一项后面的内容全部复制,然后再到我们G21的init.rc,把exportBOOTCLASSPATH这一项的内容复制上去,简单的说就是将G11的启动内容复制到G21的启动内容上,到这里,boot.img的移植就完成了,最后将我们G21的boot.img打包回来。

2012-10-1322:

35上传

下载附件(241.97KB)

将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放到右侧

2012-10-1422:

49上传

下载附件(257.84KB)

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

2012-10-1422:

49上传

下载附件(139.88KB)

设置好后点击确定

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

2012-10-1422:

49上传

下载附件(138.89KB)

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

2012-10-1422:

49上传

下载附件(245.34KB)

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

2012-10-1422:

49上传

下载附件(140.16KB)

接着,我们需要把etc整个文件夹复制到右侧,bin和lib两个文件夹不用动,见下图

2012-10-1422:

49上传

下载附件(329.47KB)

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

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

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

\system\bin\netdwifi热点有关

\system\bin\voldusb挂载内存卡

\system\bin\wpa_supplicantwifi有关

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

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

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

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

\system\lib\modules\bcmdhd.kowifi驱动

\system\lib\modules\kineto_gan.kowifi驱动

\system\lib\libhardware_legacy.sowifi驱动相关

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

本帖隐藏的内容

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

285)

2012-10-1423:

16上传

下载次数:

285

G21特定驱动

下载积分:

汉堡-1个

接着,要删除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=HTCSensationXLwithBeatsAudioX315e

ro.product.model=HTCSensationXLwithBeatsAudioX315e

ro.product.name=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.7inchWVGAresolution

ro.product.main_camera=8M

ro.product.front_camera=1.3M

ro.product.bluetooth=3.0

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

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1