Android Q beta 4 supporta i Dynamic System Updates: cosa sono e perché incarnano la rivoluzione per gli sviluppatori (video)

Vincenzo Ronca
Vincenzo Ronca
Android Q beta 4 supporta i Dynamic System Updates: cosa sono e perché incarnano la rivoluzione per gli sviluppatori (video)

Ieri sera Google ha rilasciato la quarta beta di Android Q, non molto ricca di novità per gli utenti finali che la stanno provando ma contenente alcuni interessanti spunti per gli sviluppatori. Il più interessante forse consiste nei Dynamic System Updates, quello che in precedenza Google ha chiamato Live Image, Dynamic Android o Android on Tap. Probabilmente avete provato qualcosa di simile anche voi in passato, nel mondo del modding si praticava il dual boot delle ROM che concettualmente è molto simile a queste feature.

Dynamic System Updates: cosa sono?

Oltre alle beta pubbliche di Android Q Google ha rilasciato anche le Generic System Image (GSI): la differenza è che le prime sono riservate a smartphone selezionati come i Pixel e altri pochi modelli mentre le GSI sono potenzialmente installabili su tutti i dispositivi che le supportano. Dunque le GSI, lanciate nell'ambito del Project Treble lanciato da Google con Android Oreo, rendono più accessibili le nuove versioni di Android in fase di sviluppo e tornano utili a quegli sviluppatori che vogliono testare le proprie app sulle nuove versioni Android.

Però il punto a sfavore esiste anche per le GSI: l'installazione richiede operazioni non semplici e non velocissime come lo sblocco del bootloader ed il reset dei dati personali sul dispositivo.

Ed è a questo punto che entrano in gioco i Dynamic System Updates (DSU): si tratta di sistemi operativi avviabili senza interferire con il sistema già installato sullo smartphone e senza toccare i dati memorizzati in esso. L'installazione è molto semplice, basta qualche riga di comando in modalità ADB. Il video in fondo all'articolo mostra un Pixel 3 XL con la beta 3 di Android Q che si avvia con la GSI distribuita da Google.

Requisiti per il supporto ai Dynamic System Updates

Questo tipo di immagini di sistema necessita di partizioni dinamiche sul dispositivo: parliamo di partizioni ridimensionabili in base al contesto di utilizzo. All'occorrenza deve essere possibile ripartizionare la memoria del device secondo le classiche system, vendor, odm, oem, product ecc.

Parlando in generale, i requisiti per il supporto ai DSU sono i requisiti necessari alla compatibilità con Android Q, secondo Iliyan Malchev, il capo di Project Treble in Google.

Dunque questi requisiti sono sicuramente soddisfatti dalla seconda e terza generazione di Google Pixel.

La sicurezza dei Dynamic System Updates

Un aspetto non trascurabile di questa importante novità introdotta da Google è quello della sicurezza: i DSU sono dei sistemi operativi a tutti gli effetti e come tali devono garantire determinate condizioni di sicurezza per l'utente. Perciò nei DSU sono stati integrati gli stessi protocolli integrati nelle immagini di sistema standard, ovvero il Verified Boot di Android e la policy SELinux.

Inoltre, Google ha deciso di implementare nei DSU anche un protocollo aggiuntivo denominato Checkpoint: questo avrebbe il ruolo di protezione delle partizioni dedicate allo storage dei dati personali, impedendone la distruzione anche in caso di intrusione esterna. Questo tipo di protocollo è anche impiegato nei device con partizioni di tipo A/B per garantire il rollback dagli aggiornamenti eseguiti via OTA.

Installazione di una GSI tramite DSU

Per procedere all'installazione ovviamente il requisito di base è possedere un dispositivo compatibile come uno dei Pixel 3. Quindi si può procedere ai passaggi successivi:

  1. Abilitare i Dynamic System mediante le Opzioni Sviluppatore alla voce Feature flags se ci si trova su una build userdebug. Altrimenti sarà necessario eseguire il seguente comando adb shell: setprop persist.sys.fflag.override.settings_dynamic_system 1
  2. Scaricare la beta di Android Q in forma GSI da questo indirizzo.
  3. Convertire la GSI appena scaricata in un'immagine di sistema raw mediante simg2img e poi impacchettarla in formato zip. Successivamente posizionarla in memoria del vostro smartphone, magari nella cartella Download.
  4. Procedere all'installazione della GSI mediante il comando
adb shell am start-activity \ -n com.android.dynsystem/com.android.dynsystem.VerificationActivity \ -a android.os.image.action.START_INSTALL \ -d file:///storage/emulated/0/Download/system_raw.gz \ --el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \ --el KEY_USERDATA_SIZE 8589934592

Una volta conclusa l'installazione il device si riavvierà con la nuova GSI.

Considerate che non è indicata per un uso quotidiano ma sicuramente concepita per il test da parte degli sviluppatori di terze parti. Le immagini in galleria vi forniscono ulteriori esempi di come potrebbe essere avviata la GSI mediante DSU.

Futuro dei Dynamic System Updates

Tutti quelli che sperano nei DSU come un futuro e reale dual boot per sistemi Android saranno delusi. I Dynamic System Updates non vanno intesi come una soluzione che offra due sistemi operativi sullo stesso device agli utenti finali. Google li ha sviluppati come un'evoluzione ed una semplificazione delle Generic System Image: lo scopo finale è infatti permettere alla platea più grande possibile di testare le nuove versioni Android. Seguendo questa linea ne giova Google, gli sviluppatori, i produttori di smartphone che personalizzano Android e indirettamente gli utenti finali.

Fonte: XDA