最近在学习刷机相关的知识,在网上看了一些教程以后,对刷机的认识仍是只停留在那么机械式的几步,总以为这样不求甚解真是很差!因此小编找来了下面这篇文章,本身学习了下,确实不错(好吧,小编是新手,但愿大牛带小编装x带小编飞……),分享给你们。php
这一段时间刷了一堆ROM,安卓系列、CM、Hero、OldMos,手机的照相机也刷得再也启不来了(不知道什么缘由,杯具)。有话说:"久病成良医",想咱们折腾了这么久的刷机,也得总结总结不是,小弟不才,远没成"良医",但仍是想把本身的一些认识和心得写出来,以期抛砖引玉...linux
1、刷机原理android
记得第一次刷机,那个心理紧张啊。其实紧张什么呢?就是由于不明白原理啊,只看到一堆的教程来依葫芦画瓢,生怕错了一步将手机变砖。提及来,刷机就是两种方法:缓存
一是recovery方法,就是咱们平时将update.zip放入到SD卡,而后alt-s的方法,这种方法是调用了recovery的方法将各类img或文件进行复制等操做。app
二是fastboot方法,这个方法实际上是比较酷的方法,说白点,fastboot就是将已有的各分区映象文件(img文件,意义上相似咱们对光盘作的映象文件)直接覆盖写到指定分区中,有点暴力,也有点相似咱们平时操做系统的Ghost还原。工具
这两种方法哪一种更好,这就很差比高低了,总的来讲:学习
Recovery方法更简单,只须要傻瓜式的将update.zip放到SD卡的要目录下,而后进入Recovery模式alt-s就能够了,但和任何傻瓜式东西同样,他的灵活度就很小了,并且出错了也都不知道如何解决。通常来讲作Rom的高手为了保证Rom的可靠性,在安装程序中都会对一些安装环境进行一些肯定,而各位的手机环境又是变幻无穷的,Rom高手也很难考虑周全,另外,Recovery程序自己也有一些环境验证。google
fastboot方法更灵活,功能也更强大,fastboot方法不须要依赖于recovery,甚至linux底层刷坏了recovery模式都进不了的状况下也能够经过fastboot方工刷回来。fastboot模式实际上是调用spl进行刷机的,因此若是刷spl坏了,fastboot模式应该也进不了,也就是砖了。fastboot方法须要各位电脑上有fastboot程序,同时手机要进入fastboot模式才能够操做,关于这些知识,请参见Google *^_^*spa
2、回头再来讲说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能够增长程序区的空间大小就是主要将这个区的大小缩水了而后加大了程序区的分区大小。
3、一个典型ROM的剖析
咱们平时升级的Rom都是打包成适合Recovery方式刷机的包。可以被Recovery程序识别并处理的包应该有一个固定的格式,我理解的一些重要的约束以下:
1)必须是标准的zip压缩包;
2)recovery脚本必须存入在META-INF\com\google\android\update-script;
3)其它的一些证书和签名信息应该都放在\META-INF\下。
4、咱们有没有可能本身定制ROM呢
理论上咱们是能够本身定制的。
最简单的定制应该就是拿一个现有的认为还不错的基础ROM,替换一些资源,加一些系统自带程序,而后打包发布;再玩高级一点,就应该本身去修改一些系统自带的程序,如汉化一些系统原始程序;还玩高级一点,就应该本身到android官方站点去下载android系统的源码来编译,并进行基于系统级的定制和移植了。
若是是简单一点的自制ROM,主要应该会要解决以下几个问题:
1)选定一个比较好和稳定的内核和基础,就是update.zip包中的哪一个boot.img,另外,system目录中大部分也是直接可用的,就能够做为自定义Rom的基础。
2)修改系统。例如能够这样来定制的东西:system\etc\apns-conf.xml,这是设置APN接入点的;system\etc\hosts,这是设置Host文件的,如今有不少人用的包绑定不了GMail,就能够在这个Host文件中增长一条:74.125.93.113 android.clients.google.com(固然,这个地址能用多久也很差说)...还有什么东西要本身去定制就本身去翻看瞧瞧。
3)Rom的从新打包签名。前文已经介绍了一个Rom包的基本结构,但彻底按照这个结构打包仍是不能被Recovery安装的,由于没有签名!Rom签名能够下载一个自动签名工具Auto-sign,具体到哪下,请Google。(注:Rom签名工具须要Java1.6支持,因此系统还得有JRE1.6的环境)。
再往下就有点高深了,目前只留心一下这些基础的东西,错误在所不免,欢迎指正,拍砖轻些。
原做者: happylo
来自http://www.morecomtech.com/community/article/sjjc/w2015090005.php
***************************我是分享的天使分隔线********************************
此外,分享一篇刷机常识性的文章:
刷机综述:http://www.morecomtech.com/community/article/sjjc/w2015090001.php