Android分區介紹及fastboot刷機教程

來源:互聯網
上載者:User

見好多論壇朋友對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  name
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模式才掛載)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.