android rom移植知识普及

转载 2013年12月04日 16:23:10

http://www.cnblogs.com/innost/archive/2012/06/01/2531048.html


最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题:

如何编译android 原生代码得到一个rom,然后跑到某某手机上。

鉴于很多兄弟对这块不清楚,我这里一并简单回答之。

1 ROM包含两个基本的image,一个是boot.image,这个image中主要是kernel和文件系统/目录下的一些东西。kernel我就不说了,/目录下主要是init和相关的配置文件

system.image是android系统的userpace的核心,包括/system/bin,system/lib,system/app下的一些东西。

2 手机,不同手机,其内部使用的芯片,配置等等都不同。另外,android源码中并不包含硬件相关的代码。也就是说拿标准源码编译出来的仅仅在模拟器上跑跑还可以,拿到真机上,跑也许能跑起来,但也就把手机当个模拟器使,电话,audio,wifi等等和硬件相关的都不能用。没有什么为什么会这样,硬件相关的驱动是厂商的闭源代码,绝对不可能放出来。 不过,android中自带一些htc/sumsing的二进制HAL层so,也是在编译对应device的时候拷贝到system.image中去的。

所以,基于上面的认识,兄弟们就不要想着拿标准源码搞出一个能正儿八经跑的rom了。除此之外,手机还有AP/BP之分,BP的代码是另外一套,相当于另外一个OS,用于modem通信的。即使你能搞定AP,BP也不要想了

3 CM是怎么搞出来的?CM不是神仙,它的工作我估计分下面几个来完成:

1 boot.image,有可能是直接基于厂商的。例如在HTC G7移植中,直接使用了G7官方的ROM

2 system,image中,跟硬件无关的(也就是非HAL层代码),爱怎么改怎么改。

3 system.image中,跟硬件相关的,先通过adb pull把官方的so弄出来,然后放到自己的ROM中。这里的工作比较难,但理论上是可以做到二进制兼容的。

从上面可知,如果官方没有提供4.0的ROM,CM也歇菜。(我个人觉得其实是可以在4.0中使用2.3的so的,方法可以通过dlopen方式加载,中间再做一层隔离。但如果依赖的头文件发生变化了,那工作量就大了去了)

4 MIUI,点心OS,是CM之上的二次开发。国人的拿来主义造就了MIUI和点心等其叫嚣着做ROM的公司。

综上,兄弟们不要想着凭一己之力搞个牛叉的ROM了,没必要,没意义。

1 想搞rom的,建议在CM基础上做二次开发,和硬件相关的统统都不要动。

2 想改ui的,也可以基于现有的system.image,换换图片,然后再打包成image。这个网上有很多做法。技术含量不高,玩玩可以了。

ANY WAY,谢谢兄弟们的信任。欢迎高手就上述知识点和大家argue。


android rom移植知识普及

分类: Android开发系列2012-06-01 16:46 2100人阅读 评论(15) 收藏 举报 androidimage手机工作htcaudio 最近接到很多兄弟们的求助...
  • mirkerson
  • mirkerson
  • 2013年04月22日 22:19
  • 824

android rom移植知识普及

最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题:如何编译android 原生代码得到一个rom,然后跑到某某手机上。鉴于很多兄弟对这块不清楚,我这里一并简单回答之。1 ROM包含两个...
  • ShunXiangL
  • ShunXiangL
  • 2016年06月19日 13:07
  • 590

android rom移植知识

最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题: 如何编译android 原生代码得到一个rom,然后跑到某某手机上。 鉴于很多兄弟对这块不清楚,我这里一并简单回答之。 ...
  • zbunix
  • zbunix
  • 2013年04月05日 10:18
  • 649

视频基础知识普及视频基础知识普及

码率  码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。   通俗一点的理解就是取样率,单位时间内 取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文...
  • u012811853
  • u012811853
  • 2015年03月03日 17:14
  • 273

深入浅出 - Android系统移植与平台开发(五)- 编译Android源码

2.3编译Android源码 Android源码体积非常庞大,由Dalvik虚拟机、Linux内核、编译系统、框架代码、Android定制C库、测试套件、系统应用程序等部分组成,在编译Android...
  • mr_raptor
  • mr_raptor
  • 2014年03月10日 17:09
  • 21855

看rom助手如何教你脱离伸手党,做出自己的rom

本人接触rom定制、rom移植及美化有段时间了,也用了许多关于这方面的工具。用的比较多的就是厨房了,厨房也是比较有名气的工具了,但是弊端也比较多,比如要先配置JAVA环境,还要下载很大的数据库,安装起...
  • m787858036
  • m787858036
  • 2014年08月21日 16:13
  • 755

安卓Android ROM定制、移植,安卓软件反编译、汉化实战教程第四篇:安卓ROM简单定制、打包、签名、换字体

额,很纠结,今天这人气估计是历史以来的最低点了,博客点击率木有超过20,哎,天怒人怨啊!多的不说教程会慢慢写下去,估计有那么几十篇,估计你读完就能直接上战场了。 首先下载一个ROM主要是ZIP格式的...
  • u012975242
  • u012975242
  • 2014年02月27日 10:20
  • 1890

安卓Android ROM定制、移植,安卓软件反编译、汉化实战教程第六篇:boot.img、recovery.img的解包、打包!

太抱歉了,因为教程实在是有点粗浅了,其实很多东西都不知道怎么去写,这不是复制粘贴,当然很多只是一步步的走的,不过也许我自己觉得已经阐述的很清楚了,可是一旦别人看起来,还是感觉很深奥,没办法,本人就这点...
  • sky79
  • sky79
  • 2014年09月13日 17:45
  • 1338

存储器(Flash、RAM、ROM等)知识普及

一、EEPROM,EPROM,FLASH  1、EEPROM,EPROM,FLASH 都是基于一种浮栅管单元(Floating gate transister)的结构。 EPROM的浮栅处于绝缘的...
  • Fanhaisen001
  • Fanhaisen001
  • 2016年08月16日 16:52
  • 263

数据挖掘总结之消极学习与积极学习

消极学习与积极学习1. 积极学习(Eager Learning)这种学习方式是指在进行某种判断(例如,确定一个点的分类或者回归中确定某个点对应的函数值)之前,先利用训练数据进行训练得到一个目标函数,待...
  • qq_16365849
  • qq_16365849
  • 2016年02月04日 16:48
  • 1295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android rom移植知识普及
举报原因:
原因补充:

(最多只允许输入30个字)