原文鏈接(帶圖片):https://note.youdao.com/s/E41q03mr
刷入第三方rec
以前直接將TWRP刷入recovery分區(qū),然后直接通過(guò)Magisk的壓縮包,將補(bǔ)丁打入。
但是,現(xiàn)在recovery分區(qū)沒(méi)了
AB分區(qū)和VAB分區(qū)將recovery分區(qū)內(nèi)置進(jìn)了boot分區(qū)內(nèi),因此沒(méi)有獨(dú)立的recovery分區(qū)。
這部分的機(jī)型若需要使用第三方rec只能從ADB工具處使用臨時(shí)啟動(dòng)來(lái)啟動(dòng)第三方rec,
部分作者發(fā)布的rec可以在臨時(shí)啟動(dòng)后在高級(jí)選項(xiàng)處點(diǎn)擊安裝到手機(jī)內(nèi),原理就是將第三方rec安裝進(jìn)了boot分區(qū)內(nèi),
但是只要刷入ROM包等需要刷新boot分區(qū)的操作時(shí),安裝在boot分區(qū)的第三方rec就會(huì)被刷機(jī)包的boot文件替換掉,所以說(shuō)AB分區(qū)沒(méi)有永久的第三方rec
目前主流的幾種第三方rec
TWRP(全稱:Team Win Recovery Project)【推薦】
官方網(wǎng)址:https://twrp.me/
奇兔twrp下載地址 http://www.romleyuan.com/lec/read?id=201
使用方法
1.進(jìn)入官網(wǎng)下載最新的apk安裝包me.twrp.twrpapp-26.apk
https://dl.twrp.me/twrpapp/
2.安裝
3.選擇本機(jī)機(jī)型,下載對(duì)應(yīng)的鏡像文件 twrp.img
[圖片上傳失敗...(image-961d42-1663397249560)]
4.刷入系統(tǒng)的兩種方法
方法一:
點(diǎn)擊select a file to flash ,選擇下載好的twrp.ing文件
再點(diǎn)擊flash to recovery
方法二(手機(jī)無(wú)法啟動(dòng)時(shí)):具體看下文傳統(tǒng)A-only分區(qū)刷入方法
將twrp.img文件pull到電腦
通過(guò)bootfast flash recovery 命令刷入分區(qū)
重啟到recovery
5.界面
[圖片上傳失敗...(image-66acdd-1663397249560)]
OrangeFox Recovery(中文名:橙狐rec)
https://orangefox.download/zh-CN
1.讀者自行探索
2.recovery 界面
[圖片上傳失敗...(image-85b477-1663397249560)]
傳統(tǒng)A-only分區(qū)刷入第三方recovery方法
1.準(zhǔn)備工作
(1)下載ADB工具
-
a.MACOS系統(tǒng)安裝adb方法:
終端執(zhí)行: brew install --cask android-platform-tools 安裝完成后,關(guān)閉并重啟終端,adb環(huán)境即可生效。 -
b.window安裝ADB的方法
1.下載地址:https://developer.android.com/studio/releases/platform-tools?hl=zh-cn
[圖片上傳失敗...(image-2b0bb0-1663397249560)]
2.將下載paltfrom-tools解壓,并將文件添加到系統(tǒng)環(huán)境變量
3.打開(kāi)終端,就可以執(zhí)行adb命令了
(2)解鎖手機(jī)BL鎖(以小米手機(jī)為例,自行百度手機(jī)解鎖BL的方法)
Bootloader,簡(jiǎn)稱BL,其手機(jī)安全啟動(dòng)規(guī)范的底層的一環(huán)。
主要作用是驗(yàn)證加載對(duì)象簽名,防止啟動(dòng)第三方 ROM 或 Recovery,避免由此帶來(lái)的數(shù)據(jù)安全風(fēng)險(xiǎn)。
同時(shí)限制了 Fastboot 方式刷機(jī)(線刷),防范手機(jī)在沒(méi)有授權(quán)的情況下被刷機(jī).
- 1.目的是讓recovery分區(qū)可寫(xiě)入
- 2.解bl鎖會(huì)清除手機(jī)(恢復(fù)出廠設(shè)置)所有數(shù)據(jù),記得提前備份好?。。?/li>
a.下載小米官方解鎖工具
https://www.miui.com/unlock/index.html
[圖片上傳失敗...(image-a1bd81-1663397249560)]
b.用數(shù)據(jù)線連接手機(jī)和電腦,在關(guān)機(jī)狀態(tài)下同時(shí)按住音量減鍵和電源鍵,直到出現(xiàn)如下界面,進(jìn)入fastboot.
c.軟件顯示連接成功,之后按步驟解鎖即可
2.刷入第三方鏡像文件,這里以 twrp.img為例
(1)將手機(jī)重啟到fastboot模式
(2)輸入以下命令將rec文件刷入(后面的twrp.img是rec文件的路徑)
fastboot flash recovery twrp.img
(3)等待刷入成功后,重啟到recovery模式
fastboot reboot recovery
關(guān)閉AVB2.0校驗(yàn)(防止被覆蓋和無(wú)法開(kāi)機(jī)的情況)
方法一 重啟到recovery,選擇高級(jí),選擇關(guān)閉系統(tǒng)效驗(yàn),移動(dòng)滑塊,最后一定是重啟到recovery,在重啟系統(tǒng)
[圖片上傳失敗...(image-748875-1663397249560)]
方法二 找到系統(tǒng)安裝包中的vbmeta.img文件,重啟系統(tǒng)的進(jìn)入fastboot,輸入以下命令
fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
fastboot reboot recovery
fastboot reboot
找到vbmeta.img文件的方法請(qǐng)看下文root系統(tǒng)
data分區(qū)加密,twrp安裝時(shí)目錄呈現(xiàn)亂碼解決方法
1.重啟進(jìn)入recovery(twrp)
2.清除data分區(qū)的數(shù)據(jù)(會(huì)重置手機(jī),記得做好系統(tǒng)備份)
3.重啟到recovery
4.重啟手機(jī)
5.若手機(jī)無(wú)法開(kāi)機(jī)
進(jìn)入fastboot 用fastboot flash 刷入MIUI安裝包里的vbmeta.img 和 boot.img等img文件
VAB分區(qū)臨時(shí)啟動(dòng)與刷入方法(沒(méi)有recover分區(qū),實(shí)現(xiàn)刷recover)
(1)將手機(jī)重啟到fastboot模式
(2)輸入以下命令將rec文件刷入(后面的twrp.img是rec文件的路徑)
fastboot boot twrp.img
執(zhí)行后會(huì)自動(dòng)重啟到recovery
使用twrp刷入軟件的兩種方式(軟件的格式為zip 如magisk.zip kali-nethunter.zip)
1.不需要將安裝包push到手機(jī)(手機(jī)+電腦)
上文介紹的 配合adb sideload 的線刷
2.需要將安裝包放到手機(jī)存儲(chǔ)的卡刷 (不需要電腦)
重啟到twrp(即recovery),點(diǎn)擊安裝,找到要安裝的zip文件
root刷機(jī)(紅米note8pro)
卡刷:安裝包放在手機(jī)存儲(chǔ),通過(guò)TWRP安裝,不用電腦
線刷:安裝包放在電腦中,通過(guò)數(shù)據(jù)線,執(zhí)行adb sideload xxx.zip安裝
準(zhǔn)備工作
1.手機(jī)刷入twrp
方法如上所述
2.下載好系統(tǒng)刷機(jī)包(線刷包 和 卡刷包),以小米手機(jī)為例
方法一:
1.首先在系統(tǒng)更新選擇下載完整包,然后停止下載
2.然后去“下載管理”繼續(xù)下載,這樣就不會(huì)被系統(tǒng)解密了,下載好的包在Download\downloaded_rom 就可以找到了
[圖片上傳失敗...(image-888df1-1663397249560)]
方法二:
從如下網(wǎng)址下載線刷包和卡刷包
https://xiaomirom.com/series/
3.解壓安裝包中的img文件備份,手機(jī)無(wú)法啟動(dòng)時(shí)重刷(線刷包和卡刷包的img不一樣,不能混刷,否則無(wú)法啟動(dòng))
4.進(jìn)入recovery(twro)備份boot recovery bootloader 分區(qū)(作用與第2步相同,手機(jī)無(wú)法啟動(dòng)時(shí)刷回來(lái)),注意不要備份data分區(qū),高版本安裝系統(tǒng)是加密的無(wú)法備份。
5.備份手機(jī)數(shù)據(jù),刷機(jī)完成后用于恢復(fù)安裝的軟件等信息
小米手機(jī)助手:小米有官方的備份軟件(也可用來(lái)刷入線刷包系統(tǒng))
http://zhushou.xiaomi.com/
[圖片上傳失敗...(image-c1d7a6-1663397249560)]
6.將卡刷包,面具magick.zip,img文件存入手機(jī)(有外置sd卡的放入外置,這要即使重置手機(jī)也不會(huì)清楚外置sd卡數(shù)據(jù))
下載magisk安裝包
https://www.mintimate.cn/2020/03/08/Magisk/
關(guān)于面具apk改zip:從22.0版本開(kāi)始,
Magisk的刷入包,卸載包和apk安裝包合為一體,
下載的apk可以用于安裝APP,改后綴為zip即可在Recovery刷入,改名稱為uninstall.zip即變身卸載包。
刷入magisk
1.使用上文提到的twrp刷入軟件的兩種方式的任意一種,刷入面具(Magisk)即可
2.重啟進(jìn)入系統(tǒng)后,會(huì)看到magisk的圖標(biāo),但是不完整,需要重新安裝
zip改為apk,點(diǎn)擊安裝即可
3.這樣就成功通過(guò)面具獲得了系統(tǒng)的root權(quán)限
面具安裝成功的標(biāo)志:
[圖片上傳失敗...(image-9419b1-1663397249560)]
手機(jī)無(wú)法啟動(dòng)的解決方法
1.重新刷入img文件
1.進(jìn)入fastboot模式
2.嘗試刷入系統(tǒng)原理的
system.img
boot.img
vbmeta.img
3.重啟
2.使用小米手機(jī)助手,重新刷入系統(tǒng)包
1.下載:下載方法如上所述
2.解壓系統(tǒng)安裝包
3.打開(kāi)小米手機(jī)助手軟件,并用USB連接手機(jī)到電腦
4.重啟手機(jī)到bootfast模式
5.軟件連接成功后,輸入解壓后文件的路徑
6.點(diǎn)擊刷機(jī)即可
基礎(chǔ)知識(shí)
安卓REC原理:手機(jī)的系統(tǒng)分區(qū)
- system:系統(tǒng)分區(qū).就是我們刷ROM的分區(qū)(ROM,Read-Only Memory 只讀儲(chǔ)存器)
包括 Android UI 和設(shè)備上預(yù)裝的 APP。
刪除這個(gè)分區(qū)只會(huì)同步將 Android 系統(tǒng)從設(shè)備上卸載掉,
而不會(huì)導(dǎo)致設(shè)備不能重啟,因此你依然可以順利讓設(shè)備進(jìn)入到 recovery 或 bootloader 模式來(lái)
為它重新刷入一個(gè)新的 ROM。
RAM,Random-Access Memory 隨機(jī)儲(chǔ)存器 內(nèi)存條
-
recovery分區(qū),只有用于普通刷機(jī);twrp就是一個(gè)第三方的rec(recovery)
相當(dāng)于一個(gè)備用的 boot 分區(qū),利用它我們可以使設(shè)備啟動(dòng)到恢復(fù)模式窗口來(lái)進(jìn)行一些高級(jí)的恢復(fù)和維護(hù)操作。 -
data分區(qū),用戶分區(qū);我們裝APK的分區(qū)
也被稱作 userdata,是用戶數(shù)據(jù)被存儲(chǔ)的地方——也就是說(shuō)你的聯(lián)系人、短信、配置文件和你自己安裝的 APP 都位于這里。 刪除這個(gè)分區(qū)相當(dāng)于將你的設(shè)備恢復(fù)出廠設(shè)置,你的設(shè)備會(huì)變得和你第一次開(kāi)機(jī)或最后一次刷入官方/自定義 ROM 后一樣。 你在設(shè)備上點(diǎn)擊清除用戶數(shù)據(jù)或恢復(fù)出廠設(shè)置按鈕后,實(shí)際上清除掉的就是這個(gè)分區(qū)。 cache分區(qū):存儲(chǔ)使用過(guò)程中的緩存數(shù)據(jù)
存放的是 Android 系統(tǒng)中經(jīng)常被訪問(wèn)的數(shù)據(jù)和 APP 的部件。
刪除這個(gè)分區(qū)不會(huì)對(duì)你的個(gè)人數(shù)據(jù)造成影響,這個(gè)分區(qū)上的數(shù)據(jù)會(huì)隨著你繼續(xù)使用設(shè)備被重新收集并存儲(chǔ)在這里。
-
misc分區(qū):包含了各種以開(kāi)關(guān)量形式保存的系統(tǒng)配置,包括 CID(Carrier or Region ID)、USB配置和某些硬件配置等。寫(xiě)入啟動(dòng)指令
這是個(gè)很重要的分區(qū),如果它遭到了破壞或有數(shù)據(jù)丟失,那么設(shè)備的一些功能可能無(wú)法正常使用 bootloader分區(qū),主要用于線刷;
boot:由 kernel 和 ramdisk 構(gòu)成,內(nèi)核就這這里。用于啟動(dòng);
hboot:這個(gè)是SPL所在的分區(qū).很重要哦.也是fastboot所在的分區(qū).刷錯(cuò)就真的變磚了.
-
vbmeta:vbmeta.img(verified boot metadata),
把所有需要校驗(yàn)的內(nèi)容在編譯時(shí)就計(jì)算好打包到這個(gè)分區(qū), 那么啟動(dòng)過(guò)程中 BootLoader 只需要校驗(yàn) vbmeta.img,就能確認(rèn) vbmeta 內(nèi)的數(shù)據(jù)是否可信。 -
vendor分區(qū):包含有廠商私有的可執(zhí)行程序、庫(kù)、系統(tǒng)服務(wù)和app等
可以將此分區(qū)看做是system分區(qū)的補(bǔ)充,廠商定制ROM的一些功能都可以放在此分區(qū) SDCard分區(qū):就是掛載的SD卡。
splash1:這個(gè)就是開(kāi)機(jī)第一屏幕了.
modem分區(qū):主要是手機(jī)短信的通訊模塊;
解鎖與fastboot和recover模式
-
當(dāng)我們只是按下電源鍵開(kāi)機(jī)時(shí),會(huì)進(jìn)入正常啟動(dòng)模式。
Secondary stage bootloader會(huì)從boot分區(qū)開(kāi)始啟動(dòng) -
fastboot模式:fastboot是 android定義的一 種簡(jiǎn)單的刷機(jī)協(xié)議,用戶可以通過(guò)fastboot命令 行工具來(lái)進(jìn)行刷機(jī)。
比如說(shuō) fastboot flash boot boot.img這個(gè)命令就是把boot.img的內(nèi)容刷寫(xiě)到 boot分區(qū)中。 一般的手機(jī)廠商不直接提供 fastboot模式刷機(jī),而是為了顯示他們的牛B之處,總 是會(huì)提供自己專有的刷機(jī)工具和刷機(jī)方法。 比如 說(shuō)三星的Odin,摩托的RSD,華為的粉屏等等。 但是其本質(zhì)實(shí)際上是相同的,都是將軟件直接fla sh到各個(gè)分區(qū)中 -
recovery模式:recovery是 android定義的一 個(gè)標(biāo)準(zhǔn)刷機(jī)協(xié)議。
當(dāng)進(jìn)入recovery模式時(shí),secondarystage bootloader從recovery分區(qū)開(kāi)始啟動(dòng) recovery分區(qū)實(shí)際上是一個(gè)簡(jiǎn)單的Linux系統(tǒng) , 當(dāng)內(nèi)核啟動(dòng)完畢后,開(kāi)始執(zhí)行第一個(gè)程序init(init程序是Linux系統(tǒng)所有程序 的老祖宗)。 init會(huì)啟動(dòng)一個(gè)叫做recovery的程序(recovery模式的 名稱也由此而來(lái))。 通過(guò)recovery程序,用戶可以執(zhí)行清除數(shù)據(jù),安裝刷機(jī)包等操作。 一般的手 機(jī)廠商都提供一個(gè)簡(jiǎn)單的recovery刷機(jī),而大名鼎鼎的CWM Recovery就是一個(gè)加入了很多增強(qiáng)功能的 recovery, 要想用上CWM Recovery前提是recovery分區(qū)可以被刷寫(xiě)。大家在論壇上看到 的解鎖bootloader,通常指的就是解鎖recovery 或fastboot,允許刷寫(xiě)recovery分區(qū), 這樣大家 就可以用上喜愛(ài)的CWM Recovery了。
系統(tǒng)分區(qū)介紹
1.架構(gòu)與分區(qū)文件
| onlyA架構(gòu)(小米9) | 分區(qū)名 | 邏輯分區(qū) |
|---|---|---|
| 分區(qū)1 | system | |
| 分區(qū)2 | vendor | |
| 分區(qū)3 | boot | |
| 分區(qū)4 | dtbo | |
| 分區(qū)5 | recovery | |
| 分區(qū)6 | userdata | |
| ... | ... | ... |
| AB架構(gòu)(1加7pro) | 分區(qū)名 | 邏輯分區(qū) |
|---|---|---|
| 分區(qū)1 | system_a | |
| 分區(qū)2 | system_b | |
| 分區(qū)3 | vendor_a | |
| 分區(qū)4 | vendor_b | |
| 分區(qū)5 | boot_a | |
| 分區(qū)6 | boot_b | |
| 分區(qū)7 | dtbo_a | |
| 分區(qū)8 | dtbo_b | |
| 分區(qū)9 | userdata | |
| ... | ... | ... |
寫(xiě)入分區(qū)的方法(詳細(xì)命令請(qǐng)看下文安卓命令詳解)
刷第三方recovery,本質(zhì)上是將第三方的img文件刷入recovery分區(qū)
img鏡像文件文件:img格式是一種文件壓縮格式(archive format),主要是為了創(chuàng)建軟盤(pán)的鏡像文件(disk image),它可以用來(lái)壓縮整個(gè)軟盤(pán)或整片光盤(pán)的內(nèi)容
1.重啟手機(jī)進(jìn)入 fastboot模式
adb reboot bootloader
2.通過(guò)命令 fastboot flash 分區(qū)名 img文件地址 刷入
fastboot flash recovery twrp.img
3.刷入后重啟(fastboot模式下只能用fastboot命令)
fastboot reboot 重啟到系統(tǒng)
fastboot reboot recovery 重啟到bootfast
fastboot bootloader 重啟到bootfast
系統(tǒng)OTA升級(jí)流程
OAT(Over-The-Air)即空中下載技術(shù),早期被廣泛應(yīng)用在手機(jī)行業(yè)中,終結(jié)了手機(jī)軟件升級(jí)需要連接電腦、下載軟件、再安裝更新的繁復(fù)操作
非A/B架構(gòu)系統(tǒng)升級(jí)流程(onlyA ,動(dòng)態(tài)onlyA)
1.android系統(tǒng)收到服務(wù)端的OTA推送,將OTA包下載至cache分區(qū)
2.OTA下載完成后,向misc分區(qū)寫(xiě)入指令,表明下次啟動(dòng)是進(jìn)入recovery模式并使用改OTA包進(jìn)行升級(jí)。
3.重啟手機(jī)
4.重啟后最先進(jìn)入bootloader,bootloader會(huì)先判斷按鍵組合、電源寄存器等,隨后會(huì)讀取misc分區(qū)的內(nèi)容并解析。由于步驟2中已經(jīng)向misc分區(qū)寫(xiě)入了指令,此處bootloader讀取指令后會(huì)引導(dǎo)啟動(dòng)recovery系統(tǒng)。
5.進(jìn)入recovery,讀取cache分區(qū)中的OTA包,并解析其中的升級(jí)腳本,按照其指令對(duì)系統(tǒng)各個(gè)分區(qū)進(jìn)行升級(jí)。如果recovery自身也需要升級(jí),會(huì)在此過(guò)程中向system中寫(xiě)入recovery-from-boot.p文件,這是一個(gè)recovery升級(jí)所需要的patch
6.recovery會(huì)清除misc分區(qū)
7.重啟后最先進(jìn)入bootloader,判斷按鍵組合、電源寄存器、misc分區(qū)內(nèi)容等,默認(rèn)情況會(huì)啟動(dòng)Android系統(tǒng),此時(shí)已經(jīng)是OTA升級(jí)后的新版本系統(tǒng)
8.新版本Android系統(tǒng)啟動(dòng)后,會(huì)檢查是否存在recovery-from-boot.p文件,如果存在,則會(huì)對(duì)recovery進(jìn)行升級(jí)
A/B架構(gòu)升級(jí)流程(AB,動(dòng)態(tài)AB,VAB)
1.在Android O之后,Google引入了一種新的分區(qū)結(jié)構(gòu),稱為A/B分區(qū),與之對(duì)應(yīng),傳統(tǒng)分區(qū)結(jié)構(gòu)被稱為non-A/B分區(qū)
2.A/B分區(qū)結(jié)構(gòu),顧名思義,將系統(tǒng)分區(qū)分成了A和B兩個(gè)槽(slot),手機(jī)啟動(dòng)時(shí)會(huì)選擇A槽或者B槽啟動(dòng),運(yùn)行過(guò)程中僅使用當(dāng)前槽位的分區(qū)。一旦當(dāng)前運(yùn)行的槽出現(xiàn)問(wèn)題,系統(tǒng)仍可以選擇另一個(gè)槽進(jìn)行啟動(dòng),從而保證系統(tǒng)良好的可用性。
3.采用A/B分區(qū)結(jié)構(gòu),能夠?qū)崿F(xiàn)無(wú)縫升級(jí)。例如用戶正在運(yùn)行A槽,此時(shí)收到OTA推送,則系統(tǒng)會(huì)在后臺(tái)一邊下載OTA數(shù)據(jù),一邊同時(shí)對(duì)B槽進(jìn)行升級(jí)。當(dāng)B槽系統(tǒng)升級(jí)完成,用戶會(huì)收到重啟提示,此時(shí)重啟手機(jī)將自動(dòng)切換到B槽的新版本系統(tǒng)。在此過(guò)程中,僅重啟操作是會(huì)被用戶感知的,這個(gè)重啟與普通重啟的耗時(shí)沒(méi)有什么區(qū)別。
4.由于A/B分區(qū)結(jié)構(gòu)可以實(shí)現(xiàn)一邊從服務(wù)端獲取OTA數(shù)據(jù),一邊直接寫(xiě)入待升級(jí)的槽,不需要臨時(shí)存儲(chǔ)OTA包的空間,因此不再需要在cache或userdata分區(qū)預(yù)留足夠空間。
[圖片上傳失敗...(image-b7df37-1663397249560)]
5.傳統(tǒng)的Recovery升級(jí)模式,如果寫(xiě)入System系統(tǒng)分區(qū)的數(shù)據(jù)有誤,那么機(jī)器可能就無(wú)法啟動(dòng),刷機(jī)玩家應(yīng)該很熟悉這一類“變磚”的情況,甚至廠商O(píng)TA偶爾也會(huì)“變磚”。要如何避免?事實(shí)上,近年的新安卓機(jī)使用A/B分區(qū)機(jī)制,很多安卓機(jī)已經(jīng)不需要Recovery來(lái)引導(dǎo)升級(jí)。
Android系統(tǒng)啟動(dòng)方式的變更
1.之前需要經(jīng)由Recovery,使用A/B分區(qū)機(jī)制后直接通過(guò)boot來(lái)引導(dǎo)啟動(dòng)
2.在采用了A/B分區(qū)機(jī)制的安卓機(jī)中,當(dāng)系統(tǒng)需要升級(jí)的時(shí)候,會(huì)將新的系統(tǒng)寫(xiě)入其中一個(gè)分區(qū),寫(xiě)入成功后則從該分區(qū)啟動(dòng);如果寫(xiě)入失敗,或者啟動(dòng)失敗,則從原分區(qū)啟動(dòng),這相當(dāng)于兩個(gè)系統(tǒng)分區(qū)相互備份,大大減少了系統(tǒng)升級(jí)的故障率。
3.安卓11的機(jī)制也與此相似。出廠預(yù)裝安卓11的機(jī)器,取消了Recovery分區(qū),而且對(duì)A/B分區(qū)機(jī)制進(jìn)行了一定程度的改變。安卓11需要升級(jí)系統(tǒng)的時(shí)候,會(huì)將新系統(tǒng)的數(shù)據(jù)和現(xiàn)在的系統(tǒng)數(shù)據(jù)進(jìn)行對(duì)比校驗(yàn),將差異部分寫(xiě)入另一個(gè)分區(qū)而不是系統(tǒng)分區(qū);
4.利用新數(shù)據(jù)啟動(dòng)系統(tǒng),如果系統(tǒng)順利啟動(dòng),那么就將差異數(shù)據(jù)寫(xiě)入到系統(tǒng)分區(qū),啟動(dòng)失敗則拋棄差異數(shù)據(jù),用原來(lái)系統(tǒng)分區(qū)的數(shù)據(jù)啟動(dòng)。
5.安卓11這個(gè)新機(jī)制既有A/B分區(qū)的可靠性優(yōu)點(diǎn),也無(wú)需像A/B分區(qū)那樣占據(jù)大量的額外空間
boot和root
boot分區(qū)就是操作系統(tǒng)的內(nèi)核及在引導(dǎo)過(guò)程中使用的文件,簡(jiǎn)單來(lái)說(shuō)就是沒(méi)有這個(gè)東西你的手機(jī)將無(wú)法開(kāi)機(jī)。
而獲取Root的話,你可以簡(jiǎn)單的理解為Magisk把超級(jí)管理員權(quán)限補(bǔ)丁放到系統(tǒng)引導(dǎo)里面。
。
查看是否支持 A/B 分區(qū)方法
運(yùn)行 adb shell getprop ro.build.ab_update 命令查詢,如果結(jié)果顯示 true 表示支持 A/B 分區(qū),如果沒(méi)有返回內(nèi)容則不支持。
小米主要機(jī)型:
A-only分區(qū):小米10系列,紅米K30系列,紅米Note9系列等之前出廠為安卓10或更早版本的機(jī)型為
VAB分區(qū):小米11系列,紅米K40系列,紅米Note10系列等之后出廠為安卓11的機(jī)型為
VirtualAB分區(qū)和TWRP_Recovery關(guān)系
在刷入TWRP之前,你必須了解VirtualAB并沒(méi)有單獨(dú)的recovery分區(qū)的,而我們看到的官方recovery模式,實(shí)際僅僅是boot分區(qū)里ramdisk的組成部分。
換句話說(shuō),VirtualAB分區(qū) 并沒(méi)有1個(gè)單獨(dú)的recovery分區(qū),boot分區(qū)就是recovery分區(qū),recovery分區(qū)就是boot,對(duì)應(yīng)在手機(jī)里的位置即可boot分區(qū)。
當(dāng)我們刷入TWRP的時(shí)候,也就是將TWRP刷入手機(jī)的boot分區(qū)即可實(shí)現(xiàn)。
而rec和boot融為一體的緣故VirtualAB機(jī)型的TWRP文件一般就以1個(gè)boot.img形式存在
安卓命令詳解
adb 與 fastboot
(1) ADB和Fastboot是兩個(gè)獨(dú)立的實(shí)用工具,用于使用USB電纜從計(jì)算機(jī)與Android設(shè)備通信。
(2) adb:您可以在Android設(shè)備上通過(guò)ADB執(zhí)行許多重要活動(dòng),例如安裝和卸載Play商店中不可用的應(yīng)用程序,訪問(wèn)開(kāi)發(fā)人員隱藏的功能,發(fā)送文件等等。 ADB二進(jìn)制文件中有特定的命令。 要使用實(shí)用程序工具,必須激活“開(kāi)發(fā)人員選項(xiàng)”才能啟用USB調(diào)試模式。
(3) fastboot:Fastboot是一種診斷工具,您可以使用它從計(jì)算機(jī)修改Android設(shè)備的文件系統(tǒng)。 它可以在引導(dǎo)加載程序模式下進(jìn)行修改,因?yàn)樗鼘⒚畎l(fā)送到引導(dǎo)加載程序以進(jìn)行更改,無(wú)論是安裝新文件還是修改現(xiàn)有文件。 因此,您可以借助此特殊工具安裝自定義固件,自定義恢復(fù)。
adb和fastboot的安裝
macOS:
brew install --cask android-platform-tools
window:
1.下載地址:https://developer.android.com/studio/releases/platform-tools?hl=zh-cn
2.將下載paltfrom-tools解壓,并將文件添加到系統(tǒng)環(huán)境變量
3.打開(kāi)終端,就可以執(zhí)行adb命令和fastboot命令了
常用adb命令
-
查看幫助命令
adb help -
查看當(dāng)前設(shè)備
adb devices -
多個(gè)設(shè)備時(shí)指定設(shè)備
adb -s 設(shè)備號(hào) 其他指令 adb -s 127.0.0.1:21503 shell adb -s FA6AE0309067 shell 127.0.0.1:5555 藍(lán)疊 127.0.0.1:7555 MUMU模擬器 127.0.0.1:62001 夜游神模擬器 127.0.0.1:21503 逍遙模擬器 -
查看Android處理器架構(gòu)
adb shell getprop ro.product.cpu.abi -
安裝APP
adb install xxx.apk -
安裝APP,已經(jīng)存在,覆蓋安裝
adb install -r xxx.apk -
查看當(dāng)前頁(yè)面的包名和住Activity
adb shell dumpsys window | findstr mCurrentFocus -
卸載app
adb uninstall app包名 -
往手機(jī)傳遞文件
adb push 文件名 手機(jī)路徑 -
從手機(jī)端獲取文件
adb pull 手機(jī)路徑/文件名 -
移動(dòng)文件
mv /sdcard/Download/frida-server-12.8.0 /data/local/tmp/ -
修改文件權(quán)限
chmod 777 /data/local/tmp/frida-server-12.8.0 -
查看日志
adb logcat | grep 關(guān)鍵子 -
清日志
adb logcat -c -
手機(jī)端安裝的所有app包名
adb shell pm list packages -
屏幕截圖
adb shell screencap 手機(jī)路徑/xxx.png 錄制視頻
adb shell screenrecord 手機(jī)路徑/xxx.mp4
刷機(jī)相關(guān)命令
-
重啟系統(tǒng)
adb reboot recovery -
重啟到recovery
adb reboot recovery -
重啟到fastboot
adb reboot bootloader -
線刷命令要配合twrp(不用將刷機(jī)包push到手機(jī))
1.手機(jī)連接電腦,TWRP點(diǎn)擊“高級(jí)”,“ADB Sideload”或者叫“ADB線刷”,然后直接滑動(dòng)開(kāi)始 2.電腦打開(kāi)ADB命令行,輸入命令(執(zhí)行的時(shí)zip格式的軟件或系統(tǒng)刷機(jī)包) adb sideload magisk.zip[圖片上傳失敗...(image-97c4fd-1663397249560)]
3.[圖片上傳失敗...(image-1799b1-1663397249560)] -
進(jìn)入安卓系統(tǒng)終端
adb shell -
不進(jìn)入安卓系統(tǒng)執(zhí)行安卓命令
adb shell "chmod 777 /data/local/tmp/frida-server-arm64" -
通過(guò)電腦端開(kāi)啟遠(yuǎn)程服務(wù)端口(手機(jī)重啟后失效)
adb tcpip 端口號(hào) adb tcpip 5555 1.開(kāi)啟后可無(wú)須數(shù)據(jù)線,遠(yuǎn)程連接手機(jī),執(zhí)行adb命令 2.開(kāi)啟后可通過(guò)scrcpy,Qt-scrcpy等軟件通過(guò)電腦控制安卓(投屏,點(diǎn)擊,安裝) -
連接遠(yuǎn)程手機(jī)調(diào)試(wify)
adb connect ip:端口號(hào) adb connect 192.168.0.222:5555 -
斷開(kāi)遠(yuǎn)程手機(jī)連接
adb disconnect 192.168.1.199:5555 -
調(diào)回usb調(diào)試方式
adb usb 安卓終端中開(kāi)啟服務(wù)端口(無(wú)需數(shù)據(jù)線)
在android設(shè)備上安裝“終端模擬器”等類似shell命令工具(如NetHunter終端),使用下面命令
su
setprop service.adb.tcp.port 5555
stop adbd
start adbd-
安卓終端調(diào)回usb調(diào)試方式:
setprop service.adb.tcp.port -1 stop adbd start adbd
常用fastboot命令
fastboot模式下,adb命令失效。
fastboot命令,只能在fastboot模式下執(zhí)行
-
查看幫助命令
fastboot help -
查看設(shè)備
fastboot devices -
獲取手機(jī)相關(guān)信息:
fastboot getvar all -
重啟
fastboot reboot #重啟手機(jī)(退出) fastboot reboot bootloader #重啟到bootloader模式 fastboot reboot recovery #重啟到刷機(jī)模式 -
擦除分區(qū)
fastboot erase system #擦除system分區(qū) fastboot erase boot #擦除boot分區(qū) fastboot erase cache #擦除cache分區(qū) fastboot erase userdata #擦除userdata分區(qū) -
寫(xiě)入分區(qū)(system.img boot.img recovery.img 等img文件需要從系統(tǒng)原始安裝包中解壓得到)
-
fastboot flash system system.img
寫(xiě)入system分區(qū) 寫(xiě)入后相當(dāng)重置系統(tǒng)但不清空數(shù)據(jù) 會(huì)進(jìn)入系統(tǒng)歡迎界面 fastboot flash boot boot.img #寫(xiě)入boot分區(qū)
-
fastboot flash recovery recovery.img
寫(xiě)入recovery分區(qū) 常用的卡刷模式寫(xiě)入的分區(qū) -
fastboot flash bootloader bootloader.img 或者:fastboot flash motoboot bootloader.img
這個(gè)是bootloader的組合鏡像包,簡(jiǎn)稱BL, 最好不要亂刷!這個(gè)只能升級(jí)不能降級(jí)這個(gè)必須與gpt版本一致才能刷進(jìn)去,。并且刷這個(gè)容易變磚! -
fastboot flash userdata userdata.img
刷寫(xiě)data分區(qū):(用于清空data分區(qū)等),相當(dāng)于回復(fù)出廠設(shè)置 與twrp清空data一樣 -
fastboot flash cache cache.img
刷寫(xiě)cache分區(qū):(用于清空cache分區(qū)等) -
引導(dǎo)啟動(dòng)外部鏡像:
例如要啟動(dòng)一個(gè)名為test.img的鏡像, 就輸入:fast boot boottest.img
-