Android dinamico consentirà agli sviluppatori di testare AOSP su qualsiasi dispositivo Android Q

Un nuovo progetto chiamato Dynamic Android consentirà agli sviluppatori di testare i GSI AOSP Android Q su qualsiasi dispositivo con Android Q o versioni successive.

Grazie a Progetto Treble, i produttori di dispositivi smartphone hanno fornito gli aggiornamenti software Android Pie più velocemente di quanto fossero in grado di fare per l'aggiornamento Android Oreo, almeno per gli smartphone di punta. Tuttavia, Google non vuole che solo gli OEM raccolgano i vantaggi di Project Treble. L'azienda ha già fatto espresso interesse nel rilasciare un'immagine di sistema generica (GSI) di Android Q per gli sviluppatori in modo che non debbano fare affidamento sugli emulatori, utilizzare un servizio cloudoppure attendere un aggiornamento sul proprio dispositivo per testare un'app rispetto al livello API più recente. In teoria, il rilascio di un GSI dovrebbe consentire a qualsiasi sviluppatore con un dispositivo compatibile con Project Treble (originariamente Android 8.0 Oreo e versioni successive, ma ora vengono considerati solo i dispositivi che si avviano con Android 9 Pie) per testare l'ultimo Android versione. Tutto ciò che lo sviluppatore deve fare è eseguire il flashing di un'immagine di sistema sull'installazione del software esistente, senza bisogno di un'immagine di ripristino, avvio o fornitore personalizzata.

Tuttavia, esistono diversi problemi con l'attuale processo di installazione di GSI. Innanzitutto, hai bisogno di un bootloader sbloccato, che non è possibile sui dispositivi Huawei o Honor (senza pagare una tassa), i dispositivi Nokia di HMD Global (esclusi i Nokia8) o dispositivi con marchio di operatore statunitense. Successivamente, il processi sarà difficile per chi non ha familiarità con il flashing delle immagini tramite fastboot. Infine, per eseguire il flashing di un GSI ora sarà necessario cancellare completamente la memoria interna, il che significa che probabilmente vorrai un dispositivo di riserva su cui testare. Al momento, eseguire il flashing di un GSI è qualcosa che gli OEM utilizzano solo per testare la compatibilità di Project Treble sui propri dispositivi e, oltre a ciò, è attraente solo per gli irriducibili appassionati di ROM personalizzate. Il nuovo progetto "Dynamic Android" di Google potrebbe cercare di cambiare la situazione.

Android dinamico: testa facilmente i GSI AOSP su qualsiasi dispositivo Android Q

Negli ultimi mesi, Google ha lavorato su un modo per avviare in modo sicuro un GSI senza dover sbloccare il bootloader. In breve, Google sta sviluppando un'app dotata di autorizzazioni speciali che le consentono di scaricare un GSI, riservargli spazio di archiviazione e contrassegnare il GSI come avviabile. Ci sono diversi componenti in questo progetto, quindi discutiamoli uno per uno.

Android dinamico e Android alla portata di mano

Due nuovi servizi vengono aggiunti ad Android Q: i servizi Dynamic Android e Android On Tap. Mentre Dynamic Android gestisce l'installazione di un GSI, Android On Tap informa le app di sistema con richiamate e intenti di trasmissione. Ad esempio, Android On Tap avvisa KeyguardManager per chiedere all'utente di confermare una richiesta di installazione se il dispositivo è protetto da PIN, password o sequenza. AOT avvisa inoltre l'utente quando viene avviato in un GSI.

Secondo la descrizione di "DynamicAndroidManager", il servizio "offre un meccanismo per utilizzare un nuovo Android immagine temporaneamente." Dopo l'installazione, il dispositivo può riavviarsi nell'immagine appena installata con un file /data. Il riavvio in GSI riporta l'utente all'immagine del sistema originale, ma l'immagine appena installata e i relativi dati vengono semplicemente disabilitati e non eliminati. Se l'utente sceglie di farlo, il GSI e i suoi dati possono tuttavia essere completamente rimossi.

Fonti: [1], [2], [3], [4]

GSID

Il demone GSI alloca spazio nella partizione /data per archiviare l'immagine GSI e i relativi dati e per rendere l'immagine avviabile. I metadati del GSI sono archiviati in /metadata, mentre il GSI stesso e i suoi dati sono archiviati in /data/gsi. Per impostazione predefinita, GSID alloca 8 GB di dati utente per il GSI appena installato. In generale, GSID cerca almeno il 40% di spazio libero prima di iniziare l'installazione. Infine, il demone impedisce all'utente di installare un GSI all'interno di un GSI, per ovvi motivi.

Fonti: [1], [2], [3], [4]

Sicurezza

Android Verified Boot (AVB) è abilitato per l'immagine di sistema EXT4 appena installata (system_gsi montato su /system). Google ha anche implementato le politiche SELinux per i nuovi servizi. Infine, l'installazione di un GSI richiede che un'app disponga della nuova autorizzazione MANAGE_DYNAMIC_ANDROID. Si tratta di un'autorizzazione a livello di firma, il che significa che l'app deve essere firmata dall'OEM.

Fonti: [1], [2]

Comandi ADB e Fastboot

I GSI saranno installabili anche tramite nuovi comandi ADB. Il nuovo comando shell ADB gsi_tool consentirà agli utenti di disabilitare, riabilitare, installare e preservare userdata, installa e crea userdata, installa e cancella userdata o controlla lo stato di installazione.

gsi_tool - command-line tool for installing GSI images.

Usage:
gsi_tool <disable|install|wipe|status> [options]

disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus

Verranno aggiunti due nuovi comandi fastboot per gestire GSI, sebbene l'installazione fastboot non sia supportata poiché fastboot non può montare i dati utente.

fastboot gsi wipe
fastboot gsi disable

Fonti: [1], [2]

Chi ne trarrà beneficio?

Voglio dire che gli sviluppatori di app potranno sfruttare Dynamic Android e Android On Tap, ma non ne sono del tutto sicuro. Sebbene Google abbia espresso interesse proprio per questo, non esiste alcuna garanzia che questa funzionalità sarà disponibile in ogni versione di Android Q OEM non Google. Per trarne vantaggio sul dispositivo, il software necessita di un'app di selezione GSI firmata dallo stesso certificato del ROM. Inoltre, non sono sicuro che l'installazione di GSI da ADB sarà possibile senza root ADB a causa delle politiche di SELinux.Aggiornamento: Un nuovo commettere conferma che sarà richiesto il root ADB per utilizzare GSI_tool. Se questo non è destinato agli sviluppatori di app per testare le loro app su una build pulita di Android, probabilmente lo farà solo avvantaggiano gli ingegneri degli OEM che desiderano testare la Compatibility Test Suite (CTS) e la Vendor Test Suite (VTS) sui propri dispositivi.

Un ringraziamento speciale allo sviluppatore riconosciuto XDA luca020400 per il suo aiuto in questo articolo.