前言
ADB與FASTBOOT的使用方法是刷機(jī)的基礎(chǔ),靈活運(yùn)用這些指令可以在關(guān)鍵的時(shí)候救回你的設(shè)備。
什么是adb?fastboot、recovery,這些模式都是什么意思?
- ADB:全稱“Android Debug Bridge”安卓調(diào)試橋,它的權(quán)限等級(jí)在用戶之上,ROOT之下,你可以使用它進(jìn)行調(diào)試、修改、給予權(quán)限等普通用戶無(wú)法實(shí)現(xiàn)的功能,要想使用此功能,你需要在手機(jī)設(shè)備中啟動(dòng)“USB調(diào)試“功能,并連接電腦設(shè)備中使用ADB工具進(jìn)行調(diào)試。
- FastBoot:這個(gè)模式就是我們常說(shuō)的兔子模式,它平時(shí)主要用于設(shè)備的系統(tǒng)維護(hù)與更改,通過(guò)與電腦設(shè)備的連接,執(zhí)行各種系統(tǒng)操作,例如:線刷系統(tǒng)、修改分區(qū)、解鎖BootLoader等。
- Recovery:這個(gè)模式主要用于設(shè)備的故障排除與修復(fù),該模式提供了一系列功能,例如:清除緩存分區(qū)、格式化、備份與恢復(fù)、卡刷系統(tǒng)、修改文件等。
- ADB Sideload:這個(gè)模式需要通過(guò)Recovery啟用,在此模式中,你可以通過(guò)電腦中的“adb sideload”指令將卡刷包推送進(jìn)手機(jī)設(shè)備進(jìn)行刷寫。
- FastBootD:這個(gè)模式是用來(lái)刷寫fastboot無(wú)法刷寫的分區(qū),例如super分區(qū)下的幾個(gè)邏輯分區(qū)。此模式是recovery中的一項(xiàng)功能,當(dāng)你在刷寫recovery時(shí)也在刷寫fastbootd。
獲取ADB
獲取ADB工具的渠道有很多,例如官方的谷歌文檔,或者[https://cloud.189.cn/t/FZveamI77ZRr (opens in a new tab) 訪問(wèn)碼:2cvm]中獲取。
安裝ADB
ADB是無(wú)法直接運(yùn)行的,我們需要使用終端調(diào)用,安裝方法一共有三種,分別是:系統(tǒng)目錄法、環(huán)境變量法、一鍵安裝法。
系統(tǒng)目錄法:
- 將ADB工具包解壓至桌面。
- 打開工具包,文件夾內(nèi)會(huì)有四種文件,兩個(gè)終端文件、兩個(gè)dll文件。
- 依次打開系統(tǒng)盤(默認(rèn)c盤)、Windows,將工具包內(nèi)四個(gè)文件放置“Windows”目錄下。
環(huán)境變量法
- 將ADB工具包解壓至你熟知的路徑保存起來(lái)。
- 右鍵“此電腦”依次點(diǎn)擊“屬性”、“高級(jí)系統(tǒng)設(shè)置”、“環(huán)境變量”。
- 在系統(tǒng)變量下雙擊“Path”編輯環(huán)境變量。
- 新建環(huán)境變量,填入工具箱保存的路徑,例如:'D:\ADB'。
一鍵安裝法:
- 解壓“15 Seconds ADB installer”。
- 運(yùn)行程序,根據(jù)工具提醒輸入 Y或N。
- 第一個(gè)提醒是 是否安裝 ADB 和 Fastboot;按Y同意,按N拒絕。
- 第二個(gè)提醒是 是否安裝 ADB 系統(tǒng)變量;按Y同意,按N拒絕。
- 第三個(gè)提醒是 “是否安裝驅(qū)動(dòng)程序”;按Y同意,按N拒絕。
使用方法
ADB指令一共分為兩種,分別是:“ADB指令”、“FastBoot指令”,ADB指令適用于手機(jī)開機(jī)狀態(tài)與Recovery模式、FastBoot指令適用于FastBoot與FastBootD模式。
ADB指令使用準(zhǔn)備
要想使用ADB指令,你需要首先在手機(jī)設(shè)備中打開“USB調(diào)試”功能,我們依次打開:設(shè)置、更多設(shè)置、開發(fā)者選項(xiàng)、USB調(diào)試,將“USB調(diào)試功能打開”。然后電腦打開“CMD”或”powershell”,輸入指令:“adb version”,若終端成功顯示ADB工具版本,則為安裝成功,可以繼續(xù)使用,若顯示無(wú)法處理,則為安裝失敗。
第一次調(diào)用ADB指令時(shí),手機(jī)會(huì)彈出是否允許USB調(diào)試,點(diǎn)擊允許。
ADB指令使用
ADB指令的例子是:“adb空格執(zhí)行命令”也就是“adb devices”,其中“adb”是運(yùn)行指令,如果是fastboot指令就把它更換成fastboot即可;“devices”則是執(zhí)行指令,運(yùn)行指令與執(zhí)行指令中間必須存在空格,當(dāng)執(zhí)行指令后方存在變量時(shí),也需要相距一個(gè)空格。
- “adb devices”
- 此指令可檢測(cè)電腦與手機(jī)的連接,當(dāng)手機(jī)處于fastboot模式時(shí),需使用“fastboot devices”。
- “adb reboot”
- 此指令中執(zhí)行指令后方可添加變量,例如:”adb reboot recovery“則是重啟至recovery;”adb reboot bootloader”“則是重啟至fastboot;adb reboot edl則是重啟至9008模式,這個(gè)模式只有解鎖BootLoader時(shí)才可以通過(guò)指令進(jìn)入。
- “adb install 路徑”
- 此指令可安裝電腦中的apk文件,例如:“adb install D:\Download\bilibili.apk”。
- “adb push 路徑”
- 此指令可以將電腦文件推送到手機(jī)里,例如:“adb push D:\學(xué)習(xí)文件”。
- “adb pull 手機(jī)路徑 電腦路徑”
- 此指令可將手機(jī)文件拉取到電腦里,例如:“adb pull /sdcard/學(xué)習(xí)文件 D:\”。
- “adb uninstall 包名”
- 此指令可卸載手機(jī)中的軟件,例如:“adb uninstall com.coolapk.market” 卸載酷安。
- “adb sideload 文件”
- 此指令用于adb sideload模式里推送刷機(jī)包。
FastBoot指令使用準(zhǔn)備
要想使用fastboot指令,我們需要進(jìn)入fastboot模式,我們之前進(jìn)入fastboot模式都是通過(guò)鍵位引導(dǎo)進(jìn)入,那么在本章學(xué)習(xí)了adb指令以后,我們可以通過(guò)adb指令更快捷方便的進(jìn)入fastboot模式,在adb命令臺(tái)中使用重啟指令“adb reboot bootloader”即可進(jìn)入fastboot模式。
FastBoot指令使用
FastBoot指令的例子是:“fastboot空格執(zhí)行命令”也就是“fastboot devices”,其中“fastboot”是運(yùn)行指令,如果是adb指令就把它更換成adb即可;“devices”則是執(zhí)行指令,運(yùn)行指令與執(zhí)行指令中間必須存在空格,當(dāng)執(zhí)行指令后方存在變量時(shí),也需要相距一個(gè)空格。
- “fastboot devices”
- 此指令可檢測(cè)電腦與手機(jī)的連接,當(dāng)手機(jī)處于開機(jī)或recovery模式時(shí),需使用“adb devices”。
- “fastboot -w”
- 此指令將清空設(shè)備數(shù)據(jù)分區(qū),這會(huì)導(dǎo)致數(shù)據(jù)丟失,酌情使用。
- “fastboot flash (分區(qū)名) (鏡像路徑)”
- 此指令會(huì)將指定鏡像刷入制定分區(qū),例如:“fastboot flash boot D:\修補(bǔ)文件\boot.img”。
- “fastboot boot (鏡像路徑)”
- 此指令僅限高通機(jī)型使用,它會(huì)臨時(shí)啟動(dòng)指定鏡像,無(wú)論設(shè)備開機(jī)是否成功,重啟一次即可恢復(fù)正常,它不會(huì)實(shí)際覆蓋分區(qū),例如:“fastboot boot D:\TWRP\recovery.img”。
- “fastboot reboot”
- 此指令中執(zhí)行指令后方可添加變量,例如:“fastboot reboot recovery”則是重啟至recovery;“fastboot reboot bootloader”則是重啟至fastboot;”fastboot reboot fastboot“則是重啟至fastbootd模式。
分區(qū)作用
在刷機(jī)時(shí),總會(huì)看到各種分區(qū),這些“boot”、“recovery”,這些鏡像分區(qū)都是干什么的?
- system 系統(tǒng)分區(qū)
- system分區(qū)存儲(chǔ)了手機(jī)的操作系統(tǒng)與系統(tǒng)文件,如果損壞,開機(jī)會(huì)卡在fastboot模式中,無(wú)法正常啟動(dòng)。
- recovery 恢復(fù)分區(qū)
- recovery恢復(fù)分區(qū)通常包含一個(gè)小型Linux系統(tǒng),用于安裝和升級(jí)系統(tǒng)軟件的工具和程序。
- data 數(shù)據(jù)分區(qū)
- data分區(qū)儲(chǔ)存了系統(tǒng)數(shù)據(jù)、應(yīng)用數(shù)據(jù)、用戶數(shù)據(jù),如果這個(gè)分區(qū)損壞會(huì)導(dǎo)致數(shù)據(jù)丟失。
- cache 緩存分區(qū)
- cache分區(qū)儲(chǔ)存了系統(tǒng)緩存,這個(gè)分區(qū)清除不會(huì)出現(xiàn)設(shè)備異常。
- boot 引導(dǎo)分區(qū)
- boot分區(qū)用于存儲(chǔ)設(shè)備引導(dǎo)程序和內(nèi)核映像文件,以幫助設(shè)備啟動(dòng)和加載操作系統(tǒng)。如果損壞,開機(jī)會(huì)卡在fastboot模式中,無(wú)法正常啟動(dòng)。
- persist 傳感分區(qū)
- 這個(gè)分區(qū)用于存儲(chǔ)持久化數(shù)據(jù),也可能會(huì)包含傳感器文件、指紋文件、安全證書等,通常這個(gè)分區(qū)不會(huì)被刷寫,如果這個(gè)分區(qū)出現(xiàn)異常,可能會(huì)導(dǎo)致傳感器失效、tee損壞。
小知識(shí):TEE是指可信執(zhí)行環(huán)境(Trusted Execution Environment),它是一個(gè)安全的執(zhí)行環(huán)境,用于保護(hù)設(shè)備的敏感數(shù)據(jù)和功能,例如指紋識(shí)別、加密和電子支付等。當(dāng)TEE受損,設(shè)備敏感內(nèi)容可能會(huì)受到威脅,在部分軟件中可能會(huì)導(dǎo)致無(wú)法使用安全功能。
- modem 基帶分區(qū)
- modem分區(qū)存儲(chǔ)了與手機(jī)通信相關(guān)的數(shù)據(jù)和程序,刪除或修改'Modem'分區(qū)中的數(shù)據(jù),可能會(huì)導(dǎo)致手機(jī)通信功能受到影響或無(wú)法正常工作。
- cust 內(nèi)置分區(qū)
- cust分區(qū)存儲(chǔ)了廠商內(nèi)置應(yīng)用程序、主題、字體、聲音、壁紙等資源。
- vbmeta 校驗(yàn)分區(qū)
- vbmeta分區(qū)用于存儲(chǔ)驗(yàn)證引導(dǎo),其它vbmeta_xxx分區(qū)作用相同,可以通過(guò)關(guān)閉avb來(lái)停用分區(qū)校驗(yàn)。
小知識(shí):將vbmeta分區(qū)提取出來(lái),手機(jī)進(jìn)入fastboot連接電腦使用指令“fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img路徑”即可關(guān)閉avb校驗(yàn)。
- logo/splash 開機(jī)動(dòng)畫分區(qū)
- logo/splash分區(qū)用于存儲(chǔ)開機(jī)第一屏與fastboot圖片,如果此分區(qū)損壞可能會(huì)導(dǎo)致無(wú)法開機(jī)。
- vendor 定制分區(qū)
- 可以將此分區(qū)看作為system分區(qū)的補(bǔ)充,廠商定制內(nèi)容可以放在此分區(qū)。
- product 特定分區(qū)
- 與特定產(chǎn)品有關(guān)的模塊,包括對(duì)android系統(tǒng)的定制化。
- super 動(dòng)態(tài)分區(qū)
- 在傳統(tǒng)的分區(qū)架構(gòu)中,安卓系統(tǒng)通常包含多個(gè)獨(dú)立的分區(qū),例如系統(tǒng)分區(qū)、數(shù)據(jù)分區(qū)、緩存分區(qū)、boot分區(qū)、recovery分區(qū)、modem分區(qū)等。每個(gè)分區(qū)都有自己的大小和文件系統(tǒng)類型,需要單獨(dú)進(jìn)行管理和維護(hù)。而在Super Partition中,所有的系統(tǒng)分區(qū)都被合并為一個(gè)大的分區(qū),稱為Super分區(qū)。
分區(qū)架構(gòu)
了解好這些常見分區(qū)以后,我們繼續(xù)了解分區(qū)架構(gòu),你應(yīng)該聽說(shuō)過(guò)什么“a only”、“動(dòng)態(tài)分區(qū)”、“ab”、“vab”這些詞語(yǔ),那分區(qū)架構(gòu)是什么意思呢?
A Only
A Only 分區(qū)方案是 Android 系統(tǒng)中最基本和最簡(jiǎn)單的分區(qū)方案之一。在 A Only 分區(qū)方案中,設(shè)備只有一個(gè)系統(tǒng)分區(qū),即 /system 分區(qū)。這個(gè)分區(qū)包含了操作系統(tǒng)的核心組件和應(yīng)用程序,以及一些其他的系統(tǒng)文件。此外,boot 分區(qū)包含了引導(dǎo)加載程序,vendor 分區(qū)包含了供應(yīng)商特定文件,userdata 分區(qū)包含了用戶數(shù)據(jù)。
Dynamic Partition
Dynamic Partition 分區(qū)方案是將系統(tǒng)分區(qū)劃分為更多的子分區(qū),如 system、vendor、product、odm、oem 等子分區(qū),每個(gè)子分區(qū)都可以單獨(dú)進(jìn)行更新和管理,而不會(huì)影響其他子分區(qū)。這種分區(qū)方案可以在不同的設(shè)備上進(jìn)行定制,以滿足不同的需求。
Super Partition
Super Partition 分區(qū)方案是將設(shè)備的存儲(chǔ)空間劃分為多個(gè)物理分區(qū),并將這些分區(qū)合并為一個(gè)邏輯分區(qū)。這種分區(qū)方案可以提高設(shè)備的性能和可靠性,同時(shí)還可以提供更靈活的系統(tǒng)更新和管理。Super Partition 可以自動(dòng)調(diào)整分區(qū)大小,以適應(yīng)不同的設(shè)備和需求。
A/B
在 A/B 分區(qū)方案中,設(shè)備會(huì)將部分分區(qū)劃為兩個(gè),如 /system_a 和 /system_b。這兩個(gè)分區(qū)都包含了操作系統(tǒng)的核心組件和應(yīng)用程序,以及一些其他的系統(tǒng)文件。在任何時(shí)候,只有一個(gè)分區(qū)是激活的,即當(dāng)前正在運(yùn)行的系統(tǒng)映像所在的分區(qū)。當(dāng)進(jìn)行系統(tǒng)更新時(shí),新的系統(tǒng)映像會(huì)被寫入未激活的分區(qū),更新完成后系統(tǒng)會(huì)在下一次重啟時(shí)自動(dòng)切換到新的系統(tǒng)映像。
vA/B
vA/B 分區(qū)方案是在 A/B 分區(qū)方案的基礎(chǔ)上進(jìn)行的改進(jìn)。vA/B 分區(qū)方案是一種基于A/B分區(qū)技術(shù)的虛擬分區(qū),即設(shè)備會(huì)存在兩個(gè)分區(qū),在任何時(shí)候,只有一個(gè)分區(qū)激活,而另一個(gè)分區(qū)是0kb無(wú)容量的,詳細(xì)參考支線vol.5。vA/B 分區(qū)方案可以提供更好的系統(tǒng)更新體驗(yàn)和更高的系統(tǒng)穩(wěn)定性。
它們運(yùn)用在什么機(jī)型?
- 小米9及舊機(jī)型運(yùn)用“A Only+Dynamic Partition”架構(gòu)
- 小米10運(yùn)用“A Only+Super Partition”架構(gòu)
- 小米11及更新機(jī)型“vA/B+Super Partition”架構(gòu)
無(wú)論何時(shí),請(qǐng)保管數(shù)據(jù),請(qǐng)開始下一階段的學(xué)習(xí)。
問(wèn)題
- 電腦設(shè)備檢測(cè)不到手機(jī)設(shè)備
- 在鏈接情況下,在電腦中鼠標(biāo)右鍵此電腦、管理、設(shè)備管理,查看設(shè)備連接狀態(tài)。若存在Android但有黃色嘆號(hào),證明驅(qū)動(dòng)未安裝,若無(wú)手機(jī)設(shè)備存在,請(qǐng)更換數(shù)據(jù)線或USB端口。
結(jié)尾
本分段制作人員:
策劃:星隨夢(mèng)能
技術(shù):文鴦、東方慫天
文稿:文鴦
|