科技改變生活 · 科技引領未來
當Android的牛軋糖釋放出來,把我們談論各種各樣的新功能。我們為初學者提供了新近更新的用戶界面,以及期待已久的多窗口功能和Vulkan Graphics API支持。但是,在大多數用戶的腦海中浮現了一個幕后推手。Android Nougat在支持A / B分區的設備上引入了“無縫更新”?,F有的大多數Android設備(不包括新的Google Pixel和Google Pixel XL))當時沒有A / B分區,因此無法利用無縫更新。此功能的基本前提是設備具有第二組系統,啟動,供應商和其他重要分區,并且當您獲得OTA更新時,更新會在后臺進行,而第二組分區已打補丁,這使得您可以無縫地重新啟動進入更新的軟件版本。如果更新失敗,您將被踢回可正常使用的版本,這意味著公司將減少處理工作的麻煩,并且可以更好地保護消費者。
與Project Treble不同,任何新的Android設備都不需要支持無縫更新。因此,絕大多數新的Android設備均不支持該功能。到目前為止,我們一直在列出所有受支持的設備,并且很明顯,該功能并未得到廣泛支持。真可惜,因為A / B分區給普通用戶和高級用戶都帶來了很多好處。但是,該功能在發燒友社區中口碑不好,因為它使Android開發和更新自定義修改變得更加困難。實際情況并非如此,因此我們想揭開無縫更新的神秘面紗,并解釋A / B分區如何影響XDA上的自定義開發。
Android設備上的分區
分區只是電話內部存儲器上用于存儲數據的離散部分。每個分區上保留哪種數據取決于硬件,操作系統和許多其他因素。引導程序將只有一個,系統(Android OS)將只有一個,用戶數據將只有一個……依此類推。當您看到人們談論“ / system”和“ / cache”時,他們指的是這些分區的給定名稱。的萬普拉斯6,例如,有 72個的分區。聽起來很多,但onePlus 6是支持無縫更新的設備之一,這意味著這些分區中的許多分區都是彼此的簡單復制。
設備上有很多分區,您作為用戶不必擔心。在刷新自定義ROM,內核,恢復或Magisk或Xposed之類的修改時,絕不會修改這些分區中的許多分區。除非您知道自己在做什么,否則這些分區中的許多分區要么會出于我們的目的而未使用,要么太危險而無法觸摸(想到華為/ Honor設備上的XLOADER和OEMINFO。)對于絕大多數Android用戶而言,分區我們主要處理的是系統,啟動,恢復,用戶數據以及最近的供應商和vbmeta。這是每個分區用途的簡要說明:
系統–存放Android操作系統,系統庫,系統應用程序以及其他系統媒體,例如引導動畫,股票壁紙,鈴聲等。
引導–包含內核,虛擬磁盤以及A / B設備上的恢復
恢復–保留恢復,其中TWRP最常在僅A的設備上刷新(A / B設備沒有專用的恢復分區)
userdata –保存您所有的應用程序,系統和內部存儲數據
供應商–擁有平臺和設備專用的HAL,即Android OS與基礎硬件進行通信所需的文件
vbmeta – Android驗證啟動2.0的分區,用于驗證啟動過程的完整性
設備OEM可以更改其分區方案以使用所需的任何布局。例如,華為將引導分區分為ramdisk_recovery和內核。還有很多額外的分區可能包含其他系統應用程序,例如客戶,產品和OEM,盡管可以安全地進行修改,但是如果您想使自己更容易恢復庫存,通常不建議這樣做。那么A / B分區在哪里起作用?
A / B分區方案
如何通過無縫更新在設備上進行更新
我在下面制作的非常簡單的圖像說明了如何在具有A / B分區支持的設備上處理更新。所示的分區是系統分區,盡管其他分區(例如引導區和供應商區)也可以使用OEM提供的任何給定的OTA更新進行更新。此更新過程不僅會發生主要的Android版本更新,還會發生安全補丁更新。
王悅