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