I nuovi dispositivi Android 11 potrebbero non supportare l'A/B virtuale per gli aggiornamenti continui

Google ha fatto marcia indietro nel richiedere agli OEM il supporto A/B virtuale sui nuovi dispositivi Android 11, il che avrebbe aperto la strada ad aggiornamenti senza interruzioni.

Aggiornamento 1 (25/01/2021 alle 14:06 ET): Prima del rilascio di Android 11, Google sembra aver fatto marcia indietro nel richiedere ai dispositivi di lancio il supporto A/B virtuale. Clicca qui per maggiori informazioni. L'articolo pubblicato il 7 aprile 2021 è conservato di seguito.

Con Android 7.0 Nougat, Google ha introdotto uno schema di partizione progettato per velocizzare gli aggiornamenti software. In Nougat, Google ha aggiunto il supporto per la duplicazione di determinate partizioni in modo che le partizioni inattive possano essere aggiornate in background e quindi scambiate con attive con un riavvio rapido. Questo La configurazione della "partizione A/B" consente "aggiornamenti continui" che avrà luogo sui dispositivi Android supportati, proprio come il sistema operativo Chrome di Google. Tuttavia, Google non ha mai imposto l'uso di partizioni A/B, così tanti dispositivi in ​​circolazione non supportano aggiornamenti continui. Ciò potrebbe cambiare con Android 11, tuttavia, poiché Google rende obbligatorio per i dispositivi appena lanciati il ​​supporto delle partizioni A/B virtuali.

Per un po' di background, le partizioni A/B si riferiscono all'insieme di partizioni di sola lettura che vengono duplicate. Le partizioni duplicate in genere includono le partizioni di sistema, fornitore, avvio e prodotto. Quando il telefono sta scaricando un aggiornamento, il programma di aggiornamento corregge il set di partizioni inattive (uno "slot") in background. Una volta completata l'applicazione dell'aggiornamento allo slot inattivo, all'utente viene richiesto di riavviare il dispositivo. Quando l'utente riavvia il proprio dispositivo, lo slot inattivo si scambia con lo slot attivo, terminando il processo di aggiornamento. Lo slot precedentemente attivo rimane intatto se si verifica un problema con l'avvio dello slot appena aggiornato. Quando arriva il prossimo aggiornamento, questo processo viene ripetuto. Se sei interessato ad una spiegazione più tecnica, fare riferimento alla documentazione per sviluppatori di Google su partizioni A/B.

Al contrario, i dispositivi senza partizioni A/B, come Samsung Galaxy S20, OPPO Find X2 e molti altri, applicano gli aggiornamenti tramite un programma di aggiornamento dedicato in un processo di ripristino. Ciò espelle l'utente da Android e lo rende incapace di utilizzare il proprio dispositivo per diversi minuti, potenzialmente perdendo notifiche, chiamate o messaggi importanti. Google ritiene che la semplificazione del processo di aggiornamento porti più persone a ricevere effettivamente un aggiornamento una volta lanciato; infatti, nel maggio del 2017, Google lo ha trovato una percentuale più elevata di utenti Pixel rispetto agli utenti Nexus utilizzava l'ultimo aggiornamento di sicurezza. Naturalmente, l'utente può pianificare gli aggiornamenti in modo che vengano eseguiti quando non utilizza attivamente il proprio dispositivo, ma molti utenti semplicemente non aggiornano il proprio dispositivo anche quando richiesto. Inoltre, non avendo partizioni A/B, l'utente perde uno dei suoi vantaggi intrinseci: proteggersi da aggiornamenti di sistema mal eseguiti.

Ad esempio, quando Xiaomi ha lanciato per la prima volta l'aggiornamento Android 10 per Mi A2 Lite, molti utenti hanno scoperto che i loro dispositivi non si avviavano. Fortunatamente per loro, il Mi A2 Lite ha partizioni A/B per aggiornamenti senza interruzioni, quindi gli utenti sui nostri forum hanno trovato che potevano usare un comando fastboot per impostare il bootloader per avviare il set di partizioni intatto e precedentemente attivo. Pertanto, non solo le partizioni A/B forniscono agli utenti un processo di aggiornamento molto più rapido, ma fungono anche da sistema di sicurezza per gli aggiornamenti mal eseguiti. Gli OEM che non hanno implementato le partizioni A/B possono comunque progettare il proprio modo di proteggersi dall'OTA fallimenti, ma perché affrontare tali problemi quando questa protezione fa parte della progettazione di A/B partizioni? Per tuo riferimento, ecco un parziale (e certamente obsoleto) elenco dei dispositivi che supportano le partizioni A/B per aggiornamenti continui ed ecco un tutorial su come verificare se il tuo dispositivo supporta questa funzione.

Può sembrare sconcertante il motivo per cui ad alcuni OEM piace Samsung addebita $ 1.400 per uno smartphone ma non offrirà una funzionalità così elegante. Il motivo di solito si riduce allo spazio di archiviazione: gli OEM non vogliono sacrificare qualche gigabyte di spazio di archiviazione per supportare aggiornamenti continui. Telefoni come il Samsung Galaxy S20 hanno a tonnellata di software preinstallato, quindi la duplicazione di partizioni come /system e /product porterà alla duplicazione di file e applicazioni di grandi dimensioni. Google è riuscita a implementare le partizioni A/B senza sacrificare troppo lo spazio di archiviazione grazie ad un astuto trucchetto per aggirare il problema della duplicazione di enormi file .odex. Un altro motivo per cui gli OEM potrebbero aver scelto di non implementare le partizioni A/B è il costo: stare al passo con quelli di Google le modifiche costanti agli schemi di partizione di Android richiedono molto impegno, come sviluppatore riconosciuto XDA topjohnwu te lo dirò. A meno che gli OEM non siano obbligati a farlo, molti non si preoccuperanno di cambiare ciò che già funziona per loro.

Alla fine, però, sembra che Google stia dettando legge con Android 11. Forzando l'adozione di partizioni A/B virtuali sui dispositivi appena lanciati, hanno quasi assicurato che gli OEM dovranno supportare aggiornamenti continui per i loro dispositivi di fine 2020 e 2021. Come notato dallo sviluppatore riconosciuto XDA luca020400, Yifan Hong, un ingegnere informatico di Google nel team Project Treble, ha presentato un impegno all'AOSP Gerrit intitolato "Richiede A/B virtuale sui lanci R." Il commit aggiorna la Vendor Test Suite, o VTS, che è un test automatizzato che tutti i dispositivi devono superare per essere considerati compatibili con Project Treble. Il nuovo test controlla se la proprietà di sistema "ro.virtual_ab.enabled" è impostato su true e se "ro.virtual_ab.retrofit" è impostato su false sui dispositivi con un livello API di spedizione pari o superiore a 30. In altre parole, questo test verifica se un dispositivo avviato con Android 11 o versioni successive supporta partizioni A/B virtuali. Le partizioni A/B "virtuali" sono state introdotte con Android 10 insieme alle "partizioni dinamiche", che sono partizioni ridimensionabili dinamicamente. Hanno lo stesso concetto delle normali partizioni A/B, tranne che possono essere ridimensionate liberamente.

Se un dispositivo avviato con Android 11 non supporta le partizioni A/B virtuali, non riuscirà a eseguire VTS. Se il dispositivo non supera il VTS, non può essere spedito con i servizi mobili Google. In altre parole, Google ha effettivamente reso obbligatorio per gli OEM il supporto di partizioni A/B virtuali e, per estensione, aggiornamenti senza interruzioni.


Aggiornamento: A/B virtuale non richiesto per Android 11

Quando ad aprile abbiamo riferito per la prima volta che Google richiedeva a tutti i dispositivi di lancio di Android 11 di supportare meccanismo di aggiornamento A/B virtuale, c'era molta eccitazione perché finalmente i telefoni Samsung avrebbero avuto aggiornamenti senza interruzioni. Sfortunatamente, risulta che Google ha deciso di non rendere obbligatorio il supporto A/B virtuale. Android 11 Documento di definizione della compatibilità (CDD) attualmente recita "le implementazioni del dispositivo DOVREBBERO supportare gli aggiornamenti di sistema A/B" anziché "DEVONO" il supporto. Sembra che ad un certo punto prima del rilascio di Android 11, Google abbia deciso di tornare indietro sulla sua decisione di richiedere il supporto A/B virtuale, probabilmente a per volere di diversi OEM. Ciò accade abbastanza frequentemente ma non viene mai reso pubblico poiché viene pubblicata solo la bozza finale della CDD in linea.