1. 首先來看下Android系統的分區:


安卓系統一般把rom芯片分成7個區,如果再加上內置sd卡這個分區,就是8個:
- hboot分區----------負責啟動。
- radio分區----------負責驅動。
- recovery分區-------負責恢復。
- boot分區-----------系統內核。
- system分區---------系統文件。
- cache分區----------系統緩存。
- userdata分區-------用戶數據。
就是第7個區userdate區的大小,這個區主要裝一些軟件,是用戶可以使用的分區。這個分區的大小直接影響到安裝軟件的數量。也就是說userdate區就是我們常說的“可用rom”在安卓里,雖然軟件可以安裝到卡中,但是一些系統軟件最好還是安裝到userdata分區,否則會出現加載的一些小問題,比如使用的桌面軟件和一些在桌面上顯示插件的軟件。並且就算你把軟件都裝到卡里,userdata分區還是會不斷減小。就像在電腦里,就算你把軟件裝到D盤,仍然會在c盤生成一些系統文件,占掉c盤空間一樣。
2. BootLoader
簡單地說,BootLoader就是在操作系統內核運行之前運行的一段小程序。通過這段小程序,我們可以初始化硬件設備、建立內存空間映射圖,從而將系統的軟硬件環境帶到一個合適狀態,以便為最終調用操作系統內核准備好正確的環境。在嵌入式系統中,通常並沒有像BIOS那樣的固件程序(注,有的嵌入式CPU也會內嵌一段短小的啟動程序),因此整個系統的加載啟動任務就完全由BootLoader來完成。比如在一個基於ARM7TDMI core的嵌入式系統中,系統在上電或復位時通常都從地址0x00000000處開始執行,而在這個地址處安排的通常就是系統的BootLoader程序。
3. BootLoader 和 FastBoot
從字面意思來講,Fastboot是一個英文單詞,翻譯成中文的意思是『快速啟動』。Fastboot 可以說是一個通信協議,電腦可以通過這個通信協議,直接向手機系統不同分區中寫入文件(.img 文件)。
fastboot 主要是用來與bootloader的USB通訊的PC命令行工具。他一般主要也用來向bootloader傳送刷機文件進行文件分區重燒。 因此在使用時,必須有一個PC機並且USB線要始終聯着。所以這種方式稱為線刷。 用fastboot需要bootloader 支持,所以不是每一家公司產品都支的這個功能的
通常大家所討論的Fastboot,通常都是說安卓手機的Fastboot模式。在安卓手機中fastboot是一種比recovery更底層的刷機模式。簡單來說,就是使用USB數據線,連接電腦的一種刷機模式。這種刷機方式,我們又通常稱為“線刷”刷機。另外安卓手機還有一種刷機方式,叫做“卡刷”,兩者區別如下。
線刷: 直接想手機硬盤寫入*.img 文件,我個人覺得這種方法比較快捷,而且省事。但是必須借助電腦和數據線。
卡刷:就是利用recovery的從SD卡中更新系統的這個功能,如果你想刷第三方Rom,必須刷入個第三方recovery,只有fastboot模式才能刷recovery.img。卡刷有個限制,必須要把想要更新的ROM(Android系統)拷貝到SD卡上。如果手機已經是磚了。那只能用線刷了。
fastboot(bootloader)模式怎么進入?
- 大多數安卓手機,都可以在關機狀態下,然后同時按住【電源鍵】+【音量+】鍵,大約2-3s后,就可以進入Fastboot模式。
- 作為開發者在開機狀態下可以用下面的方式進入:
adb reboot bootloader
然后就可以執行下面的fastboot命名了:
fastboot flashing unlock #6.0以上設備 設備必須解鎖,開始刷機(這個不同的手機廠商不同) fastboot erase {partition} # 擦除分區 fastboot erase frp # 擦除 frp 分區,frp 即 Factory Reset Protection,用於防止用戶信息在手機丟失后外泄 fastboot flash boot boot.img # 刷入 boot 分區 fastboot flash system system.img # 刷入 system 分區 fastboot flash recovery recovery.img # 刷入 recovery 分區 fastboot flashall #燒寫所有分區,注意:此命令會在當前目錄中查找所有img文件,將這些img文件燒寫到所有對應的分區中,並重新啟動手機。 fastboot format data # 格式化 data 分區 fastboot flashing lock # 設備上鎖,刷機完畢 fastboot continue # 自動重啟設備 fastboot reboot# 重啟手機 fastboot reboot-bootloader# 重啟到bootloader 刷機用 fastboot devices ## 發現手機,顯示當前哪些手機通過fastboot連接了
一次燒寫boot,system,recovery分區
創建包含boot.img,system.img,recovery.img文件的zip包。
執行:fastboot update {*.zip}
注:華為手機解鎖命令:
fastboot oem unlock 解鎖碼
4. Recovery 模式的簡介
Recovery 更類似於一個小型的管理系統。只不過功能簡單,所做的管理有限。在recovery模式下,會加載了部分文件系統,所以才可以讀sdcard中的update.zip進行刷機,當然,也可以清除cache和用戶數據。
該模式可根據用戶的需要進行修改,因此有官方recovery模式以及第三方recovery模式。第三方recovery模式可以識別第三方rom包,因此可以用來刷機。而官方recovery一般不能識別第三方zip文件。好用的第三方RE:TWRP 和 CWM
Recovery刷機包是稱為Google Update 格式。在用Recovery恢復時,刷機包通常放在SD卡里,所以這里刷機一般稱為卡刷。
5. 刷入RE:
- 首先進入 bootloader(fastboot)模式
fastboot flash recovery recovery.img
from:https://www.jianshu.com/p/d960a6f517d8