Android分区介绍及fastboot刷机教程
见好多论坛朋友对FASTBOOT刷机相当困惑和不解,抑或是相当害怕使⽤fastboot刷机.不管是什么原因,我只需要告诉你,其实⽤fastboot很简单,也很快捷。
下⾯把我⾃⼰总结的⼀些⽅法写出来,希望能给⼴⼤G友在刷机路上助⼀臂之⼒。
fastboot for windows 已加⼊附件内,请⾃⾏下载。
只有⼀个⽂件,下载后随便放在你能到的地⽅.在正式讲刷机之前先讲⼀下G1或者称android的分区知识
splash1:开机画⾯,使⽤Nandroid backup备份系统后的⽂件为splash1.img
recovery:该分区是恢复模式(即开机按Home+power进⼊的界⾯),使⽤Nandroid backup备份为recovery.img
boot:内核启动分区,使⽤Nandroid backup备份为boot.img
system:Android系统部分,⽬录表⽰为/system,通常为只读,使⽤Nandroid backup备份为system.img
cache:缓存⽂件夹,⽬录表⽰为/cache,事实上除了T-mobile的OTA更新外,别⽆⽤处,使⽤Nandroid backup备份为cache.img userdata:⽤户安装的软件以及各种数据,⽬录为/data,使⽤Nandroid backup备份为data.img
因此对于刷机⼀般可以这么理解:
1. 修改开机画⾯, 修改的是splash1
2. root时刷的是所有分区
3. 刷test_keys,更新的应该是recovery
4. 使⽤update.zip刷是更新boot、system
5. 恢复出⼚设置, 清空的是userdata和cache
明⽩这些之后就很好理解,⼀般⽆须更新recovery.IMG,正常情况下只需要更新BOOT和SYSTEM即可.但依我看来这两者是相互依存⽽不可分割的.好下⾯开始说刷机步骤。
进⼊⼿机的SPL模式(power+相机) ,且驱动已经安装。
驱动已经以附件上传,若在我的电脑设备管理中发现此情况,图1亦是未正确安装驱动,只需要右键更新驱动,且指向你从我这⾥下载的驱动即可。
描述:图1
⽆论你从哪⾥下载到⼀个包含boot.img,system.img只要含有这两个⽂件的⽂件你就可以刷机了,将刚才下载的fastboot拷贝到此⽂件夹,图2描述:图2
在开始-运⾏CMD 如下图3
描述:图3
此时可以看见打开的命令⾏
⽤cd命令打开fastboot所在的⽂件夹。图4
描述:图4
输⼊ fastboot devices 图5
描述:图5
若出现我HTxxxxxxx fastboot,这就证明你已经成功了⼀半,ok,接下来就是擦除分区,使⽤fastboot erase xxxx
如下图只需擦除boot,system,也可以是userdata也可以是recovery。。呵呵看实际需要了。
Ok 看图6
描述:图6
Okay啦吼吼接着擦除system 图7
描述:图7
依然OKAY。。userdata和recovery我就不擦了,,命令也是
Fastboot erase userdata 敲完回车
Fastboot erase recovery 敲完回车。
Ok,擦除完了那就开始刷进去吧。。。看图8
描述:图8
先flash boot.img。命令很简单
接着flash system.img 图9
描述:图9
也okay,,,像之前备份的userdata或者是recovery,再未擦除就不⽤在flash了。若需要语法如下
Fastboot flash userdata userdata.Img(确定在备份⾥⾯是这个名字或者之前⼜这个分区)
Fastboot flash recovery recovery.img
Ok下⼀步重启图10
描述:图10
⾄此刷机全部结束,等待你的⼩G启动起来就OK了。。
有时需要在电脑端安装apk程序时,这时候是不许⽤fastboot的,只需要进⼊SDK-tools下⾯运⾏ adb install xxx.apk既可,前提是你要安装的程序和adb同⼀⽬录。
由于底层研发的习惯,我先看了看⽂件系统在Nand Flash中的分布情况:
我在Ubuntu下使⽤adb连接了G1,然后:
# cat /proc/mtd
dev:    size  erasesize  nameandroid简单教程
mtd0: 00040000 00020000 "misc"
mtd1: 00500000 00020000 "recovery"
mtd2: 00280000 00020000 "boot"
mtd3: 05a00000 00020000 "system"
mtd4: 01e00000 00020000 "cache"
mtd5: 059c0000 00020000 "userdata"
mtd6: 10000000 00020000 "msm_nand"
从中可知:
misc            :0.25MB:是存放开机画⾯的分区,也就是开机时看到的那个⽩⾊的⼤G1字样(默认为⽩⾊"T-mobile G1")
recovery        :5MB:是G1的恢复模式镜像区(即开机按Home+End进⼊的界⾯)
Boot            :2.5MB:Linux操作系统内核和ramdisk镜像⼀起打包后存放的分区
system            :90MB:是system.img存放的分区,启动后此镜像挂载在根⽬录下的system⽂件夹中。
cache            :30MB:是缓存临时⽂件夹,挂载为/cache⽬录,据说是除了T-mobile的OTA更新外,别⽆⽤处。
userdata        :89.75MB:⽤户安装的软件以及各种数据,挂载为/data⽬录
msm_nand    :256MB:代表整个Nand Flash,不是⼀个分区。但是所有的分区加起来才217.5MB,⼩于256MB,说明还有剩余的flash空间。(此分区在⼤部分机上不存在,不影响使⽤)
G1所使⽤的Nand Flash是K5E2G1GACM,但是在三星的⽹上居然没到Datasheet,⽹上也没有google到!
模拟器中的输出是这样的:
# cat /proc/mtd
dev:    size  erasesize  name
mtd0: 04000000 00020000 "system"
mtd1: 04000000 00020000 "userdata"
mtd2: 06100000 00020000 "cache"
补⿊⾊台版的G2分区:
# cat /proc/mtd
dev:    size  erasesize  name
mtd0: 00040000 00020000 "misc"
mtd1: 00500000 00020000 "recovery"
mtd2: 00280000 00020000 "boot"
mtd3: 05a00000 00020000 "system"
mtd4: 05000000 00020000 "cache"
mtd5: 127c0000 00020000 "userdata"
可以看到 cache 和 userdata变⼤了,因为 G2的ROM 为512MB的。
从上⾯的数据我么可以发现⼀个现象:⽆论是G1还是G2,所有的分区加起来都⽐整个Nand flash⼩38.
5MB,这些空间应该另有他⽤,其中有⼀个⽤处就是存放bootloader。但是从以往的经验来看,bootloader不可能有38.5MB,肯定另有⽤处,可能⽤于虚拟内存(猜测)
///
⼤容量ROM的Android⼿机⼀般都把ROM的⼀部分分为系统分区,其他的都虚拟为内置SD卡,⽐如三星和华为的⼿机都是这样,标称的⼤ROM实际上⼤部分都虚拟成了内置SD卡。
所以,由于是分区时设置的容量,ROM是可以调整的,⽐如⼀块硬盘上,c盘和d盘、e盘的⼤⼩都是可以调整的,区别是安卓系统⽤户⾃⼰很难调整。
先看安卓Android系统的分区,安卓系统⼀般把ROM芯⽚分成7个区,如果再加上内置SD卡这个分区,就是8个:
hboot分区———-负责启动。
radio分区———-负责驱动(通讯基带)。
recovery分区——-负责恢复。
boot分区———–系统内核。
system分区———系统⽂件。
cache分区———-系统缓存。
userdata分区——-⽤户数据。
⼤家看到没有,前6个区的容量在系统信息⾥⾯是看不出来的,我们看到的ROM总容量,其实就是第7个区userdate区的⼤⼩,这个区主要装⼀些软件,是⽤户可以使⽤的分区。这个分区的⼤⼩直接影响到安装软件的数量。也就是说userdate区就是我们常说的“可⽤ROM”。
在安卓⾥,虽然软件可以安装到卡中,但是⼀些系统软件最好还是安装到userdata分区,否则会出现加载的⼀些⼩问题,⽐如使⽤的桌⾯软件和⼀些在桌⾯上显⽰插件的软件。并且就算你把软件都装到卡⾥,userdata分区还是会不断减⼩。就像在Windows⾥,就算你把软件装到D盘,仍然会在c盘⽣成⼀些系统⽂件,占掉c盘空间⼀样。
///
“system”区保存了android系统⽬录的所有数据,机器启动后的全部系统主要都在这⾥(在系统启动后会挂载到system/⽬录)。
“userdata”区将保存了android数据⽬录中的所有数据(在系统启动后会挂载到data/⽬录,⾥⾯是会有很多应⽤数据以及⽤户的preference之类的配置数据,我们在⼿机设置⾥看到的⼿机内存空间就是指这⾥)。
“userdata2”区是⽤户可⾃⼰⽀配的,可以存放⾃⼰喜欢的图⽚、⾳乐等(在系统启动后会挂载到data/HWUserData/⽬录,我们在⼿机设置⾥看到的内部SD卡空间就是指这⾥)(这2.2版的没有,和userdata合并了)。
“cache”区是缓存空间,程序或系统⽤到的缓存数据和指令就存放在这,cpu在调⽤和执⾏指令时会优先调⽤这⾥的。(在系统启动后会挂载到cache/⽬录)。
“boot”区是存放引导⼿机启动时的必要的系统,包含⼀些硬件底层的驱动,主要分为ramdisk和linux内核两⼤块。(在系统启动后挂载到根⽬录下)。
“recovery”区与boot的相似,但是恢复时启动的系统,⽐boot多了些恢复⽤的程序与资源。(只在进⼊recovery模式才挂载)
“splash”区是开机第⼀个画⾯,开机启动时⽤到的。(不知挂载到哪了?)
“misc”区是有Bootloader Control Block (BCB) ,⽤于存放recovery引导信息。(猜是在进⼊recovery
模式才挂载)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。