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 原生代码得到一个rom,然后跑到某某手机上。鉴于很多兄弟对这块不清楚,我这里一并简单回答之。1 ROM包含两个...

android rom移植知识普及

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

转邓凡平献给每个做rom的菜鸟·android rom移植知识普及

android rom移植知识普及   最近接到很多兄弟们的求助,也回答过无数个和下面这个问题类似的问题: 如何编译android 原生代码得到一个rom,然后跑到某某手机上。 鉴于很多兄...

全面认识Android手机(MIUI ROM适配之旅第四天——移植MIUI Framework)

1. 为什么使用代码插桩     首先我们来回顾第一章中的Android软件架构图,这个图中框架层的代码完全是由Java语言编写的,对于这两层的代码,在没有源代码的情况下我们可以采取代码插桩的方...

全面认识Android手机(MIUI ROM适配之旅第四天——移植MIUI Framework)

1. 为什么使用代码插桩     首先我们来回顾第一章中的Android软件架构图,这个图中框架层的代码完全是由Java语言编写的,对于这两层的代码,在没有源代码的情况下我们可以采取代码插桩的方...

深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM

一、 修改化定制Android4.0系统 Android系统启动时,先加载Linux内核,在Linux的framebuffer驱动里可以定制开机界面,Linux内核启动成功后,挂载根文件系统,启动An...

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

一、EEPROM,EPROM,FLASH  1、EEPROM,EPROM,FLASH 都是基于一种浮栅管单元(Floating gate transister)的结构。 EPROM的浮栅处于绝缘的...

完整乐蛙rom移植教程

  • 2013-01-26 17:44
  • 1.71MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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