本文小编为大家详细介绍“Android中如何实现rom移植”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android中如何实现rom移植”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
我们提供的服务有:成都网站制作、成都做网站、微信公众号开发、网站优化、网站认证、承留ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的承留网站制作公司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。
读到这里,这篇“Android中如何实现rom移植”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。