Android 11正式發(fā)布: 刷機(jī)不再變磚?Recovery分區(qū)成為歷史!
Google近日正式發(fā)布了安卓11。Android 11 來了沒錯(cuò),安卓11的底層又有了不少大變化!所帶來的劇變,會(huì)深刻影響廣大用戶,今天就一起來聊聊吧。對(duì)于這個(gè)最新一代安卓系統(tǒng),所帶來的新功能新特性,自然頗具價(jià)值。
不過考慮到國(guó)內(nèi)往往會(huì)對(duì)原生安卓的功能進(jìn)行種種魔改,其實(shí)對(duì)于國(guó)內(nèi)用戶來說,影響有限。
安卓11對(duì)國(guó)內(nèi)生態(tài)影響最大的,可能還是一些底層變化,這也較少為人提及。
刷機(jī)不再變磚?Recovery分區(qū)成為歷史!
如果你是一名安卓刷機(jī)玩家,一定知道Recovery這個(gè)名詞。這是安卓系統(tǒng)中,用于恢復(fù)系統(tǒng)的模式,無論是廠商官方升級(jí)系統(tǒng),還是玩家刷入第三方ROM,通常需要通過Recovery來進(jìn)行。在安卓機(jī)中,還專門劃分了一個(gè)分區(qū)來放置Recovery,但這在安卓11中要成為歷史了。
刷機(jī)玩家再熟悉不過的Recovery 傳統(tǒng)的Recovery升級(jí)模式,如果寫入System系統(tǒng)分區(qū)的數(shù)據(jù)有誤,那么機(jī)器可能就無法啟動(dòng),刷機(jī)玩家應(yīng)該很熟悉這一類“變磚”的情況,甚至廠商OTA偶爾也會(huì)“變磚”。要如何避免?事實(shí)上,近年的新安卓機(jī)使用A/B分區(qū)機(jī)制,很多安卓機(jī)已經(jīng)不需要Recovery來引導(dǎo)升級(jí)。
Android系統(tǒng)啟動(dòng)方式的變更,之前需要經(jīng)由Recovery,使用A/B分區(qū)機(jī)制后直接通過boot來引導(dǎo)啟動(dòng) 在采用了A/B分區(qū)機(jī)制的安卓機(jī)中,當(dāng)系統(tǒng)需要升級(jí)的時(shí)候,會(huì)將新的系統(tǒng)寫入其中一個(gè)分區(qū),寫入成功后則從該分區(qū)啟動(dòng);如果寫入失敗,或者啟動(dòng)失敗,則從原分區(qū)啟動(dòng),這相當(dāng)于兩個(gè)系統(tǒng)分區(qū)相互備份,大大減少了系統(tǒng)升級(jí)的故障率。
安卓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),將差異部分寫入另一個(gè)分區(qū)而不是系統(tǒng)分區(qū);之后,利用新數(shù)據(jù)啟動(dòng)系統(tǒng),如果系統(tǒng)順利啟動(dòng),那么就將差異數(shù)據(jù)寫入到系統(tǒng)分區(qū),啟動(dòng)失敗則拋棄差異數(shù)據(jù),用原來系統(tǒng)分區(qū)的數(shù)據(jù)啟動(dòng)。
安卓11這個(gè)新機(jī)制既有A/B分區(qū)的可靠性優(yōu)點(diǎn),也無需像A/B分區(qū)那樣占據(jù)大量的額外空間。無論如何,Recovery分區(qū)都已經(jīng)遭到了遺棄,預(yù)裝安卓11的機(jī)器,出廠就沒有Recovery分區(qū),boot分區(qū)更多承擔(dān)起了以前Recovery分區(qū)的工作。Recovery是刷機(jī)不可或缺的工具,刷機(jī)玩家何去何從?恐怕得另覓出路了。
安卓11是有史以來最容易升級(jí)的安卓?
我們知道,Google一直為解決系統(tǒng)碎片化問題做努力,力求設(shè)備能夠升級(jí)最新版本的安卓。為此,Google作了很多努力,例如在安卓8.0中推行了Project Treble機(jī)制,將系統(tǒng)(Android OS framework)單獨(dú)分區(qū),和硬件驅(qū)動(dòng)(Vendor implementation)分離,此后廠商可以為設(shè)備單獨(dú)推送新版安卓,而不需要重新適配驅(qū)動(dòng)。
Project Treble將Google的安卓系統(tǒng)框架和硬件供應(yīng)商提供的驅(qū)動(dòng)作了分離 Project Treble大大簡(jiǎn)化了安卓系統(tǒng)的升級(jí)流程,但這還不夠。在安卓10當(dāng)中,Google推行了Project Mainline,將系統(tǒng)進(jìn)一步細(xì)分模塊化。在安卓10中,14個(gè)系統(tǒng)組件被Mainline化,媒體解碼器、權(quán)限控制器、網(wǎng)絡(luò)組件等系統(tǒng)組件,都可以像普通App一樣,通過應(yīng)用商店來更新——很多朋友發(fā)現(xiàn),今年安卓機(jī)的GPU驅(qū)動(dòng)竟然能夠獨(dú)立更新,就得益于此。
高通宣布GPU驅(qū)動(dòng)可以單獨(dú)更新 在安卓11中,Google又進(jìn)一步對(duì)安卓組件進(jìn)行細(xì)分,安卓的組件模塊達(dá)到了20個(gè)之多,安卓的系統(tǒng)維護(hù)將會(huì)變得前所未有地靈活。不僅如此,Google還將改制推行到了系統(tǒng)內(nèi)核當(dāng)中,安卓的Linux系統(tǒng)內(nèi)核升級(jí)將會(huì)變得更加靈活。
在當(dāng)前的安卓系統(tǒng)中,Linux系統(tǒng)內(nèi)核升級(jí)大體需要經(jīng)歷三個(gè)步驟。首先,Google選定一個(gè)Linux LTS版本作為安卓?jī)?nèi)核,打上安卓運(yùn)行所需要的Patch;接著,Google將這個(gè)內(nèi)核提交給高通等SoC供應(yīng)商,供應(yīng)商再次將其打造成為適配SoC的內(nèi)核;最后,三星等設(shè)備商再讓內(nèi)核適配不同的元器件,再次為內(nèi)核打上各種Patch,讓內(nèi)核成為真正可以在安卓機(jī)上運(yùn)行的版本。
傳統(tǒng)的Android系統(tǒng)Linux內(nèi)核升級(jí)流程,需要經(jīng)由重重環(huán)節(jié),非常麻煩 由于步驟繁瑣,因此當(dāng)前的安卓機(jī)一旦出廠,Linux內(nèi)核就很少變動(dòng),即使是Google旗下的Pixel設(shè)備,內(nèi)核也依然只是較為老舊的Linux 4.14。
而在安卓11中,情況有所變化,Google將系統(tǒng)內(nèi)核進(jìn)行了模塊化修改,內(nèi)核被分成了Generic Kernel Image(GKI)和其他GKI模塊。如果想要升級(jí)Linux版本,Google可以直接面向安卓機(jī)推送GKI,手機(jī)直接升級(jí)GKI即可,再也不需要經(jīng)歷從SoC廠商到手機(jī)設(shè)備廠商的繁瑣步驟。
Android 11開始,內(nèi)核進(jìn)行了模塊化,一個(gè)GKI內(nèi)核可以通用于市面上的大量安卓機(jī) 據(jù)了解,安卓11的這一特性,在內(nèi)核版本高于Linux 5.4以上的設(shè)備上,是要求強(qiáng)制執(zhí)行的。可以說,如果安卓11的設(shè)備出廠內(nèi)核版本就是Linux 5.4以上,那它有可能會(huì)是史上最容易升級(jí)的安卓。
安卓存儲(chǔ)目錄文件夾亂象徹底解決?
相信不少人發(fā)現(xiàn),安卓機(jī)用久了以后,存儲(chǔ)目錄下就會(huì)多出很多奇奇怪怪的文件夾,這些文件夾是由各種App生成的,這其實(shí)是一個(gè)歷史遺留問題。
安卓機(jī)的內(nèi)部存儲(chǔ)目錄一度非常小,例如經(jīng)典的Milestone的ROM只有512M,需要用SD卡擴(kuò)展存儲(chǔ)空間,因此安卓App往往會(huì)將文件保存在外部存儲(chǔ)目錄下(也就是sdcard目錄)。而安卓在4.3版本前并沒有提供外部存儲(chǔ)目錄的規(guī)范,App習(xí)慣在sdcard目錄中隨意建立自己的文件夾,這個(gè)習(xí)慣一直保留到如今。
現(xiàn)在,盡管安卓建立了sdcard目錄的存儲(chǔ)規(guī)范,例如安卓系統(tǒng)規(guī)定App如果要在內(nèi)部存儲(chǔ)空間建立文件夾,需要建立到/data/data/目錄下,在外部存儲(chǔ)空間則需要建立在/sdcard/Android/data/目錄下。然而這一規(guī)范并非是強(qiáng)制性的,很多App由于使用第三方SDK等各種各樣的原因,視安卓的存儲(chǔ)目錄規(guī)范不見,依然在sdcard目錄下自建文件夾,安卓存儲(chǔ)目錄的混亂由此而來。
在安卓11中,文件夾亂象終于有望得到徹底解決。安卓11將不再允許App在sdcard建目錄和文件,APP只能夠往特定目錄的私人文件夾寫入數(shù)據(jù)。目前某些APP已經(jīng)開始為此做準(zhǔn)備,例如新版QQ將存儲(chǔ)目錄從/sdcard/tencent/變更到了/sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是為了適應(yīng)安卓的存儲(chǔ)新機(jī)制。
安卓11是一個(gè)從里到外都進(jìn)行了重大改革的版本,它解決了安卓的很多歷史問題,大家共同期待吧。