当前位置: 东方母婴网 >资讯 > 文章

ROM刷机原理及ROM制作技术知识

2018-03-18 20:04:11  阅读:505+ 来源:本站原创 作者:何润东

这一段时间刷了一堆ROM,安卓系列、CM、Hero、OldMos、隔壁新出的Android2.0,反正都尝了一下鲜,手机的照相机也刷得再也启不来了(不知道什么原因,杯具)。有话说:"久病成良医",想我们折腾了这么久的刷机,也得总结总结不是,小弟不才,远没成"良医",但还是想把自己的一些认识和心得写出来,以期抛砖引玉...

一、刷机原理

记得第一次刷机,哪个心理紧张啊。其实紧张什么呢?就是因为不明白原理啊,只看到一堆的教程来依葫芦画瓢,生怕错了一步将手机变砖。说起来,刷机就是两种方法:

一是recovery方法,就是我们平时将update.zip入到SD卡,然后alt-s的方法,这种方法是调用了recovery的方法将各种img或文件进行复制等操作。

二是fastboot方法,这个方法其实是比较酷的方法,说白点,fastboot就是将已有的各分区映象文件(img文件,意义上类似我们对光盘做的映象文件)直接覆盖写到指定分区中,有点暴力,也有点类似我们平时操作系统的Ghost还原。

这两种方法哪种更好,这就不好比高低了,总的来说:

Recovery方法更简单,只需要傻瓜式的将update.zip放到SD卡的要目录下,然后进入Recovery模式alt-s就可以了,但和任何傻瓜式东西一样,他的灵活度就很小了,而且出错了也都不知道如何解决。一般来说做Rom的高手为了保证Rom的可靠性,在安装程序中都会对一些安装环境进行一些确定,而各位的手机环境又是千变万化的,Rom高手也很难考虑周全,另外,Recovery程序本身也有一些环境验证。

fastboot方法更灵活,功能也更强大,fastboot方法不需要依赖于recovery,甚至linux底层刷坏了recovery模式都进不了的情况下也可以通过fastboot方工刷回来。fastboot模式其实是调用spl进行刷机的,所以如果刷spl坏了,fastboot模式应该也进不了,也就是砖了。fastboot方法需要各位电脑上有fastboot程序,同时手机要进入fastboot模式才可以操作,关于这些知识,请参见Google *^_^*

二、回头再来说说Android系统中的各分区(可能分区这个说法不太准确)

我了解到的Android系统中的分区有:hboot(我们刷的SPL就是这玩意),这个分区是最基本的引导分区(类似电脑中的BIOS),这个区坏了,差不多就变砖了,所以我们刷SPL时才要如此小心啊。

boot,这个分区应该是linux操作系统的引导分区。

radio,这个分区是手机的一些底层设备相关的驱动或功能程序吧,如打电话和发短信等,不同的系统版本会有不同的radio配套,我们平时刷了高版本的ROM后,如果不刷高版本的Radio就有可能导致打电话不正常之类的。

recovery,这个分区装的就是前面提到的recovery程序了,这个刷不同的recovery版本可以带来不同的功能,有兴趣的同学可以基于recovery的源码自己编译出一个自己的recovery出来。但一般来说,刷recovery最主要的就是提Root权限。

system,是一般发布的ROM的主要功能程序分区了,我们说的ROM功能和自带程序的定制应该就是基于这个分区的修改和编译了。

userdata,用户数据,不说了。

cache,缓存,一般是用来OTA升级时的缓存,我们说刷SPL可以增加程序区的空间大小就是主要将这个区的大小缩水了然后加大了程序区的分区大小。

三、一个典型ROM的剖析

我们平时升级的Rom都是打包成适合Recovery方式刷机的包。能够被Recovery程序识别并处理的包应该有一个固定的格式,我理解的一些重要的约束如下:

1)必须是标准的zip压缩包;

2)recovery脚本必须存入在meta-INFcomgoogleandroidupdate-script;

3)其它的一些证书和签名信息应该都放在meta-INF下。

四、我们有没有可能自己定制ROM呢

理论上我们是可以自己定制的。最简单的定制应该就是拿一个现有的认为还不错的基础ROM,替换一些资源,加一些系统自带程序,然后打包发布;再玩高级一点,就应该自己去修改一些系统自带的程序,如汉化一些系统原始程序;还玩高级一点,就应该自己到android官方站点去下载android系统的源码来编译,并基于系统级的定制和移植了,如现在火热的android2.0源码编译系统移植。

如果是简单一点的自制ROM,主要应该会要解决如下几个问题:

1)选定一个比较好和稳定的内核和基础,就是update.zip包中的哪个boot.img,另外,system目录中大部分也是直接可用的,就可以作为自定义Rom的基础。

2)修改系统。例如可以这样来定制的东西:systemetcapns-conf.xml,这是设置APN接入点的;systemetchosts,这是设置Host文件的,现在有很多人用的包绑定不了GMail,就可以在这个Host文件中增加一条:74.125.93.113 android.clients.google.com (当然,这个地址能用多久也不好说)...还有什么东西要自己去定制就自己去翻看瞧瞧。

3)Rom的重新打包签名。前文已经介绍了一个Rom包的基本结构,但完全按照这个结构打包还是不能被Recovery安装的,因为没有签名!Rom签名可以下载一个自动签名工具Auto-sign,具体到哪下,请Google。(注:Rom签名工具需要Java1.6支持,所以系统还得有JRE1.6的环境)。

再往下就有点高深了,目前只留心一下这些基础的东西,错误在所难免,欢迎指正,拍砖轻些。

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!

点击排行
睿宝儿科联合富士instax教育:守护儿童健康,共创美好回忆
睿宝儿科联合富士instax教育:守护儿童健康,共创美好回忆

所有家长都希望自己的孩子能够健康快乐的成...

富士instax教育联手三野石孕童摄影,为准妈妈送上“爱的体验”
富士instax教育联手三野石孕童摄影,为准妈妈送上“爱的体验”

摄影的意义在于它能留住生命中美好的瞬间。...

孩子早产脑子发育不良的后果早产儿如何护理
孩子早产脑子发育不良的后果早产儿如何护理

一、早产儿脑部发育不良的并发症  1.心血...

Kipling官宣品牌大使Selina任家萱 携手乐活女神——“轻轻我行,即兴乐活”
Kipling官宣品牌大使Selina任家萱 携手乐活女神——“轻轻我行,

明媚而崭新的春日与3.8女神节共同来临之际...

新生儿水中毒了怎么办怎么给宝宝科学的喂水
新生儿水中毒了怎么办怎么给宝宝科学的喂水

一、婴儿水中毒的症状有哪些  要知道对于...

青紫型新生儿的原因解析新生儿皮肤青紫的6大原因
青紫型新生儿的原因解析新生儿皮肤青紫的6大原因

一、新生儿皮肤青紫的原因  局部青紫  ...

儿童喉咙发炎引起呕吐的原因儿童喉咙发炎引起呕吐的
儿童喉咙发炎引起呕吐的原因儿童喉咙发炎引起呕吐的

  在日常生活之中,小孩子经常会出现喉咙...

16天新生儿黄疸值190高吗新生儿黄疸指数高的原因有哪些
16天新生儿黄疸值190高吗新生儿黄疸指数高的原因有哪些

一、正常新生儿黄疸值是多少  足月出生宝...

黄疸指数高的危害黄疸高怎么治疗
黄疸指数高的危害黄疸高怎么治疗

一、为什么黄疸会偏高  1、新生儿的体内...

小孩出麻疹症状小孩护理措施
小孩出麻疹症状小孩护理措施

  因为宝宝的身体比较弱,抵抗力还没有发...

新生儿脐炎首选抗生素九个步骤轻松护理宝宝的脐部
新生儿脐炎首选抗生素九个步骤轻松护理宝宝的脐部

一、新生儿脐炎首选抗生素  新生儿脐带发...

曼龙,用爱见证传承,一路陪伴成长
曼龙,用爱见证传承,一路陪伴成长

曼龙创始人:“做这个品牌的初衷,只是为了...