之前看晨鐘大佬吐槽好多小白,,一點(diǎn)基礎(chǔ)都沒有,又有著一顆想折騰的心,。遂打算寫一篇教程,,希望能夠給真的小白一點(diǎn)幫助。
因個(gè)人水平有限,,如有疏漏或錯(cuò)誤,,請(qǐng)各位大佬在評(píng)論區(qū)斧正,不勝感激,!
超長(zhǎng)圖文預(yù)警
碼字不易,,給個(gè)頭條唄
目錄: 一、基礎(chǔ)知識(shí)及一些概念 1.bootloader簡(jiǎn)介 2.Android設(shè)備的分區(qū) 3.recovery簡(jiǎn)介 4.Android 調(diào)試橋 (adb)
二,、刷機(jī)包的相關(guān)知識(shí) 1.一個(gè)刷機(jī)包是如何被構(gòu)建出來的,? 2.如何解包? 3.刷機(jī)包里都有啥,? 4.gsi
三,、主流的系統(tǒng)介紹 1.各項(xiàng)目的介紹 2.下載
四、系統(tǒng)的安裝(刷機(jī)) 1.線刷 2.卡刷 ①OnlyA類型的
②A/B類型的
五,、root及谷歌框架的安裝 1.root及magisk(面具介紹) 2.谷歌框架的安裝
六,、一些雜項(xiàng)配置
---------------------我是分割線-------------------
正文部分
一、基礎(chǔ)知識(shí)及一些概念
1.bootloader簡(jiǎn)介
bootloader是什么,? 簡(jiǎn)單地說,,bootloader 就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,,我們可以初始化硬件設(shè)備,、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),,以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境,。
具體的啟動(dòng)流程可以看這里
查看鏈接
因?yàn)椋怯脕韱?dòng)系統(tǒng)的,。那如果可以任意啟動(dòng)系統(tǒng),那我們的設(shè)備里的數(shù)據(jù),,是不是就很不安全,?比如你設(shè)置一個(gè)鎖屏密碼,在這個(gè)系統(tǒng)內(nèi)生效,。但另一個(gè)系統(tǒng)不認(rèn),,那直接再啟動(dòng)一個(gè)系統(tǒng),不就可以繞過這個(gè)密碼了?
所以,,為了保證安全,,我們會(huì)對(duì)bootloader做一些限制,比如,,不符合原來設(shè)定簽名的系統(tǒng),,不啟動(dòng),也不允許你把不符合要求的系統(tǒng)刷寫到手機(jī)上,。
這就引出了bootloader鎖這個(gè)概念,。 所謂的解除bootloader鎖,解的就是這個(gè)限制,。
OEM解鎖 重啟到bootloader的界面,,有的也叫下載模式 解除bootloader鎖定后的警告 2.Android的分區(qū)
Android 設(shè)備包含若干個(gè)分區(qū),這些分區(qū)在啟動(dòng)過程中發(fā)揮不同的作用,。
關(guān)于A/B分區(qū):
為了支持 A/B 更新,,設(shè)備需要為 boot、system,、vendor 和 radio 分區(qū)分別單獨(dú)配置一個(gè)槽位,。
boot:boot 分區(qū)包含通過 mkbootimg 組合在一起的內(nèi)核映像和 RAM 磁盤。為了直接刷寫內(nèi)核而不刷寫新的 boot 分區(qū),,可以使用虛擬分區(qū):kernel:kernel 虛擬分區(qū)僅覆蓋內(nèi)核(zImage,、zImage-dtb、Image.gz-dtb),,方法是寫入新的映像來覆蓋舊的映像,。為此,它會(huì)確定 eMMC 中現(xiàn)有內(nèi)核映像的起始位置并將新內(nèi)核映像復(fù)制到該位置,。請(qǐng)記住,,新內(nèi)核映像可能會(huì)大于現(xiàn)有內(nèi)核映像。引導(dǎo)加載程序可以通過移動(dòng)其后的任何數(shù)據(jù)來騰出空間或放棄出錯(cuò)的操作,。如果提供的開發(fā)內(nèi)核不兼容,,則可能需要使用相關(guān)的內(nèi)核模塊更新 dtb 分區(qū)(如果存在)、vendor 分區(qū)或 system 分區(qū),。
ramdisk:ramdisk 虛擬分區(qū)通過將新映像寫入舊磁盤來僅覆蓋 RAM 磁盤,。為此,它會(huì)確定 eMMC 中現(xiàn)有 ramdisk.img 的起始位置并將新 RAM 磁盤映像復(fù)制到該位置,。請(qǐng)記住,,新 RAM 磁盤映像可能會(huì)大于現(xiàn)有 RAM 磁盤映像。引導(dǎo)加載程序可以通過移動(dòng)其后的任何數(shù)據(jù)來騰出空間或放棄出錯(cuò)的操作,。
system:system 分區(qū)主要包含 Android 框架,。
recovery:recovery 分區(qū)用于存儲(chǔ)在 OTA 過程中啟動(dòng)的恢復(fù)映像,。如果設(shè)備支持 A/B 更新,則恢復(fù)映像可以是啟動(dòng)映像中包含的 RAM 磁盤,,而不是單獨(dú)的映像,。
cache:cache 分區(qū)用于存儲(chǔ)臨時(shí)數(shù)據(jù),如果設(shè)備使用 A/B 更新,,則可以不要此分區(qū),。cache 分區(qū)不需要可從引導(dǎo)加載程序?qū)懭耄恍枰汕蹇?。大小取決于設(shè)備類型和 userdata 分區(qū)的可用空間,。目前,50MB 至 100MB 應(yīng)該沒問題,。
misc:misc 分區(qū)供恢復(fù)映像使用,,存儲(chǔ)空間不能小于 4KB。
userdata:userdata 分區(qū)包含用戶安裝的應(yīng)用和數(shù)據(jù),,包括自定義數(shù)據(jù),。metadata:如果設(shè)備被加密,則需要使用 metadata 分區(qū),,該分區(qū)的存儲(chǔ)空間不能小于 16MB,。
vendor:vendor 分區(qū)包含所有不可分發(fā)給 Android 開源項(xiàng)目 (AOSP) 的二進(jìn)制文件。如果沒有專有信息,,則可以省略此分區(qū),。
radio:radio 分區(qū)包含無線裝置映像。只有包含無線裝置且在專用分區(qū)中包含無線裝置專用軟件的設(shè)備才需要此分區(qū),。
tos:tos 分區(qū)用于存儲(chǔ) Trusty 操作系統(tǒng)的二進(jìn)制映像文件,,僅在設(shè)備包含 Trusty 時(shí)使用。
除此之外還有一大堆廠商為實(shí)現(xiàn)特定功能的分區(qū),,這里不再贅述,。
我這臺(tái)機(jī)器的部分分區(qū)(右側(cè)) 3.recovery簡(jiǎn)介
Recovery模式指的是一種可以對(duì)安卓機(jī)內(nèi)部的數(shù)據(jù)或系統(tǒng)進(jìn)行修改的模式(類似于windows PE或DOS)。也可以稱之為安卓的恢復(fù)模式,,在這個(gè)所謂的恢復(fù)模式下,,我們可以刷入新的安卓系統(tǒng),或者對(duì)已有的系統(tǒng)進(jìn)行備份或升級(jí),,也可以在此恢復(fù)出廠設(shè)置(格式化數(shù)據(jù)和緩存),。
Recovery包括了一個(gè)完整Linux內(nèi)核和一些特殊的recovery binary,可以讀取升級(jí)文件用這些文件來更新其他的分區(qū),。
傳統(tǒng)的系統(tǒng)更新,,一般流程就是:首先下載系統(tǒng)安裝包,然后校驗(yàn)無誤后,,重啟到recovery模式,,recovery校驗(yàn)安裝包的簽名,如果是官方發(fā)布的,,則按照包里的內(nèi)容進(jìn)行安裝,。 安裝完成后,重啟完成系統(tǒng)更新
因?yàn)楝F(xiàn)在越來越多的設(shè)備使用了A/B類型的分區(qū)結(jié)構(gòu),,在更新系統(tǒng)時(shí),,主系統(tǒng)可以完成大部分本來recovery該做的工作。因此這一部分的機(jī)器是沒有獨(dú)立recovery分區(qū)的,。這一部分已經(jīng)集成到了boot里,,并且功能也僅限于清除數(shù)據(jù),和啟動(dòng)的功能,。安裝系統(tǒng)這一部分的任務(wù),,已經(jīng)交由系統(tǒng)來負(fù)責(zé)了。 lineage OS的recovery,,功能和廠商的基本一致,。
同時(shí),這個(gè)也是AB類型的 4.Android 調(diào)試橋 (adb)
Android 調(diào)試橋 (adb) 是一種功能多樣的命令行工具,,可讓您與設(shè)備進(jìn)行通信,。adb 命令可用于執(zhí)行各種設(shè)備操作(例如安裝和調(diào)試應(yīng)用),并提供對(duì) Unix shell(可用來在設(shè)備上運(yùn)行各種命令)的訪問權(quán)限,。
總的來說,,通過adb可以實(shí)現(xiàn)一些介于普通用戶和root之間的權(quán)限。
像晨鐘大佬的工具箱,,很多都是基于這個(gè)的,。
具體的使用和介紹,請(qǐng)參照谷歌官方的介紹,。 查看鏈接 包含在sdk platform tools 中 二,、刷機(jī)包的相關(guān)知識(shí)
1.一個(gè)刷機(jī)包是如何被構(gòu)建出來的?
這里不多介紹,,有興趣請(qǐng)查看lineage的build wiki,。
查看鏈接
因?yàn)橐婕昂芏噙m配的東西,我太菜了,,講不來
只說一下大致流程:
首先:需要有你想要適配ROM的源代碼,,因?yàn)槭情_源的,直接下載就好,。
還需要有內(nèi)核的源代碼,,因?yàn)锳ndroid是基于Linux的,硬件,,進(jìn)程的調(diào)度,,都需要它,。這部分就要看廠商開不開源了。如果沒有開源,,使用boot里解包的prebuilt內(nèi)核也行,,但很多bug可能就沒辦法修了。
第二步:你得告訴編譯系統(tǒng),,你要為一個(gè)什么樣的設(shè)備編譯ROM,。那怎么告訴呢?總不能直接跟它說,,你給我編譯一個(gè)米6的dot OS吧,?
這時(shí)候,你就要編寫一個(gè)device tree,,在這套文件里,,有詳細(xì)的設(shè)備信息,以及它運(yùn)行時(shí)需要的東西,。 dt的目錄結(jié)構(gòu),,可能會(huì)因?yàn)闄C(jī)型而異,但大體一致 這一部分,,很細(xì),,很雜,往往需要開發(fā)者付出很大心血,。有時(shí)候,,一套完整的device tree 要很多開發(fā)者參與才能完成。所以,,某些人在噴的時(shí)候,,請(qǐng)嘴下積德。
不過,,一旦完成,,這套樹,就可以給幾乎所有的ROM項(xiàng)目做適配,,需要改的,,也只是會(huì)針對(duì)某些ROM的特性做小修改。
因此,,不要再噴某一個(gè)ROM的bug和另一個(gè)ROM的bug一樣,,就得出誰抄誰的結(jié)論了,這一般都是維護(hù)者的問題,。
第三步:說清楚了,,就是漫長(zhǎng)的編譯過程了。有bug,,編譯報(bào)錯(cuò),,改,。又錯(cuò)了,再改改..... 反正我八代低壓i5,,加固態(tài),,跑完全程大概要六個(gè)多小時(shí)。
第四步:按照releasetools.py的內(nèi)容打包發(fā)布,,這里面會(huì)告訴要發(fā)布的包,里面要包含啥,,以及一些后續(xù)要用到的東西,。 里面的內(nèi)容 2.如何解包?
要回答第三個(gè)問題,,我們先拆個(gè)包 這個(gè)是傳統(tǒng)的刷機(jī)包類型 大致的目錄結(jié)構(gòu) boot.img 是更新boot分區(qū)所需要的鏡像文件,。這個(gè)boot.img主要包括kernel、ramdisk,。
system/目錄的內(nèi)容在升級(jí)后會(huì)放在系統(tǒng)的system分區(qū),,主要是系統(tǒng)app,library和binary二進(jìn)制文件
recovery/目錄主要用來更新recovery分區(qū), install-recovery.sh是用來更新recovery分區(qū)的腳本,。
update-binary是一個(gè)二進(jìn)制文件,,相當(dāng)于一個(gè)腳本解釋器,能夠識(shí)別updater-script中描述的操作,。
updater-script:此文件是一個(gè)腳本文件,,具體描述了更新過程。
metadata文件是描述設(shè)備信息及環(huán)境變量的元數(shù)據(jù),。主要包括一些編譯選項(xiàng),,簽名公鑰,時(shí)間戳以及設(shè)備型號(hào)等,。 原文鏈接:查看鏈接
一般來說,,現(xiàn)在都會(huì)對(duì)包內(nèi)進(jìn)行壓縮,你解包后,,只會(huì)看到一個(gè)后綴名為.br的文件,。
這個(gè)是經(jīng)過brotil壓縮算法壓縮的產(chǎn)物。 解壓后就能看到boot,,system等等的鏡像文件了,。
另一種是A/B分區(qū)的
里面是payload.bin 同樣也是需要解壓的。
需要的工具請(qǐng)自行百度,。
3.一個(gè)刷機(jī)包里都有啥,?
上面已經(jīng)大致介紹了,現(xiàn)在說一些不一樣的
首先 一個(gè)最小的刷機(jī)包,,里面至少要包含boot和system,,內(nèi)核和系統(tǒng)應(yīng)該是匹配的
第二,,底包的概念
那啥是底包呢?還記得上面寫的vendor分區(qū)嗎,?這個(gè)分區(qū)里放的是設(shè)備專有的硬件驅(qū)動(dòng)庫,,沒有這個(gè),硬件就不能正常工作,。綜合下來,,就是vendor.img。
我們??匆?,需要刷某一個(gè)版本的廠商官方ROM作為底包,其實(shí)就是說,,這個(gè)第三方ROM需要某一個(gè)版本里的vendor,。
一般來說,像lineage之類的,,如果要上官方版,,就必須要求開發(fā)者提供穩(wěn)定的vendor,這也就意味著,,這類包大概率會(huì)包含vendor,,就不再需要底包。
第三,,其它亂七八糟的分區(qū)鏡像
看完上面的內(nèi)容,,你應(yīng)該已經(jīng)知道了,一個(gè)ROM正常工作,,其實(shí)只需要boot,,system,vendor就夠了,。
但有些開發(fā)者為了實(shí)現(xiàn)一些功能,,會(huì)改其他分區(qū),這時(shí)候就會(huì)加入對(duì)應(yīng)的分區(qū)鏡像,。
所以,,刷之前最好檢查一下腳本,看看會(huì)動(dòng)哪些分區(qū),。如果出了問題,,也知道該怎么做,而不是整天搞玄學(xué),,瞎折騰,。
4.gsi
通用系統(tǒng)映像 通用系統(tǒng)映像 (GSI) 是指已針對(duì) Android 設(shè)備調(diào)整配置的系統(tǒng)映像。GSI 可視為一種“純 Android”實(shí)現(xiàn),采用未經(jīng)修改的 Android 開源項(xiàng)目 (AOSP) 代碼,,在任何運(yùn)行 Android 8.1 或以上版本的 Android 設(shè)備上都可以順利運(yùn)行,。
GSI 用于運(yùn)行 VTS 和 CTS-on-GSI 測(cè)試。為確保運(yùn)行最新版 Android 的設(shè)備正確實(shí)現(xiàn)供應(yīng)商接口,,您需要將 Android 設(shè)備的系統(tǒng)映像替換為 GSI,,然后使用供應(yīng)商測(cè)試套件 (VTS) 和兼容性測(cè)試套件 (CTS) 來測(cè)試設(shè)備。
得益于Google的treble項(xiàng)目,,系統(tǒng)適配時(shí),,可以相對(duì)獨(dú)立于vendor。
這個(gè)不僅適用于aosp,,對(duì)廠商的定制UI同樣適用,。
目前,主流的gsi制作工具有兩個(gè):
erfan的gsi
還有小新大大的sgsi
后者只適用于高通平臺(tái),。
三、主流系統(tǒng)的介紹
首先,,需要明確一下offcial和unofficial的區(qū)別,。
offcial顧名思意,就是項(xiàng)目官方發(fā)布的,。
這要求ROM編譯時(shí),,必須通過官方的編譯服務(wù)器編譯,這樣出來的包,,才能叫offcial,。 能有offcial,一般就意味著該設(shè)備有穩(wěn)定的維護(hù)者,,會(huì)比較穩(wěn)定,,但基本上也只是這些了。
unofficial一般是指除官方編譯服務(wù)器之外的設(shè)備編譯的,,即便是設(shè)備的維護(hù)者,,在自己的電腦上,仍然是unofficial,。它并不是之前有人理解的,,在offcial的基礎(chǔ)上二次打包而成的
unofficial一般也沒啥問題,因?yàn)楹芏鄒nofficial都是設(shè)備官方的維護(hù)者編譯的,,可能因?yàn)楦鞣N原因,,沒有加入官方的編譯序列。除了不是offcial,,其它東西都是一樣的,。
但是,,仍建議留個(gè)心眼,,畢竟安全是第一位的
+++++++++++我是分割線++++++++++++
然后就是各主要項(xiàng)目的介紹及下載了
1,、首先肯定是大名鼎鼎的lineage os了
主頁:查看鏈接
lineage os 下載:查看鏈接
需要指出的是,lineage在國內(nèi)有高校鏡像站,,比如中科大,清華的兔娜,還有北外的,。
包括源代碼和已編譯好的ROM
如果原始地址訪問困難,可以來這里下載 2.魔趣 魔趣 主頁:查看鏈接 下載:查看鏈接
3.pixel experience簡(jiǎn)稱PE PE 主頁和下載: 查看鏈接
它有兩個(gè)版本:普通版和Plus版
普通和pixel手機(jī)的體驗(yàn)一致,,沒有自定義啥的,。 plus則有少部分自定義設(shè)置。
4.dot OS dotos 主頁:查看鏈接
這個(gè)ROM很花里胡哨,,叫類原生中的MIUI,,應(yīng)該沒錯(cuò)
然后還有 ancient,statix,,aospa,,還有那個(gè)東方相關(guān)的 ........
太多了,你自己探索吧,。
+++++++++++++分割線+++++++++++++
四,、系統(tǒng)的安裝(刷機(jī))
前期準(zhǔn)備:
首先,先安裝好你手機(jī)的驅(qū)動(dòng),,比如fastboot之類的,,具體請(qǐng)自行百度,然后下載前面提到的sdk套件,。
第二步,,備份你的數(shù)據(jù),這里推薦使用這個(gè)應(yīng)用來備份app,,一會(huì)兒刷完了會(huì)用到,。 應(yīng)用: 【應(yīng)用備份和還原】 然后把a(bǔ)pp和重要的數(shù)據(jù)一同拷到電腦上。
第三步,,解鎖手機(jī)的bootloader,,這一部分也是因機(jī)型而異,自己百度,。
第三步,,根據(jù)你要刷什么下載相應(yīng)的東西。 比如,,線刷包,,卡刷包,第三方recovery等,。
1.線刷 前面你已經(jīng)知道了bootloader,,也知道了Android的主要分區(qū),現(xiàn)在就到了fastboot出場(chǎng)的時(shí)候了。
fastboot是之前adb工具包里的一個(gè)組件,,它可以告訴bootloader,,把要刷的鏡像放到哪個(gè)分區(qū)。
所謂的線刷,,其實(shí)就是通過fastboot,,把這些鏡像推送到指定的分區(qū)。
這里只說一下fastboot應(yīng)該怎么用:
如果你解鎖了bootloader,,那你應(yīng)該知道如何打開手機(jī)的adb 調(diào)試,。
打開調(diào)試后,將手機(jī)連接到你的電腦
打開你下載的sdk目錄 然后在上面的地址欄里輸入:cmd 按回車 就會(huì)彈出一個(gè)黑色的控制臺(tái)窗口 現(xiàn)在重啟到bootloader或recovery 輸入: adb reboot bootloader
按回車,,手機(jī)如果授權(quán)了,,就會(huì)進(jìn)入bootloader模式。
如果輸入:
adb reboot recovery
則進(jìn)入recovery模式
大佬們的工具,,其實(shí)封裝的也是這些命令,。
一般來說,正經(jīng)的線刷包,,都會(huì)提供一鍵刷入的腳本,,畢竟那么多分區(qū),總不能自己手動(dòng)一個(gè)個(gè)刷吧
因此,,這里我只演示如何刷入一個(gè)第三方recovery。
這里分兩種情況:
對(duì)于Aonly的設(shè)備:
在剛才的控制臺(tái)中,,輸入
fastboot flash recovery <你下載的recovery>
或者:
在輸入fastboot flash recovery 后,,直接把你下載的recovery.img拖進(jìn)窗口 像這樣 然后,按回車 這就是失敗的,,因?yàn)檠菔镜倪@部機(jī)器分區(qū)是A/B構(gòu)造的,,沒有獨(dú)立的recovery分區(qū)。 同理,,如果你要刷gsi,,那gsi只有system分區(qū),
那命令就是:
fastboot flash system <你的鏡像>
fastboot是組件名 flash是這個(gè)組件里的命令 system是要刷入的分區(qū)名,,boot,,vendor都是同理。 最后就是你要刷入的文件
線刷就到這里了,。 +++++++++++++++++++++++++++++++++
2.接下來就是卡刷
前面我們已經(jīng)知道了什么是recovery,,以及一個(gè)刷機(jī)包里都有啥,也知道了一個(gè)刷機(jī)包是可以被簽名的,。
其實(shí),,recovery的主要功能和fastboot一樣,都是把指定的文件放入到指定的位置。
既然手機(jī)里有recovery,,那為啥還需要第三方recovery呢,?
原因很簡(jiǎn)單,因?yàn)樗C(jī)包有簽名,。為了安全,,官方的recovery只認(rèn)廠商的簽名,,如果不一致,那recovery就會(huì)拒絕執(zhí)行接下來的內(nèi)容,也就刷不了第三方,。
既然不能解決提出的問題,那就把提出問題的人解決掉
這時(shí)候,第三方的recovery就出現(xiàn)了,,它可以選擇校驗(yàn)簽名,也可以選擇不校驗(yàn),,一切都取決于你,,這樣就解決了簽名問題。
現(xiàn)在主流的第三方recovery主要有: twrp 查看鏈接
橙狐(orange fox) 查看鏈接
shrp等 查看鏈接
注意: recovery并不是通用的,,需要嚴(yán)格的對(duì)應(yīng)自己的機(jī)型,,它和ROM一樣,,都是需要適配自己機(jī)型的。
至于如何去找,就需要你自己爬機(jī)型的論壇了,。
那如何刷入第三方recovery,?
首先是Aonly:
因?yàn)橛歇?dú)立的recovery分區(qū),,因此它可以一直保留下來。
具體的刷入,,上一節(jié)已經(jīng)說了,。
bootloader模式下用fastboot flash 命令直接刷入
成功以后,,直接輸入
fastboot reboot recovery
就可以重啟到新的recovery里了。
++++++++++我是分割線++++++++++
現(xiàn)在重點(diǎn)說一下A/B分區(qū)的:
前面已經(jīng)說到,,這類機(jī)器沒有獨(dú)立的recovery分區(qū),,那怎么辦呢,?
先說一下雙分區(qū)機(jī)型recovery的工作方式吧,。
比如說,,你現(xiàn)在處于slot A,,就是A分區(qū)處于激活狀態(tài),,那安裝系統(tǒng)時(shí),,系統(tǒng)會(huì)被裝到未被激活的B分區(qū),反之亦然,。
那就有兩個(gè)選擇 選擇一: 直接使用fastboot boot命令,。
通過fastboot直接啟動(dòng)下載的recovery鏡像,而不寫入到手機(jī)的閃存中,。
具體的命令就是 fastboot boot <你的recovery鏡像>
回車確認(rèn)后,,手機(jī)會(huì)自動(dòng)進(jìn)入recovery模式 然后進(jìn)入你的第三方recovery里,。
命令 執(zhí)行后的反饋 手機(jī)端的反應(yīng) 設(shè)置中文 允許修改 twrp的主界面 你可能會(huì)問,我刷完以后,,如何切換分區(qū)呢,?
點(diǎn)擊
重啟
可以看到 當(dāng)前我們處于B分區(qū),那就點(diǎn)擊分區(qū)A 可以看到已經(jīng)激活A(yù)了 這時(shí)候,,再重啟就是A分區(qū)處于活躍狀態(tài)了。 如果剛才你已經(jīng)安裝了系統(tǒng),,并格式化了data,,這時(shí)候你選擇重啟系統(tǒng),那應(yīng)該就可以進(jìn)入新系統(tǒng)了,。
注意,,因?yàn)槭鞘褂玫腷oot命令,,recovery并沒有寫到手機(jī)里,這時(shí)候重啟,,recovery會(huì)直接消失,。
如果你需要刷寫另一個(gè)分區(qū),在激活A(yù)分區(qū)以后,,點(diǎn)擊返回,。
選擇重啟到bootloader,然后重復(fù)以上步驟即可,。 再重復(fù)一遍 recovery下的系統(tǒng)安裝啥的操作,,A/B和Aonly都是一樣的。 你只需要搞清楚哪個(gè)分區(qū)是出于活躍狀態(tài)即可,。
另一種方法:
還記得前面說過,,雙分區(qū)機(jī)器的boot和recovery分區(qū)是合在一起的嗎?
那就直接把recovery鏡像刷到boot分區(qū)里,,這時(shí),,啟動(dòng)就會(huì)直接進(jìn)入recovery
原理和方法一一樣。
+++++++++++++++++++++++++
3,、recovery下,,刷機(jī)包的刷入方式
這一部分,A/B分區(qū)和Aonly都是一樣的,,故一起介紹,。
首先,recovery的功能大致都是這樣的,,我這個(gè)是twrp,,還有一些更好看的,功能上大同小異,。 twrp 安裝,,不必多說 如果你的recovery支持解密,看到的就是上面的內(nèi)容,。 如果是一片亂碼,,那也不要慌,后面有辦法解決,。
然后是清除 清除 注意,,清除和格式化是不一樣的。二者雖然都會(huì)丟數(shù)據(jù),,但格式化是重建文件系統(tǒng),。
備份和恢復(fù)的話,主要是備份相關(guān)分區(qū)的內(nèi)容,。
掛載是Linux里的名詞,,你要對(duì)某一個(gè)文件系統(tǒng)操作,,首先要安裝它。
高級(jí)里,,就是一些特殊的配置之類的 高級(jí) 了解完了,,那我們就開搞了。
5,、刷入
還記得你之前下載的刷機(jī)包嗎,? 如果你的recovery可以正常解密,并且當(dāng)時(shí)也是使用手機(jī)下載的話,,那就可以直接在“安裝”選項(xiàng)中,,找到你的刷機(jī)包。 我的刷機(jī)包文件 選擇以后 滑動(dòng)按鈕,,確定刷入 等待即可
也可以看到,,當(dāng)前系統(tǒng)正在安裝到B分區(qū) 完成以后,返回主頁,,點(diǎn)清除,,選擇格式化data分區(qū) 輸入yes 我就不搞了,要數(shù)據(jù)
到這里,,如果你是Aonly的機(jī)器,,在格式化完成以后,就直接可以重啟進(jìn)入新系統(tǒng)了,。
如果是A/B,,剛才也看到了,我們把系統(tǒng)裝在了B分區(qū),,但當(dāng)前卻是A分區(qū),,如果你直接重啟,那就會(huì)出現(xiàn)recovery什么也沒做的假象
因此需要在重啟里,,將活躍分區(qū)設(shè)為B 當(dāng)前為A,,現(xiàn)在需要改成B 最后重啟系統(tǒng),完成
五,、root及面具的介紹
Root —— 玩家與廠商間的博弈
Android 從誕生之日起就高舉著開源的大旗,,這也是它成功的原因之一。而它的開放性也成功的吸引到了一大批愛折騰的人,,從而誕生出了 root(此處特制 Android 中的 root),。
根據(jù) Wikipedia 的釋義,root 指的是使用戶取得 Android 操作系統(tǒng)的超級(jí)用戶(Super User)許可權(quán)的技術(shù),。用戶通過 root,,可以越過手機(jī)制造商的限制,卸載手機(jī)制造商預(yù)裝在手機(jī)中某些應(yīng)用,以及運(yùn)行一些需要超級(jí)用戶權(quán)限的應(yīng)用程序,。同時(shí),root 也可能會(huì)讓手機(jī)變得“不安全”(并不是說 root 使手機(jī)變得不安全,而是一些用戶的使用習(xí)慣會(huì)使 root 后的手機(jī)變得危險(xiǎn)),。
但是從棉花糖(Android 6.0)開始,,Google 基本阻止了以前版本中最流行的 root 方法 —— 即,將 su守護(hù)程序 放置到 /system 分區(qū),,并在啟動(dòng)時(shí)取得所需的權(quán)限,。道高一尺,魔高一丈,,于是就出現(xiàn)了 systemless 的 root 方式,,因?yàn)樗徊扇∪魏畏绞叫薷?/system 分區(qū)。
出于增加安全性的考慮,,Google 推出了 SafetyNet 這樣的檢測(cè),,以確保 Android Pay 等一些 App 的安全運(yùn)行,玩家不得不在 root 權(quán)限和一些有價(jià)值的 App 之間作出選擇,。
這個(gè)時(shí)候 Magisk 誕生了,。
Magisk
什么是 Magisk
Magisk 是出自一位臺(tái)灣學(xué)生 @topjohnwu 開發(fā)的 Android 框架,是一個(gè)通用的第三方 systemless 接口,,通過這樣的方式實(shí)現(xiàn)一些較強(qiáng)大的功能,。
看似很簡(jiǎn)單的一個(gè)框架,甚至與大名鼎鼎的 Xposed 框架在功能性上有點(diǎn)重復(fù),。很多人批評(píng) Magisk的模塊太少了,,想替代 Xposed 根本不可能(在那個(gè) Xposed Framework for Android 7.0 難產(chǎn)的時(shí)代,很多人將 Magisk 看是做是 Xposed 的替代品),。這是不正確的,,因?yàn)?Magisk 從來沒有想過要代替 Xposed ,Magisk 與 Xposed 是可以互相兼容的,,你甚至可以通過 Magisk 來安裝 Xposed(安裝 Xposed 后就不能繞過 SafetyNet 了),。
Magisk 的厲害之處在于它實(shí)現(xiàn)了一種繞過 SafetyNet 使用 root 的方法。
實(shí)現(xiàn)原理:由于它是通過啟動(dòng)時(shí)在 boot 中創(chuàng)建鉤子,,把 /data/magisk.img 掛載到 /magisk,,構(gòu)建出一個(gè)在 system 基礎(chǔ)上能夠自定義替換,增加以及刪除的文件系統(tǒng),,所有操作都在啟動(dòng)的時(shí)候完成,,實(shí)際上并沒有對(duì) /system 分區(qū)進(jìn)行修改(即 systemless 接口,以不觸動(dòng) /system 的方式修改 /system),。
刷入方式:
首先下載最新的面具安裝包,,現(xiàn)在已經(jīng)實(shí)現(xiàn)了一個(gè)包解決安裝和管理的安裝。
下載地址: 最新的已經(jīng)是23.0了
查看鏈接
下載的apk直接丟進(jìn)recovery里安裝即可。
2.谷歌框架的安裝 這里使用opengapps 下載鏈接: 查看鏈接
Android 11的 查看鏈接
選擇你的安卓版本,,芯片架構(gòu),,現(xiàn)在新的設(shè)備一般都是arm64了吧。
stock包含的內(nèi)容和谷歌手機(jī)一致,。 不是深度用戶,,一般nano就夠了。
壓縮包的安裝方法與前面的系統(tǒng)安裝一樣,。
六,、雜項(xiàng)配置
原生安卓的后臺(tái)管理屬于放養(yǎng)式,無法適應(yīng)國內(nèi)的軟件環(huán)境,,因此需要輔助一下,。
后臺(tái)管理我一般使用黑域
其它的功能你自己慢慢探索吧
就到這兒吧,不想寫了
有問題歡迎評(píng)論區(qū)留言,。
|