複製鏈接
請複製以下鏈接發送給好友

fastboot

鎖定
Fastboot,英語翻譯意思是快速啓動。Fastboot是Android SDK Platform-Tools [1]  中的一個命令行工具。Fastboot主要用於在電腦上通過USB數據線對Android設備刷入二進制鏡像文件(.img)。
在安卓手機中Fastboot是一種比recovery更底層的刷機模式(俗稱快速引導模式),Fastboot除了用於刷機還可以對Android設備中的分區執行鎖定/解鎖、擦除/格式化、調試,準確來説Fastboot屬於固件通信協議
Android設備運行的Android操作系統有損壞、運行岀現問題,或在Android設備上刷入過自定義的操作系統並希望將Android設備恢復到出廠狀態,可以通過Fastboot刷入原廠系統的二進制鏡像文件(.img)來讓Android設備恢復正常。
軟件名稱
Fastboot
最近更新時間
2022年8月
軟件語言
英語
開發商
Google

fastbootfastboot工具使用

在電腦上下載Android SDK Platform-Tools [1]  壓縮包然後解壓,將解壓得到的fastboot文件所在目錄路徑添加到電腦的Path環境變量中或者在命令行窗口中進入到fastboot.exe所在目錄,然後就可以在命令行窗口輸入fastboot命令來執行使用。
  • Windows10系統添加fastboot.exe路徑到用户變量Path步驟:
在電腦桌面右擊我的電腦 → 屬性 → 高級系統設置 → 環境變量 → 鼠標雙擊用户變量中的Path → 新建,把fastboot.exe所在的文件夾路徑輸入,然後確定。假定fastboot.exe在C:\Users\1\Downloads\platform-tools_r33.0.1-windows\platform-tools\fastboot.exe,填入:C:\Users\1\Downloads\platform-tools_r33.0.1-windows\platform-tools\
注意:添加fastboot.exe路徑到用户變量Path後,在下次打開命令行窗口生效,直到從用户變量Path中刪除fastboot.exe路徑。
  • 在命令行窗口中進入到fastboot.exe所在目錄步驟:
假定fastboot.exe在C:\Users\1\Downloads\platform-tools_r33.0.1-windows\platform-tools\fastboot.exe
在命令行窗口執行如下命令進入到fastboot所在目錄中,然後就可以使用fastboot命令了。
cd C:\Users\1\Downloads\platform-tools_r33.0.1-windows\platform-tools\
拖拽目標文件夾到命令行窗口釋放會自動填入目標文件夾的完整路徑。
另一種方法是在電腦的文件資源管理器中進入到fastboot.exe所在文件夾,然後在文件資源管理器的地址欄中輸入cmd,然後按Enter鍵。
注意:在命令行窗口中進入到fastboot.exe所在目錄來使用fastboot工具,這是臨時的,在下次打開命令行窗口需要再次進入fastboot.exe所在目錄才能使用fastboot命令。
安裝Android USB驅動程序
還需要在電腦上安裝適合手機的Android USB驅動程序 [2]  ,電腦才能識別岀通過USB數據線與電腦連接的手機。

fastboot手機進入Fastboot模式方法

  • 使用adb 工具(Android SDK Platform-Tools包括了adb工具):
通過 USB數據線 將手機連接到電腦 。 在電腦上安裝Android USB驅動程序 [2] 
如果USB數據線連接電腦和手機後,在電腦上沒有任何反應,嘗試換一根USB數據線,儘量用手機原配的USB數據線。安裝好了Android USB驅動程序 後您應該重啓一次電腦。
在手機設置 → 關於手機 → 版本號,然後點按版本號選項 7 次,當看到“您已處於開發者模式”這條消息後,點返回鍵,在開發者選項菜單中開啓 USB 調試選項。然後在手機開機的情況下,在電腦的鍵盤上按住windows鍵不要放開,然後按一次字母R鍵,然後放開windows鍵,在彈出的運行框中輸入cmd,按Enter鍵,在彈出的命令行窗口輸入:
adb reboot bootloader
然後按Enter鍵。
  • 使用組合鍵:
在手機關機狀態,同時按住 音量調低鍵 、電源鍵 不要放開。如果您手機有語音助手的喚醒鍵、Home主屏之類各種各樣的額外物理按鍵,您應該在按住 音量調低鍵 、電源鍵 的同時加上它們。

fastbootFastboot命令介紹

用法: fastboot [ <選項> ] <命令>
[ ]括起來表示這個是可選的
< >括起來表示這個是必須的
[|]表示二選一或多選一。如:[flashing unlonk|oem unlonk] ***中的flashing unlonk和oem unlonk這兩個選其中一個。
實際用法:
fastboot flashing unlonk ***
fastboot oem unlonk ***

fastboot刷寫

update <文件名> 從官方update.zip升級系統。
flash <分區名> <文件名> 將鏡像文件刷入指定分區。

fastboot基本

devices [-l] 列出所有已經進入fastboot模式並通過USB數據線與電腦連接的設備(-l:帶有設備路徑)。
set_active <slot> 將指定的 A/B 啓動槽設置為 active。下次嘗試啓動時,system 將從指定的槽啓動。
對於 A/B 支持,槽是指可以單獨從中啓動的重複分區集。槽的名稱為 a、b 等,通過向分區名稱添加後綴 _a、_b 等加以區分A分區和B分區。
reboot 重啓設備。默認開機進入安卓系統。
reboot recovery 重啓進入recovery模式。
reboot bootloader 重啓進入fastboot模式。
--version 顯示fastboot版本。
--help, -h 顯示fastboot命令幫助。
getvar all 查看所有變量。
getvar <變量名> 顯示給定的引導加載程序變量(顯示一個啓動參數)。如:fastboot getvar devices-state 查看bootloader鎖狀態、fastboot getvar bootloader-version 獲取引導加載程序版本。變量包括但不限於
version、version-bootloader、version-baseband、version-cpld、version-microp、version-main、version-misc、serialno、imei、meid、product、platform、modelid、cidnum、battery-status、battery-voltage、partition-layout、security、build-mode、boot-mode、gencheckpt 。
如果變量不存在,則返回錯誤。

fastboot鎖定解鎖

getvar devices-state 查看引導加載程序鎖狀態。
flashing get_unlock_ability 檢查是否允許解鎖(1)或不允許(0)。
[flashing unlonk|oem unlonk] *** 解鎖 OEM 引導加載程序,用於刷入自定義/未簽名 ROM(非官方系統)。*** 是設備製造廠商設定的解鎖密鑰。解鎖後將允許刷寫除引導加載程序分區之外的任何分區。
[flashing lonk|oem lonk] 重新鎖定引導加載程序。
[flashing lock_critical|unlock_critical] 鎖定/解鎖“關鍵”引導加載程序分區。防止/允許 刷寫引導加載程序分區。

fastboot擦除格式化分區

erase <分區名> 擦除指定分區。
format <分區名> 格式化指定分區。

fastboot調試

boot <文件名> 發送指定的鏡像文件到手機,並接收完成後在手機中啓動。不會刷入手機,這是臨時的,手機重啓後會還原。
如:fastboot boot recovery.img
fetch <分區名> <文件名> 獲取指定分區大小和塊大小獲取每個塊的數據,然後將數據拼接在一起生成鏡像文件(.img)。

fastboot選項

-w 清空用户數據分區和緩存分區.相當於recovery中的"wipe data/factoryreset"。
-s <串口號> 指定要操作的設備的串口號(指定一個USB設備)。注意-s是小寫
-S 大小[K|M|G] 將鏡像文件分成不大於指定大小的稀疏文件。 注意-S是大寫。
-p <產品名> 指定要操作的設備的產品名.比如hero,bravo,dream...
-c <命令行> 用命令行替換系統的啓動命令行(覆蓋內核命令行)。
--force 強制執行可能不安全的刷入操作。
--verbose, -v 詳細輸出。

fastbootAndroid設備分區

Android 設備包含若干個分區,這些分區在設備啓動過程中發揮不同的作用 [4]  。Android設備分區 分有非A/B分區、A/B分區、虛擬A/B分區、動態分區。
boot分區:包含 Linux 內核和最小的根文件系統(加載到 RAM 磁盤中)。它掛載了system分區和其他分區,並啓動位於 system 分區上(運行時)。
system分區:包含Android系統的系統應用程序和庫。正常運行時,該分區以只讀方式掛載;其內容僅在 OTA 更新期間更改。
vendor分區:存儲廠商私有的可執行程序、庫、系統服務和app等。可以將此分區看做是system分區的補充,廠商定製ROM的一些功能都可以放在此分區。正常運行時,該分區以只讀方式掛載;其內容僅在 OTA 更新期間更改。
userdata分區:存儲用户的照片、影片、通迅錄、用户安裝的應用程序及保存的數據。該分區通常不會被OTA更新過程觸及。
cache分區:一些應用程序使用的臨時數據保存區域(訪問此分區需要特殊的應用程序權限),用於存儲下載的 OTA 更新軟件包。其他程序也可使用該空間,但是存儲在此分區上的文件可能會隨時消失。安裝某些 OTA 軟件包可能會導致此分區被完全擦除。cache 分區還包含 OTA 更新的更新日誌。
recovery分區:包含第二個完整的 Linux 系統,其中包括一個內核和特殊的recovery二進制可執行文件(該文件可讀取一個軟件包並使用其內容來更新其他分區)。支持A/B分區(無縫)系統更新的設備可以將recovery映像存儲在boot分區的boot映像包含的 ramdisk中(而不是單獨的映像)。
misc分區:recovery使用的微小分區,佔用存儲4KB或更多,可在應用 OTA 軟件包並重新啓動設備時,隱藏某些進程的信息。
metadata分區:當設備被加密時使用此分區。大小為 16 MB 或更多。
radio分區:這個是基帶所在的分區(無線電映像).
tos分區:存儲 Trusty 操作系統的二進制映像文件,僅在設備包含 Trusty 時使用。
hboot分區:這個是SPL所在的分區.很重要哦.也是fastboot所在的分區.刷錯就真的變磚了.
splash1分區:這個就是開機第一屏幕了.

fastboot非AB分區

在老款的沒有 A/B 分區的 Android 設備上,閃存空間通常包含以下分區 [3] 
boot
system
vendor
userdata
cache
recovery
misc

fastbootAB分區

在支持A/B分區(無縫)系統更新的設備中毎個分區使用稱為插槽 的兩組分區 (插槽 A 和插槽 B)。
擁有A/B分區的設備在開機時引導加載程序會引導啓動被標記為“可啓動”的插槽中分區儲存的二進制鏡像文件(.img)完成開機運行操作系統,在一組插槽上的系統岀現問題時可以切換啓動運行另一組插槽上的系統。 [5] 
A槽
B槽
boot_a
boot_b
dtbo_a
dtbo_b
recovery_a
recovery_b
metadata
vbmeta_a
vbmeta_b
vendor-specific
system_a
system_b
vendor_a
vendor_b
product_a
product_b
userdata

fastboot動態分區

動態分區是Android的用户空間分區系統。使用此分區系統,可以在無線下載 (OTA) 更新期間創建、銷燬分區或者調整分區大小。藉助動態分區,供應商無需擔心各個分區(例如 system、vendor 和 product)的大小。取而代之的是,設備分配一個 super 分區,其中的子分區可動態地調整大小。單個分區映像不再需要為將來的 OTA 預留空間。相反,super 中剩餘的可用空間還可用於所有動態分區。 [6-7] 
動態分區 動態分區

fastboot將鏡像文件刷入指定分區步驟

Windows系統將二進制鏡像文件(.img)刷入非A/B分區的Android設備中分區步驟:
確定手機已經解鎖引導加載程序(bootloader)。
將要刷入手機的二進制鏡像文件(.img)下載或導入電腦磁盤。
下載Android SDK Platform Tools [1]  壓縮包然後解壓,將解壓得到的fastboot.exe所在目錄路徑添加到電腦的 Path環境變量 中。
通過 USB數據線 將手機連接到電腦 。 在電腦上安裝Android USB驅動程序 [2] 
如果USB數據線連接電腦和手機後,在電腦上沒有任何反應,嘗試換一根USB數據線,儘量用手機原配的USB數據線。安裝好了Android USB驅動程序 後您應該重啓一次電腦。
使用以下方法之一以 Fastboot 模式啓動手機:
  • 使用adb 工具(Android SDK Platform-Tools包括了adb工具):
在手機設置 → 關於手機 → 版本號,然後點按版本號選項 7 次,當看到“您已處於開發者模式”這條消息後,點返回鍵,在開發者選項菜單中開啓 USB 調試選項。然後在手機開機的情況下,在電腦的鍵盤上按住windows鍵不要放開,然後按一次字母R鍵,然後放開windows鍵,在彈出的運行框中輸入cmd,按Enter鍵,在彈出的命令行窗口輸入:
adb reboot bootloader
然後按Enter鍵。
  • 使用組合鍵:
在手機關機狀態,同時按住 音量調低鍵 、電源鍵 不要放開。如果您手機有語音助手的喚醒鍵、Home主屏之類各種各樣的額外物理按鍵,您應該在按住 音量調低鍵 、電源鍵 的同時加上它們。
手機進入fastboot之後在命令行窗口輸入Fastboot刷命令,假定要刷入手機的二進制鏡像文件在C:\Users\1\Downloads\system.img,要刷入手機system分區,在命令行窗口輸入:
fastboot flash system C:\Users\1\Downloads\system.img
輸入之後按Enter鍵。這時不能撥岀數據線,要等待命令行窗口執行結束,如果刷入成功命令行窗口會輸岀顯示OKAY。
要離開Fastboot模式重啓手機,在命令行窗口輸入:
fastboot reboot
然後按Enter鍵。
注:用鼠標拖拽目標文件到命令行窗口釋放會自動填入目標文件的完整路徑。如果鏡像文件的絕對路徑中的文件夾名或文件名有空格符要用""將絕對路徑從頭到尾括起來。如:fastboot flash system "C:\Users\1\Downloads\system.img"

fastboot刷寫AB分區

刷寫A/B分區命令:
fastboot flash sytem_a C:\Users\1\Downloads\system.img
注:boot_a是要刷寫的分區,通過向分區名稱添加後綴 _a、_b來加以區分A分區和B分區。C:\Users\1\Downloads\boot.img是要刷入的鏡像文件的絕對路徑。拖拽目標文件到命令行窗口釋放會自動填入目標文件的完整路徑。

fastboot刷寫動態分區中的子分區

引導加載程序(或任何非用户空間刷寫工具)無法理解識別動態分區,因此無法對其進行刷寫。 為解決此問題,設備必須使用 fastboot 協議的用户空間實現,稱為 fastbootd。 [9] 
使用以下方法之一將 Fastboot 移至用户空間。然後刷寫super動態分區中的子分區:
  • 在手機開機狀態,通過USB數據線將手機連接到電腦,在命令行窗口輸入:
adb reboot fastboot
然後按Enter鍵。
  • 手機進入fastboot模式,通過USB數據線將手機連接到電腦 ,然後在電腦命令行窗口輸入:
fastboot reboot fastboot
然後按Enter鍵。
刷寫super動態分區中的子分區命令:
fastboot flash system_a C:\Users\1\Downloads\system.img
注:system_a是要刷寫的分區,通過向分區名稱添加後綴 _a、_b來加以區分A分區和B分區。C:\Users\1\Downloads\system.img是要刷入的鏡像文件的絕對路徑。拖拽目標文件到命令行窗口釋放會自動填入目標文件的完整路徑。
對於改裝的動態分區設備,fastboot 工具(和引導加載程序)支持強制模式,以便在引導加載程序模式下直接刷寫動態分區。例如,如果 system 是改裝設備上的動態分區,那麼,使用 fastboot --force flash system 命令可讓引導加載程序(而不是 fastbootd)刷寫該分區。
注:強制模式旨在靈活進行出廠刷寫。不建議開發者使用此模式。

fastboot注意

如果使用 adb 工具進入fastboot模式,刷完開機後記得關掉開發者選項。如果要刷寫非手機原廠的鏡像文件需要先解除bootloader(引導加載程序)鎖。解除bootloader鎖會降低設備的安全性
如果adb命令提示沒有找到設備或無法連接設備,在電腦命令行窗口中嘗試執行adb kill-server關閉adb服務,然後執行adb start-server啓動adb服務。

fastbooteFuse熔斷技術

在計算機中,eFuse(電子保險絲)是放入計算機芯片中的微型保險絲。這項技術由IBM發明,用於對芯片進行動態實時重新編程。抽象地説,計算機邏輯通常被“蝕刻”或“硬連線”到芯片上,並且在芯片完成製造後無法更改。通過使用一組 eFuse,芯片製造商可以允許芯片上的電路在其運行時發生變化。
eFuse 最初由 IBM 銷售,作為提供片內性能調整的一種方式。如果某些子系統出現故障,或者響應時間過長,或者耗電量過多,芯片可以通過熔斷 eFUSE 立即改變其行為。
eFuse 可能更常用作一次性可編程 ROM。這包括將唯一信息寫入 CPU、或在遊戲機和其他受限硬件的情況下,通過永久記錄更新版本來防止降級。Xbox 360Nintendo Switch都以這種方式使用電子保險絲而聞名。
eFuse熔斷技術

fastboot警告

一些手機使用一次性電子保險絲來永久記住手機引導加載程序(bootloader)的解鎖狀態,這些手機一旦解鎖引導加載程序,芯片中的微型電子保險絲就會永久性物理熔斷來記住引導加載程序的解鎖狀態,即使刷入手機的原廠固件也不會恢愎。
解鎖引導加載程序後的手機通常會失去NFC信用卡/銀行卡Pay、NFC門禁卡/交通卡指紋支付、OTA 升級,失去在保修期內的保修資格!

fastboot解鎖引導加載程序

只有在引導加載程序允許的情況下,才可以刷寫自定義系統,而引導加載程序默認處於鎖定狀態。解鎖引導加載程序會導致系統出於保護隱私方面的考慮而刪除用户數據。解鎖之後,系統會清空設備上的所有數據,即用户安裝的應用程序中的個人數據以及SDCard中和可通過 USB 訪問的共享數據,包括電話簿、照片、錄音、視頻等等。請務必先備份設備上的所有重要文件,然後再嘗試解鎖引導加載程序。 [8] 
解鎖引導加載程序步驟:
在手機設置 → 關於手機 → 版本號,然後點按版本號選項 7 次,當看到“您已處於開發者模式”這條消息後,點返回鍵,在開發者選項菜單中啓用 OEM 解鎖和 USB 調試。
手機進入fastboot模式,通過USB數據線將手機連接到電腦,然後使用 fastboot 命令解鎖。
解除引導加載程序鎖
對於新款設備(2015 年及之後發佈的設備):fastboot flashing unlock ***
對於老款設備(2014 年及之前發佈的設備):fastboot oem unlock ***
注:*** 是設備製造廠商設定的解鎖密鑰。
重新鎖定引導加載程序:
對於新款設備(2015 年及之後發佈的設備):fastboot flashing lock
對於老款設備(2014 年及之前發佈的設備):fastboot oem lock
參考資料