`
lijuanabc
  • 浏览: 127693 次
社区版块
存档分类
最新评论

android rom移植知识普及

 
阅读更多

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

如何编译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。

分享到:
评论

相关推荐

    安卓rom的移植教程

    ROM移植不仅能够让用户享受到不同厂商的操作系统特色,还能在一定程度上提升设备性能或者加入更多实用功能。本文档将详细介绍如何将MIUI ROM移植到HTC Incredible手机上,同时介绍所需的工具及具体步骤。 #### 二、...

    android 刷机包修改 移植

    随着Android系统的普及与发展,越来越多的技术爱好者加入到了自定义ROM的开发行列之中。本文旨在深入探讨Android刷机包的修改与移植方法,帮助读者了解如何对现有的ROM包进行定制化调整,以满足特定设备的需求或实现...

    乐娃OS移植教程1

    这类ROM是针对特定型号设备的移植项目,旨在将其他设备的官方或第三方ROM移植到目标设备上。移植过程中需要对硬件驱动程序、系统框架等进行适配,因此涉及到较为复杂的开发工作。移植ROM可以让用户享受到原本只有...

    嵌入式android开发

    综上所述,嵌入式Android开发是一个涉及多个层面的知识体系,它不仅包括对Android系统架构和构建系统的深入理解,还要求开发者能够将Android系统移植到各种嵌入式设备上,并且能够为其开发定制化的应用程序。...

    基于Android和ARM的监视平台的设计与实现

    随着Android平台在全球市场的快速普及和发展,它不仅限于智能手机领域,也开始被广泛应用于各种嵌入式系统中。相较于传统的GNU/Linux发行版,Android平台解决了“函数库依赖性”的问题,从而获得了更多国内外制造商...

    物联网终端操作系统解决方案.pptx

    雅鲁藏布科技是一家专注于物联网技术...总的来说,雅鲁藏布科技通过Dthing系统为物联网行业提供了一个集可移植性、低资源消耗、强大应用开发能力和灵活设备接口于一体的解决方案,旨在促进物联网应用的快速发展和普及。

    Yarlung物联网终端操作系统解决方案介绍1723.pptx

    Dthing系统的特点包括其高度可移植性,可以适应Nucleaus、ThreadX、Linux、Windows等多种操作系统,资源需求低,仅需ROM 500K和RAM 500K。它提供了开放API,支持多种外设接口,如COMM、ADC、GPIO、I2C、LCD、MIC、...

    jsnes-mobile:jsnes-mobile

    JSNES-Mobile 是一个专为智能手机优化的JavaScript NES(Nintendo Entertainment System)模拟器,它允许用户在iPhone、Android等移动设备上重温经典的FC(Family Computer)游戏。这个项目是JSNES的分支,原版JSNES...

Global site tag (gtag.js) - Google Analytics