Il modo in cui Google ha progettato e concesso in licenza Android è servito per promuovere l’adozione iniziale da parte degli OEM, ma quelle prime scelte di progettazione hanno portato ad anni di debiti tecnici accumulati che richiedono importanti impegni per essere affrontati. Lentamente ma inesorabilmente, Google sta riprendendo il controllo su Android per affrontare il problema della frammentazione e con Android 13 farà un altro passo in avanti.
Innanzitutto, ha modificato il framework Android principale con Project Treble e Generic System Image (GSI). Quindi ha preso di mira i componenti principali del sistema Android con Project Mainline. Più di recente, ha affrontato la frammentazione del kernel con la Generic Kernel Image (GKI). Il prossimo fronte nella guerra pluriennale di Google alla frammentazione è la virtualizzazione, cosa che verrà introdotta in Android 13 (insieme ad altre cose sul fronte tecnico).
La virtualizzazione su Android oggi è “il selvaggio West della frammentazione“, secondo Will Deacon del team Android Systems. Questo perché gli hypervisor possono o meno essere presenti su un dispositivo e, quando lo sono, spesso non vengono nemmeno utilizzati per lo scopo previsto, ovvero eseguire un sistema operativo in una macchina virtuale. Invece, sono usati per cose come migliorare la sicurezza del kernel (o almeno provare a farlo) ed eseguire codice vario (come codice di terze parti per DRM, crittografia e altri binari closed-source) al di fuori del sistema operativo Android.
Al fine di privare questo codice di terze parti e isolare quel codice da Android e altri programmi di terze parti, Google sta lavorando per portare una soluzione hypervisor comune sulla quale una macchina virtuale in esecuzione con lo stesso livello di privilegio del sistema operativo e il kernel eseguirà quel codice.
Esiste un meccanismo di virtualizzazione del kernel maturo chiamato KVM che è già supportato da Linux, quindi naturalmente Google sta scegliendo di implementarlo come hypervisor comune. E grazie ai continui sforzi di Google per ridurre la frammentazione del kernel, KVM può essere abilitato su un ampio spettro di dispositivi Android che spediscono una versione recente di GKI.
Per gestire queste macchine virtuali, Google sta portando su Android crosvm, il Virtual Machine Manager (VMM) basato su Rust utilizzato per eseguire app Linux su Chrome OS, e verrà distribuito ai dispositivi tramite un nuovo modulo Mainline chiamato “Virtualization” (com.android.virt).
Attualmente, nessun dispositivo Android sul mercato viene fornito con il modulo di virtualizzazione, nemmeno il Pixel 6 di Google, ma questo è destinato a cambiare con la prossima versione Android 13. Google, infatti, sta attualmente testando i suoi nuovi strumenti di virtualizzazione su Pixel 6.