小米MIUI双系统原理及刷机

很多人都会关注小米手机的双系统吧,其实小米现在还不能真正的实现双系统,但确实能用上双系统。# M9 B# m% q! Z- c
说到MIUI系统的刷机,我们首先想到的是观音哥介绍的6种刷机的方式。具体的内容看参照:http://bbs.xiaomi.com/thread-424539-1-1.html
, P3 `0 L& P* {& ]: u这个帖子里基本介绍的非常的详细,几乎涵盖了小米手机所有的刷机方式。
6 A- ^6 b$ A, l& @) W% B观音哥介绍的OTA方式、升级包本地升级、无线下载完整包升级、刷入其他系统。: I" g, r" P2 F
! b+ G- V5 _2 m* ?/ w9 L
基本都是MIUI特有的刷机方式,其原理如下:
5 Y. {" \. x# G; k% y- [7 b' E
       先说一下小米更新(OTA)系统的原理,大家在每周五更新系统时有没有发现,更新都是在开机状态下的,不用重启进入recovery的,像别的手机在更新时,下载完升级包后都会提示你重启进行升级的,但小米是在更新后叫你重启进入新系统的,这就是小米特有的“边打电话边刷机了”。原理是这样的,刚开始小米把一个系统分成两个安装到手机,这两个系统是一样的,当每周五,你在系统一更新系统时它实际是更新系统二,然后你重启就进入系统二,而当你是系统二下更新时,它实际更新的是系统一,重启后就进入系统一。也就是说,当你更新MIUI版本后发现有BUG,想回到老的版本,你只需要在“系统升级”那切换到另一个系统就行了,不过大家大家注意了,更新的只是系统,游戏和软件都不变的,不理解的等下看双系统的原理你就会明白了。
' b$ K7 d; X6 a$ }. V小米有两个system(系统)分区,但只有一个DATA(数据)分区,即两个系统共用着DATA(数据:如联系人,软件,游戏,信息等),所以两个系统要是同一种系统,即两个都是安卓或者两个都是WP7系统,有的同学会说这叫神马子双系统!之前我就说过嘛,这不是真正的双系统,但也不是没有用处,至少你可以用MIUI系统+原生系统一起用,不是吗?
7 a5 d5 X/ P1 n& h4 V+ j5 y; P双系统安装的方法很简单,在“系统更新”—“选择安装包”里选择你下载好的另一个系统,安装上去,重启后就进入另一个系统了,想切换就 在“系统升级”—"切换系统“那切换到另一个系统就行了,但是,安装了两个“不同”的系统以后,MIUI系统是不能OTA更新了的,原因大家自己想一下。

: \  U9 {) O* X
1 t8 v- O1 i. frecovery刷机方式:+ ~3 r! z- C0 s
       这基本就是观音哥帖子里说的第5种刷机方式了,具体的刷机步骤参照观音哥的帖子,我这里不多说。8 L( {  o7 q+ h5 w
简单的说就是将update.zip入到SD卡,然后在recovery模式下,更新update.zip文件,即可刷机成功。1 i3 \- ?( w6 k1 [$ ]
原理:这种方法是调用了recovery的方法将各种img或文件进行复制等操作。1 {8 h5 y8 G3 ^/ \1 y$ e1 \3 d0 X
– t% F: D& E2 b5 ~' k
fastboot方法:
& R) m; m0 l' e) G1 N" H
       fastboot方法其实是一种比较暴力,也是一种比较通用的刷机方式。说白点,fastboot就是将已有的各分区映象文件(img文件,意义上类似我们对光盘做的映象文件)直接覆盖写到指定分区中,有点暴力,也有点类似我们平时操作系统的Ghost还原。
2 I0 L3 e7 s' j) E5 Z( C- l; B7 Q5 ]以上的刷机方式,肯定是前面的4种最简单,傻瓜式的升级更新方式。但是对于刷入其他系统,或者在刷机的过程中发生了某些意外,就用不了这4种刷机方式了。6 r. i$ n5 j& J

/ D5 S5 i5 E& w+ p: f7 S% M* c" J# d1 T. j  ^
除了MIUI特有的4种刷机方式,通常的安卓手机采用的刷机方式其实是第5种和第6种。# V' _8 ?5 ]8 G0 ?* ]. e' P
Recovery方法更简单,只需要傻瓜式的将update.zip放到SD卡的要目录下,然后进入Recovery模式alt-s就可以了,但和任何傻瓜式东西一样,他的灵活度就很小了,而且出错了也都不知道如何解决。一般来说做Rom的高手为了保证Rom的可靠性,在安装程序中都会对一些安装环境进行一些确定,而各位的手机环境又是千变万化的,Rom高手也很难考虑周全,另外,Recovery程序本身也有一些环境验证。, K) P, i) ]! `# h% \( q
fastboot方法更灵活,功能也更强大,fastboot方法不需要依赖于recovery,甚至linux底层刷坏了recovery模式都进不了的情况下也可以通过fastboot方工刷回来。fastboot模式其实是调用spl进行刷机的,所以如果刷spl坏了,fastboot模式应该也进不了,也就是砖了。fastboot方法需要各位电脑上有fastboot程序,同时手机要进入fastboot模式才可以操作。
, U# j; h0 J7 W% ^' R+ W' d

7 d2 ^! \  N0 e# S1 S回头再来说说Android系统中的各分区(可能分区这个说法不太准确)
. \$ t: E4 P- D我了解到的Android系统中的分区有:
  |" @! }1 W; u1 }1 \, X
hboot(我们刷的SPL就是这玩意),这个分区是最基本的引导分区(类似电脑中的BIOS),这个区坏了,差不多就变砖了,所以我们刷SPL时才要如此小心啊。2 @, n) ^  {$ K5 X, F
boot,这个分区应该是linux操作系统的引导分区。+ `5 S2 }4 a( T& ^* u* L1 P4 _" L* @9 E
radio,这个分区是手机的一些底层设备相关的驱动或功能程序吧,如打电话和发短信等,不同的系统版本会有不同的radio配套,我们平时刷了高版本的ROM后,如果不刷高版本的Radio就有可能导致打电话不正常之类的。(少数情况,又称无线通讯协议)' K$ o9 R0 w# k
recovery,这个分区装的就是前面提到的recovery程序了,这个刷不同的recovery版本可以带来不同的功能,有兴趣的同学可以基于recovery的源码自己编译出一个自己的recovery出来。但一般来说,刷recovery最主要的就是提Root权限。
' O$ U3 F( t, C1 \system,是一般发布的ROM的主要功能程序分区了,我们说的ROM功能和自带程序的定制应该就是基于这个分区的修改和编译了。. i# d; C* @0 f7 g% h7 h$ S4 a. ~
userdata,用户数据,不说了。7 p) G( x7 a4 O% K# i! r
cache,缓存,一般是用来OTA升级时的缓存,我们说刷SPL可以增加程序区的空间大小就是主要将这个区的大小缩水了然后加大了程序区的分区大小。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平