系統(tǒng)更新導(dǎo)致死機(jī)問題有解了 Android 11支持A/B無(wú)縫更新
4月8日消息,據(jù)XDA報(bào)道,谷歌要求Android 11設(shè)備必須使用A/B分區(qū),以便支持無(wú)縫更新,這樣做可以大幅降低設(shè)備更新變磚、死機(jī)的幾率。
事實(shí)上,谷歌在Android 7.0時(shí)代就已經(jīng)推出了這種全新的系統(tǒng)更新方式,只是當(dāng)時(shí)谷歌并未強(qiáng)制要求廠商去推行,它叫做A/B seamless update,這里稱其為A/B無(wú)縫更新。
既然是一種全新的更新方式,自然是跟以前傳統(tǒng)系統(tǒng)更新方式有所區(qū)別。傳統(tǒng)的系統(tǒng)更新方式需要將手機(jī)置入Recovery模式安裝更新,安裝更新往往要花上幾分鐘到十幾分鐘不等,這個(gè)過(guò)程中你什么事情都做不了。原廠Recovery會(huì)將更新的臨時(shí)文件存放進(jìn)/cache分區(qū)里,這也就是/cache分區(qū)的主要目的。
按照谷歌的說(shuō)法,A/B系統(tǒng)更新(也稱為無(wú)縫更新)的目標(biāo)是確保在無(wú)線下載 (OTA) 更新期間在磁盤上保留一個(gè)可正常啟動(dòng)和使用的系統(tǒng)。采用這種方式可以降低更新之后設(shè)備無(wú)法啟動(dòng)的可能性,這意味著用戶需要將設(shè)備送到維修和保修中心進(jìn)行更換和刷機(jī)的情況將會(huì)減少,其他某些商業(yè)級(jí)操作系統(tǒng)(例如ChromeOS)也成功使用了A/B更新機(jī)制。
A/B無(wú)縫更新基本的工作原理:
假設(shè)你現(xiàn)在運(yùn)行的是位于A部分的底層和上層系統(tǒng)。
如果你的OTA更新包是增量更新包,更新包會(huì)自動(dòng)將這些A部分的底層和上層分區(qū)校驗(yàn)完整性,然后按照更新包里的內(nèi)容更新之后寫到B部分的對(duì)應(yīng)分區(qū)里。更新完成之后,手機(jī)會(huì)問你是否重啟,此時(shí)重啟之后,底層會(huì)自動(dòng)將下一個(gè)要啟動(dòng)的系統(tǒng)切換到B部分,重啟之后就是已經(jīng)更新之后的系統(tǒng)。
那么到了B部分之后,下一個(gè)更新來(lái)了怎么辦呢?
同樣的,也是將B部分的底層和上層分區(qū)校驗(yàn)完整性,然后按照更新包里的內(nèi)容更新之后寫到A部分的對(duì)應(yīng)分區(qū)里,然后讓你重啟,并切換到A狀態(tài)。
當(dāng)前已經(jīng)有越來(lái)越多的廠商在他們新推出的手機(jī)使用這種更新方式了,可以明顯看出這是將來(lái)Android陣營(yíng)的一大趨勢(shì)。