在Android 13首次引入的Android虛擬化框架(Android Virtualization Framework,AVF),現(xiàn)在將在更多的Android 14設(shè)備上提供。在Android 14中,Google還添加了一套新的工具包,讓開(kāi)發(fā)者能夠更好地使用AVF及其組件。
Google由于要強(qiáng)化Android設(shè)備的安全性,因此在Android 13加入了AVF。AVF是一個(gè)在Android設(shè)備上執(zhí)行虛擬機(jī)的技術(shù),該架構(gòu)的主要作用是隔離應(yīng)用程序與系統(tǒng)之間的數(shù)據(jù)和操作,AVF讓虛擬機(jī)成為Android操作系統(tǒng)的核心組件,類似Android利用Linux程序的方式。
AVF提供單向隔離與雙向隔離兩種隔離等級(jí),單向隔離讓Android系統(tǒng)可以控制和檢查虛擬機(jī)中的內(nèi)容,最常用于沙盒(Sandboxing)與分離(Separation)技術(shù),使多個(gè)操作系統(tǒng)能夠在單一設(shè)備上運(yùn)行,并由Android控制和監(jiān)視其他所有操作系統(tǒng)主機(jī)。而雙向隔離則是指Android和虛擬機(jī)(Isolated VM)彼此完全隔離,隔離的虛擬機(jī)將可用于處理或是存儲(chǔ)敏感數(shù)據(jù),由于Android和虛擬機(jī)都無(wú)法相互訪問(wèn),因此需要通過(guò)特定信道才能溝通。
在部分情況,AVF成了可替代Android Trustzone的機(jī)制,TrustZone是一種在Arm架構(gòu)處理器上實(shí)現(xiàn)的安全技術(shù),提供了安全的執(zhí)行環(huán)境與硬件層級(jí)的隔離保護(hù)。而Google表示,運(yùn)用AVF的雙向隔離,開(kāi)發(fā)者可以在Android中執(zhí)行需要隔離,但是不需要提升特權(quán)的用例。也就是說(shuō),AVF提供的隔離虛擬機(jī)可以在不增加系統(tǒng)特權(quán)的情況下,對(duì)應(yīng)用程序數(shù)據(jù)進(jìn)行安全隔離,這樣的隔離機(jī)制特別適用于保護(hù)敏感數(shù)據(jù)和執(zhí)行重要操作。
AVF還具有可移植性的優(yōu)勢(shì),Google提到,虛擬機(jī)和其中執(zhí)行的應(yīng)用程序,比可信任小程序(Trusted Applet)還更具可移植性,官方舉例,具有Linux應(yīng)用程序負(fù)載的Linux虛擬機(jī),能夠在所有支持AVF設(shè)備上的執(zhí)行。這代表開(kāi)發(fā)者只需要構(gòu)建一次應(yīng)用程序,就能夠部署到其他地方,這與移植到Trustzone操作系統(tǒng)相比,借由虛擬機(jī)的方式,還可以簡(jiǎn)單地移植現(xiàn)有Linux應(yīng)用程序。
在性能方面,AVF設(shè)計(jì)上講究高效且靈活,虛擬機(jī)可以非常迷你,小至單獨(dú)的C程序,也可以大到操作系統(tǒng)規(guī)模,虛擬機(jī)可以根據(jù)需求設(shè)計(jì)成持續(xù)或是家歇運(yùn)行,也能根據(jù)整體系統(tǒng)健康狀態(tài)和資源分配,并遵守Android調(diào)度提示和低內(nèi)存警告,與操作系統(tǒng)良好地協(xié)作。
Google在Android 14擴(kuò)大AVF的可用性,讓AVF能夠在更多的設(shè)備上可用,同時(shí)對(duì)AVF開(kāi)了Android系統(tǒng)API,允許特權(quán)應(yīng)用程序使用虛擬機(jī),執(zhí)行需要隔離的重要工作負(fù)載。開(kāi)發(fā)者也可以通過(guò)虛擬機(jī)管理程序DevEx工具包,關(guān)注監(jiān)控虛擬機(jī)的運(yùn)行,更方便地進(jìn)行調(diào)試。
Google的合作伙伴也可以使用虛擬機(jī)管理程序供應(yīng)商模塊,自訂Google虛擬機(jī)管理程序(pKVM)滿足特定需求。AVF在Android 14的運(yùn)行性能也更好,基于microdroid的虛擬機(jī)啟動(dòng)速度是Android 13的2倍,內(nèi)存使用只有一半,能夠更好地支持特權(quán)應(yīng)用程序和平臺(tái)開(kāi)發(fā)。