做rom开发教程怎么样

煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
主题 : 56|帖子 : 861|积分 : 4196
求大神指点,如何自己制作ROM,感激不尽
---来自一加社区手机客户端
我思故我在!
煤油, 积分 4288, 距离下一级还需 712 积分
煤油, 积分 4288, 距离下一级还需 712 积分
煤油, 积分 4288, 距离下一级还需 712 积分
主题 : 28|帖子 : 1105|积分 : 4288
是精简还是?
---来自一加社区手机客户端
95#汽油, 积分 25051, 距离下一级还需 24949 积分
95#汽油, 积分 25051, 距离下一级还需 24949 积分
95#汽油, 积分 25051, 距离下一级还需 24949 积分
主题 : 44|帖子 : 5103|积分 : 25051
这是一门庞大的工程,我以前在安智论坛阅读过有关教程,建议你去那里找找,不是三言两句就能说清楚,以前我学的时候,光是电脑环境配置就花了好几天,不过你要认真学,可能个把月你就能做些简单的美化、编译等
主题 : 248|帖子 : 1283|积分 : 57912
学东西不要总指望别人教 不会就谷歌&&不会就百度
主题 : 294|帖子 : 8209|积分 : 262769
有心就去谷歌百度去吧
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
主题 : 56|帖子 : 861|积分 : 4196
vy66 发表于
这是一门庞大的工程,我以前在安智论坛阅读过有关教程,建议你去那里找找,不是三言两句就能说清楚,以前我 ...
配置的是jdk吗,我本身是软件技术专业,可能有一些东西我还有,
---来自一加社区手机客户端
我思故我在!
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
主题 : 56|帖子 : 861|积分 : 4196
毅氧化碳 发表于
是精简还是?
---来自一加社区手机客户端
先从简单开始
---来自一加社区手机客户端
我思故我在!
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
主题 : 56|帖子 : 861|积分 : 4196
counter-stike 发表于
学东西不要总指望别人教 不会就谷歌&&不会就百度
百度出来的不是什么好东西
---来自一加社区手机客户端
我思故我在!
煤油, 积分 4288, 距离下一级还需 712 积分
煤油, 积分 4288, 距离下一级还需 712 积分
煤油, 积分 4288, 距离下一级还需 712 积分
主题 : 28|帖子 : 1105|积分 : 4288
XXQ 发表于
先从简单开始
---来自一加社区手机客户端
精简是最简单的了,只要一个压缩软件和一台电脑以及一个清醒的大脑
---来自一加社区手机客户端
93#汽油, 积分 10911, 距离下一级还需 9089 积分
93#汽油, 积分 10911, 距离下一级还需 9089 积分
93#汽油, 积分 10911, 距离下一级还需 9089 积分
主题 : 112|帖子 : 1735|积分 : 10911
5.0做ROM最基本的就要会liunx操作…
---来自一加社区手机客户端
主题 : 17|帖子 : 686|积分 : 1692
提示: 作者被禁止或删除 内容自动屏蔽
柴油, 积分 8712, 距离下一级还需 1288 积分
柴油, 积分 8712, 距离下一级还需 1288 积分
柴油, 积分 8712, 距离下一级还需 1288 积分
主题 : 29|帖子 : 1949|积分 : 8712
安智有一套教程。。但是我看不懂
柴油, 积分 7258, 距离下一级还需 2742 积分
柴油, 积分 7258, 距离下一级还需 2742 积分
柴油, 积分 7258, 距离下一级还需 2742 积分
主题 : 19|帖子 : 1152|积分 : 7258
去机锋,或者安极论坛看看,那里面教程多。
---来自一加社区手机客户端
柴油, 积分 6219, 距离下一级还需 3781 积分
柴油, 积分 6219, 距离下一级还需 3781 积分
柴油, 积分 6219, 距离下一级还需 3781 积分
主题 : 41|帖子 : 1992|积分 : 6219
学东西不要总指望别人教 不会就谷歌&&不会就百度
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
主题 : 56|帖子 : 861|积分 : 4196
鹰飞 发表于
去机锋,或者安极论坛看看,那里面教程多。
---来自一加社区手机客户端
好哒⊙▽⊙
---来自一加社区手机客户端
我思故我在!
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
煤油, 积分 4196, 距离下一级还需 804 积分
主题 : 56|帖子 : 861|积分 : 4196
wzhone 发表于
安智有一套教程。。但是我看不懂
待会去看看
我思故我在!
我是加油GG
祝加油GG男生节快乐
在线小达人
社区上线100天纪念勋章
一加手机1勋章
一周年纪念勋章
一加一周年纪念勋章
羊年纪念勋章
植树节纪念勋章
情人节勋章
情人节活动纪念勋章
圣诞节祝福勋章
马年纪念勋章 马上啥都有
元旦纪念勋章
一加手机2勋章
二周年纪念勋章
一加二周年纪念勋章
奥运会纪念勋章
奥运会期间活动专属勋章
元宵节汤圆勋章
祝加油们元宵节快乐!
氢OS内测荣誉勋章
一加社区氢OS内测加油纪念勋章
资源分享达人
社区分享20个优质资源即可申请
一加社区玩机组专属勋章
“12.17”纪念勋章
日,一加社区上线当天首批注册用户纪念勋章
一加手机X勋章
猴年纪念勋章 猴年猴赛雷
猴年特殊勋章
一加手机3勋章
深圳市万普拉斯科技有限公司 版权所有(8894人阅读
Android(2)
Android的ROM
&&&&首先介绍一下ROM的基本知识,其实按照比较科学的方法来说,Android的“ROM”这种叫法本身就是错误的,只不过是历史遗留的称呼罢了。看看定义吧,所谓的“ROM是只读内存(Read-Only&Memory)的简称。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定&,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据”。在Android之前的手机,包括智能机(Nokia、WM等)和非智能机(索爱,Moto&P2K平台,MTK等)都有一个单独的ROM芯片保存系统文件,所谓的“刷ROM”(或是刷包)就是将官方或是第三方的ROM镜像文件通过工具烧写到ROM中的过程,而所谓的“做ROM”就是将个人定制的系统文件做成可烧写的ROM镜像的过程。不过在Android手机中,系统必要的文件不再保存在ROM中了,而是保存在原本就可擦写的文件分区之中了。虽然传统的ROM芯片已不存在,不过既然现在国内外还是把Android上的这玩意叫ROM,那我们也还是按照国际惯例继续称之为ROM吧。罗嗦了那么多,那么到底什么是Android&ROM(以下简称ROM)呢?这个是没有官方定义的,按照我的个人见解,所谓ROM就是可以替换手机内必要文件的按照特定规则封装的一个或多个文件。从替换方式上可以分为文件镜像型和文件替换型,从替换程度上可以分为完整ROM和非完整ROM。
其中的名称解释:
封装:就是你所刷的ROM包中系统文件的包装格式,如HTC早期的G1的NBH,MOTO的sbf,三星的tar,以及最常见的zip等。封装只是为了让刷ROM的工具可以正确读取罢了,它只是一个外壳,不是ROM的实质;
文件镜像型:指ROM包中系统文件是通过烧写分区实现刷机的类型,如常见的img镜像,三星的rfs镜像等。文件镜像型的&ROM的原理是将一个镜像恢复到相应分区。如果要修改,需要将其解包,操作完成后重新生成一个镜像包;
文件替换型:指ROM包中系统文件是通过重建系统分区内文件实现刷机的类型,如常见的zip刷机包,openrecovery的刷机文件夹等。文件替换型ROM的原理是是根据相应脚本替换系统文件。如果要修改,需要增减相应文件,然后确保相应脚本无误;
完整ROM:指ROM包中包含了手机启动的全部必要程序的ROM包,包含bootloader,radio,kernel,system等。官方的ROM多数都是完整ROM;
非完整ROM:指ROM包中仅包含完整ROM中部分组件的ROM,一般来说仅包含system和kernel。第三方ROM多数都是非完整ROM。
怕大家听的有点晕,所以下面就用两个刷ROM的实例来讲解一下
1、现在各个机型最常用的刷机方法就是通过recovery刷机,过程是:进recovery,选择zip,刷入。其实这个刷这个ROM的过程可以分解为:启动recovery,选择要刷的zip包,校验zip包的签名以确保完整性(有些recovery可以跳过此步骤),读取zip包中的升级脚本然后开始升级。关键就在这个升级脚本中,它定义了recovery要执行的操作,一般来说脚本都包含这4个步骤:清空系统分区,复制zip包中的文件到手机中,创建文件链接,设置文件和目录的权限。多数的zip会包含一个boot.img,就是kernel,很少会有zip包含bootloader和radio。所以这个ROM就是封装成zip的文件替换型非完整ROM。
2、MOTO的手机通过RSD刷SBF的官方ROM,过程是:连接手机,载入sbf文件,开始刷机,好了,RSD刷写这个ROM的过程可以分解为:解包sbf为多个镜像文件,将镜像烧写到手机中对应的分区,校验分区签名,完成刷机。一般的官方sbf中都会包含bootloader等全部的文件。所以这个ROM就是封装成sbf的文件镜像型完整ROM。
到此,你应该也大致了解了什么是ROM以及ROM分类了。认清这些以后,我们就可以游刃有余的根据不同的手机灵活的修改和制作相应ROM了,例如制作HTC的zip格式的ROM,只需要将相应文件做成zip包然后添加相应脚本就好了;制作i9000的tar格式的ROM,只需要用文件替换的方法在一个手机里做好系统,然后用cat命令将system分区保存为rfs镜像,然后再打包成tar就好了;
Android编译生成的三个镜像文件
Android源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data。ramdisk.img是根文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数据,android加载这3个映像文件后,会把&system和&userdata分别加载到&ramdisk文件系统中的system和&data目录下。
三个镜像文件及其三个目录树之间的生成关系是我们进行ROM制作的基础,下面将做详细介绍。
Ramdisk.img
Ramdisk镜像是采用cpio打包,gzip压缩的。用file验证:
#&file&ramdisk.img
#&ramdisk.img:&gzip&compressed&data,&from&Unix
为了便于说明问题,我们将ramdisk.img拷贝到其它一个目录,然后按以下步骤将ramdisk.img还原为目录树:
#&mv&ramdisk.img&ramdisk.img.gz&
#&gunzip&ramdisk.img.gz
#&mkdir&ramdisk
#cd&ramdisk
#&cpio&–i&–F&../ramdisk.img
这样,就得到一个完整的ramdisk目录,与out/target/product/generic/root对比后,我们发现它们是一样的内容。
通过执行以下的操作,我们可由目录树再生成ramdisk镜像
#&cd&ramdisk
#&find&.&|&cpio&-o&-H&newc&|&gzip&&&../ramdisk-new.img
system.img&&&userdata.img
这两个镜像都属于yaffs2文件格式,生成方式是一样的。我们就以system.img为例来说明。
System.img&&&&system目录树
所需工具unyaffs,&下载地址&/p/unyaffs/downloads/list
#&mkdir&system
#&cd&system
#&unyaffs&../system.img
system目录树&&&&system.img
所需工具&mkyaffs2image,Android源码编译后会生成该工具,在&out/host/linux-x86/bin&目录下。
命令格式:
#&mkyaffs2image&system/&system_new.img
了解以上方法的意义在于,我们可以对镜像文件镜像修改,定制,以符合自己的需求。
Android&ROM的制作方法
网上有很多制作Android&ROM的教程,这里罗列一些链接:
北理工的陈罡写的两篇文章,是我目前发现的最好的教程,写的非常详细
http://blog.chinaunix.net/u/26691/showart_2193396.html
http://blog.chinaunix.net/u/26691/showart_2194274.html
这两篇文章参考了国外论坛的几个经典教程:
http://forum./showthread.php?t=566235
/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images
国内还有一篇文章写的也不错,这篇文章更侧重于制作类似Patch的ROM包
/html/30.html
这里基于自己的理解和测试,总结了一些方法步骤。
1.从可用的ROM起步
Android&的ROM包通常称为update.zip包,你可以到上下载现成的.zip包。要学习ROM包的制作,我们可以从这样一个zip包开始。解开zip包后,通常有这样一些内容:
boot.img&&&&文件&&&&这是编译内核源代码生成的内核映像,然后与android源码编译出来的ramdisk.img一起通过mkbootimg工具创建出来的,图省事的朋友也可以从网上其他的刷机包里面拷贝一个能用的出来即可,基本上都差不多。
META-INF&&&&目录&&&&这个目录是手工创建的,主要用来存放一个升级脚本update-script(这个脚本的内容与system目录中包含的文件有很大关联)以及签名。
system&&&&目录&&&&这个目录就是编译android的平台源代码生成的
要创建自己的ROM,我们通常会涉及到以下的一些工作:
1.&&&&编译内核生成内核映像。但一般情况下,我们没有必要自己去编,直接从刷机包里面取出一个就可以。譬如,你要做一个2.2版本的升级包。可以到网上找一个与自己机型相匹配的刷机包,从里面取出相应的kernel.img。
2.&&&&ramdisk.img的修改。ramdisk.img&是根文件系统,里面包含了启动配置脚本。
3.&&&&update-script的修改。
4.&&&&System的修改。
我们先做个简单的测试工作,来为后面更复杂的工作做好铺垫。测试内容为:先对zip进行解包,然后分别在ramdisk和system的根目录下添加一个小文件,接着,生成新的ROM,并验证ROM是否可用。
详细的步骤可以参考http://blog.chinaunix.net/u/26691/showart_2194274.html。这里要指出的是,这篇文章以及网上许多类似网站提到的方法都是针对HTC&G1或&Nexus&one的。而我在测试的时候,用的是HTC&G3&Hero。以上的方法导致的一个后果是,重新打包后再烧录,机器无法正常启动,adb&shell也无法登陆。后来在国外的一篇博客上看到了对此问题的说明,问题的根源很简单,从G3开始,打包的时候需要指定&“--base”参数。对于Hero,参数为”--base&0x”,但对于其它型号的机器,”--base&要设定为多少,需要参考内核代码的实现。
解包打包可用两个脚本完成unpack-bootimg.pl,&repack-bootimg.pl。其中打包脚本用到的mkbootimg工具,在out/host/linux-x86/bin目录下。unpack-bootimg.pl可直接将boot.img生成内核镜像boot.img-kernel和ramdisk目录树boot.img-ramdisk。repack-bootimg.pl可将boot.img-kernel和boot.img-ramdisk重新生成boot.img。
在解包后,我们在ramdisk和system目录下,各添加一个测试小文件(譬如叫mytest)。做完这些开始组包,重新生成update.zip。到这里我们的工作并没有完全结束,还有最后的一步——签名。签名需要用到签名工具testsign.jar,这是一个基于java&1.6版本的工具。在编译Android源码的时候,我们强调要用java&1.5。在这里,我们必须切换到1.6版本。切换办法见这里。
2.利用自己编译的镜像生成ROM
1)重新生成boot.img
将前面解包得到的boot.img-ramdisk&和&编译源码后out/target/product/generic/下的root目录树放在一个目录下,然后用repack-bootimg.pl重新生成boot.img
2)&创建一个目录&myupdate,将上面生成的boot.img放到这个目录下
3)将编译Android后,out/target/product/generic/生成的system目录树拷贝到myupdate目录
4)在myupdate目录下创建update-script脚本目录
#&mkdir&-p&META-INF/com/google/android
5)删除system/bin目录下的“符号链接”,创建update-script脚本
update-script脚本的语法可以参考&这里&。研究原有的update-script脚本,我们可以大致看出update-script负责文件删除拷贝,权限设置,符号链接创建等工作。我们可以在原有update-script的基础上进行修改以得到我们自己的update-script。这里,我们要注意的是,要保证update-script的link创建成功,必须把/system/bin下的link删除。我们可以用一个脚本来做这个工作&delsymlink。我修改后与自己编译的Android2.2&system目录树相匹配的脚本。
6)重新打包并签名
7)自制ROM下载时报错
在试验过程中,我经常遇到如下的报错
Can't&open/sdcard/download/update.hiapk
问题原因:当&update-script&中有命令操作错误,脚本就会停止,并报这个错误,解决的办法就是修正脚本。你可以从这个错误前面的提示,知道脚本哪一行出错了。
3.&创建一个Patch功能的ROM
很多时候,你并不需要创建一个完整的ROM包。你需要的只是,添加删除或修改一些功能(譬如你仅想添加一个应用,或者你想添加busybox工具)。我们可以参考这里,来实现这个目的。
我用一个简单的例子来说明这个过程。该例子是在system目录下添加一个mytest文件,同时创建一个指向这个文件的符合链接mylink。以下是过程:
1)&&&&创建patch_update目录,并在该目录下执行
#&mkdir&system
#&mkdir&–p&META-INF/com/google/android
2)&&&&在system目录下生成mytest文件
3)&&&&在&META-INF/com/google/android&创建如下的update-script
show_progress&0.1&0
copy_dir&PACKAGE:system&SYSTEM:
symlink&mytest&SYSTEM:mylink
set_perm&0&0&0755&SYSTEM:mytest
4)&打包签名
如果前面的3步曲,你已经很好的掌握了,应付你的日常工作应该没有太大的问题。但要成为真正的ROM高手,你还有很多东西要修炼。你要了解整个启动过程,内核编译,Android源码的编译及配置,文件系统及启动配置。。。
烧录&Android&机器
HTC的官网上有一篇文章&这里&详细介绍了镜像包及烧机方法。通常用两种烧录方式:recovery模式,fastboot模式。通过一些组合键,可以进入烧录模式。以HTC&G3&Hero为例,“Home&+&Power”同时按,可以进入Recovery模式,“Back&+&Power”可以进入fastboot模式。
Recovery模式比较常用,它相当菜单界面的下载模式。直接把前面所述的update.zip文件放到SD卡上,然后通过在机器上操作控制菜单,就可完成烧录。Fastboot是基于命令行的较低级的下载模式,它可直接烧录.img文件。Fastboot工具也在out/host/linux-x86/bin目录下。
在我测试过程中,发现fastboot模式无法烧录,当我试图烧录system.img的时候,出现下面的出错信息:
#&fastboot&flash&system&system.img
#&writing&'system'...&INFOsignature&checking...
FAILED&(remote:&signature&verify&fail)
在网上查了之后,发现这和签名有关系,SPL要重新刷一下才可,默认是SPL-on,即检测签名,改成SPL-off,就不会出现这个问题,目前没有什么好办法来处理这个问题。好在recovery模式已经能很好地满足需求了,可以先放弃fastboot。
如果你通过recovery模式烧录后,发现系统无法正常启动,没有关系,recovery还是可以进去的。在recovery模式下,你可以通过adb&shell登陆机器。可能你进去后,发现SD卡并没有挂接上来(执行mount就可以查看挂载情况)。但recovry模式要求update.zip必须放在SD卡根目录下,怎么办?很简单,执行“mount&–a”就可把SD卡区域挂接上来。如果这招也不行,还有一招,就是把userdata分区手动挂接到sdcard目录,这样就骗过了recovery。
#&mount&/dev/mtdblock5&/sdcard
然后,你再用adb&push把新的update.zip拷贝到sdcard目录,重新进行烧录。一般来说,在执行“Flash&zip&from&sdcard”之前,都要先进行Wipe操作,以清除旧的用户数据。
如何更新recovery?
可以参考/viewthread.php?tid=66973,按照这个攻略,把自己的G3&Hero更新成了recovery-RA-hero-v1.6.2-blue.img。不过,一般无特别的需求,最好不要更新recovery。毕竟有一定风险,一不小心就成了板砖。
其它参考信息:
知名的Android论坛:
国外:&很多国内论坛的文章都是参考或翻译&的
国内一个很好的博客:http://xy0811./&,有很多对Android的研究专题
国外一个很好的博客:http://blog.coralic.nl/category/android/&,这个博客帮我解决了在烧录&HTC&G3&HERO的时候,自己打的ROM包烧录后无法启动的问题
Android&文件系统
/developerworks/cn/linux/l-k26initrd/
/art/468.htm
http://git./?p=kernel/common.a=f=Documentation/filesystems/ramfs-rootfs-initramfs.txt
/course/6_system/linux/Linuxjs/312.html
Android&init脚本的语法
http://blog.chinaunix.net/u3/103613/showart.php?id=2237012
http://www.kandroid.org/android_pdk/bring_up.html
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:423392次
积分:5039
积分:5039
排名:第3984名
原创:116篇
转载:63篇
评论:75条
(2)(1)(6)(5)(3)(7)(2)(3)(4)(9)(3)(6)(11)(3)(9)(2)(14)(6)(3)(25)(13)(5)(4)(1)(2)(2)(20)(9)(1)查看: 2519|回复: 1
经验3810 魅力30 UID4112285帖子主题精华0金钱84276 注册时间最后登录
阅读权限120UID4112285帖子主题精华0金钱84276 注册时间最后登录
& && & 由于安卓的开放性和兼容性,安卓手机系统也越来越个性化,呈现出百花齐放的姿态。这就避免不了rom制作工具的出现,到底该如何选择自己合适的工具来辅助我们完成制作呢?
& && & 对于ROMer来说,大家都有自己的制作工具,用的比较多的工具就属安卓厨房了,安卓厨房支持大部分机型官方固件(HTC,三星,华为,索尼等)以及所有民间ROM,拥有多种功能,支持对ROM进行完全定制,添加各种功能和软件。这让他得到了很多ROMer的青睐。& && &
& && &&&我们先来说说厨房的缺点:首先,现在厨房做出的rom很多都不能直接用来刷机,会有许多错误,由于安卓发展的很快,厨房也有段年龄了,致使厨房有点跟不上rom发展的步伐,导致其制作的rom不能直接使用。 其次,使用厨房要配置环境,下载安装及使用方法,都是比较复杂的,让许多小白ROMer对其望而却步,网上诸多的厨房教程就可以体现这一点。 还有就是厨房的工作效率比较低,即使你完成最基本的修改,也要经过解包,签名,封包的过程,这样一个过程会耗费你大量的时间,让你整个的制作过程延长。
& && && &以上厨房的几个缺点会让ROMer们想要去找到新的,更加完美的制作工具。还有一些制作工具,我就不在这里详细描述了,复杂的操作是避免不了的,我就不在这里详细描述了。
& && && &对于小白ROMer来说,他们想要制作自己喜欢的rom,又不想花大量的时间去学习,因为大多数ROMer都是兴趣,而走上了ROM制作的道路,他们都有着自己的工作或者学习任务,没有那么多的时间和经历花费在学习操作rom工具上面。操作简单,容易上手的制作工具是他们最好的选择,我推荐一款制作工具—rom助手,这款工具操作非常简单,甚至你点点鼠标就可以完成rom制作,非常适合小白ROMer。
& && && &对于一些专业的ROMer来说,“正在解包”、“正在签名”,“正在封包”等等词语,是他们最不愿意看到的,完成一个rom制作,会有好多次解包,封包等,这意味着他们要等,要等很多次,这样就无形的浪费了我们大量宝贵的时间,拉低了制作的效率。大家就没有想过去寻找更加完美的rom制作工具么,若是把这些时间放到美化上,放到优化功能上,我们制作的rom会更加完美。
& && && & rom制作工具的选择,不要在网上看大家都用什么,你就去用什么,大家用的不一定就是最好的,不一定就是最适合你的,在飞速发展的信息时代,互联网每时每刻都在更新大量的资源,也许有更加适合你的rom制作工具在等待着你,工欲善其事,必先利其器,你的武器完美吗?我现在用的制作工具,是在一只蘑菇论坛发现的,觉得它才是最适合我的。你找到适合你的rom制作工具了吗?
经验3810 魅力30 UID4112285帖子主题精华0金钱84276 注册时间最后登录
阅读权限120UID4112285帖子主题精华0金钱84276 注册时间最后登录
沙发自己坐了
Powered by扫描下载MIUI论坛APP
经验625 米
在线时间13 小时
积分 652, 距离下一级还需 1348 积分
积分 652, 距离下一级还需 1348 积分
机型红米手机1-TD版
签到次数39
MIUI版本6.6.1
教你怎么移植ROM,做自己的ROM、方法不难。瞧好了、你就是下一个大神!
其实移植并不难,主要看你有没有耐心。
比如我拿红米来举例
这里以目前miuiV5为基础,其他系统略有不同。
要移植,就要了解系统的结构和打包解包:
打包很容易,只需要制作成ZIP格式的压缩包就行了,里面包含2个文件夹和1个boot.img文件,boot.img是内核,没有内核的系统是不能运行的,另外两个文件夹一个是system,也就是Android系统所在地,另一个是META-INF,这里一般存放是刷机脚本,我们移植一般需要改的就是system文件夹里的内容。
解包就是解压缩。
首先说结构,system下有:
App文件夹(存放内置软件的地方,每个软件都有自己的名字标注着,很容易识别,在移植上除USB.apk必须用咱们自己的版本以外,其他可以用同分辨率机型的APP直接替换)
Bin文件夹(本文件夹一般存放的是开机运行的脚本和一些系统必备代码,一般移植出了问题不能开机就是这里的问题,一般系统升级不会修改这里,在移植的时候,要删除2nd-init以及所有.sh脚本文件,,如果电池显示?,那么可以通过替换battd文件来修複)[hide]
Etc文件夹(本文件夹里存放着这种配置文件,包括WIFI,蓝牙和基带{\etc\motorola\bp_nvm_default}配置文件,A-GPS的文件和Hosts文件也在这里,media_profiles.xml可以控制录像质量,cameraCalFileDef5M.bin与cameraCalFileDef8M.bin是照相的数据库文件,都可以修改,子文件夹init.d文件夹下可以写入自己的开机脚本,来实现一些程序或者脚本开机启动,如果想要执行某模块,可以添加一个文件,不要有后缀名,格式爲00aaa
00是执行序号,系统开机时会按顺序执行,aaa是为了区别每个脚本的名称,可以随便写)
Font文件夹(字体文件夹,没什么好解释的,你可以替换为你喜欢的字体)
Framework文件夹(系统框架结构文件目录,这个目录下是系统服务和系统界面的所在地,一般不可以单独替换,要移植的话必须全部替换,不然会卡M,framework-res.apk文件就是系统语言,界面的所在文件,修改他就可以直接修改系统界面,framework-res.apk必须与app文件夹中systemui.apk配套,不然开机会出现状态栏FC,不同版本不可以乱用,比如CM7.1.0.5不能用CM7.1.0.4的文件)
Lib文件夹(本文件夹是系统所需要用到的驱动,库文件的所在,如果某程序FC或者无法正常运转,可能是这里的问题,我把我知道的一些文件的用途说一下:
***Lib/dsp文件夹 DSP驱动所在,一般不需要改
***lib/egl 显示芯片驱动,一般不需要改
***libaudio.so 话筒及音频驱动 必须用红米的
***libaudioflinger.so 音频附属驱动 必须用红米的
***libbridge.so 相机方面
***libbattd.so&&电池驱动
***libcamera.so 相机驱动 必须用红米的
***libcameraservice.so 相机服务驱动
***libfmradio.so FM驱动
***libHPImgApi.so 图片接口驱动 必须用红米的
***libLCML.so 未知驱动&&必须用红米的
***liboemcamera.so 相机驱动&&必须用红米的
***libOMX.TI.JPEG.Encoder.so 照片编码器&&必须用红米的
***libOMX.TI.AAC.decode.so&&此类型的都是编码器和解码器驱动(多媒体)
Media文件夹(铃声及开机动画)
TTS文件夹(文字转语音文件夹)
Usr文件夹(键盘文件与各类数据库)
Xbin文件夹(系统工具文件夹)
Build.prop文件(系统参数文件,修改这里可以调节系统部分参数与性能)
如:默认虚拟机大小,铃声延迟,系统版本等
一般来说只要遵循规律,由少至多移植,不会出现什么问题,出现问题就从头开始,多积累经验,慢慢就会了。
1.你需要有一个oppo的包,例如:oppo FIND 5的包
2.你需要有一个MIUI的包,例如:红米的MIUI的包
3.要将oppo移植到miui,首先第一步就是解包,可以使用厨房解包,简单快捷
4.删除miui的ROM中的system下的app、framework、media文件夹
5.将oppo中的文件夹移入miui的包中
6.下载Beyond Compare(文件比较工具)对比两个ROM中的bin目录下的文件
除了wlan,wl之类的文件,其余CM包中缺少的都必须加入
7.对比etc文件夹,内部文件夹不能碰!oppo多余的文件夹进行加入,多余的文件加入
8.对比lib文件夹下的so驱动文件,oppo包里多余的文件放进CM的lib下
9.对比xbin文件,miui的ROM中多余的果断的删除掉
10.build.prop,主要修改设备信息,没什么大问题
11.两个ROM的boot.img解包,替换miui的kernel文件进oppo的,之后打包内核
12.打包出来的新内核替换进oppo的ROM
我就是这样做的。。。自学的。。。我移植miui到G10上就是这样做的。。。。试试就知道了嘛~~~~
13.打包ROM,签名,试刷,刷入则成功,刷不入,则失败
喜欢此教程的请加分!!!谢谢支持!!!
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
已有&4&人评分
MIUI 因你更精彩!
助人为乐^_^
原创内容^_^
MIUI 因你更精彩!
经验2216 米
在线时间120 小时
版本6.9.22
MIUI小米5测试组
机型小米手机5
签到次数11
MIUI版本6.9.22
经验313 米
在线时间24 小时
版本5.10.8
积分 354, 距离下一级还需 146 积分
积分 354, 距离下一级还需 146 积分
机型红米手机1-WCDMA版
签到次数11
MIUI版本5.10.8
通过手机发布
经验1011 米
在线时间135 小时
版本6.3.17
积分 1119, 距离下一级还需 881 积分
积分 1119, 距离下一级还需 881 积分
机型红米手机 TD版
签到次数79
MIUI版本6.3.17
通过手机发布
好!没事时弄下
经验3032 米
在线时间134 小时
版本6.10.12
机型小米手机4c
签到次数72
MIUI版本6.10.12
楼主辛苦;
经验321 米
在线时间21 小时
版本4.8.29
积分 489, 距离下一级还需 11 积分
积分 489, 距离下一级还需 11 积分
机型联想A820t
MIUI版本4.8.29
很是喜欢呢
经验6269 米
在线时间198 小时
版本6.9.19
机型红米Note TD版
签到次数72
MIUI版本6.9.19
通过手机发布
楼主做过什么包呢
经验16949 米
在线时间611 小时
版本6.10.20
MIUI小用户
机型小米手机5
签到次数57
MIUI版本6.10.20
谢谢分享~~~
阿弥陀佛,我佛慈悲!
经验301 米
在线时间31 小时
积分 378, 距离下一级还需 122 积分
积分 378, 距离下一级还需 122 积分
机型红米手机1-WCDMA版
签到次数10
MIUI版本6.9.8
通过手机发布
不错不错,谢谢分享
经验823 米
在线时间24 小时
积分 932, 距离下一级还需 1068 积分
积分 932, 距离下一级还需 1068 积分
机型红米手机 WCDMA版
签到次数15
MIUI版本5.7.9
谢谢楼主分享
已关注极客秀微信
已关注微信
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 300周
MIUI 300周更新纪念勋章
MIUI六周年
MIUI六周年纪念勋章
MIUI五周年
MIUI五周年纪念勋章
MIUI 7纪念勋章
MIUI 8纪念勋章
MIUI 8纪念勋章
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号

我要回帖

更多关于 安卓rom开发教程 的文章

 

随机推荐