Con Android 13 disponibile ufficialmente, per Google e gli sviluppatori che stanno modificando il sistema operativo per i propri scopi sarà una strada difficile da percorrere. Ci sono una serie di nuove funzionalità apportate dalla versione stabile che devono essere ancora testate, ma prima che possano farlo, dovranno assicurarsi di una cosa cruciale: installare Android 13 su entrambe le partizioni di sistema del loro dispositivo Pixel. Uno sviluppatore ha scoperto cosa succede quando le cose vanno storte senza quella seconda partizione aggiornata.
Ci sono due concetti in Android in gioco qui che spiegano ciò che è successo: aggiornamenti senza interruzioni e protezione dal rollback del bootloader. L’idea delle partizioni di sistema A/B è stata introdotta per la prima volta con Android 7.1 Nougat nel 2016 per consentire l’installazione di aggiornamenti software senza interruzioni su una partizione, consentendo allo stesso tempo di utilizzare il dispositivo con il software corrente sull’altra partizione. Al termine dell’installazione, l’utente dovrà solo riavviare lo smartphone per ritrovarselo aggiornato, risparmiando considerevoli tempi di inattività dall’attesa dell’installazione del software durante il processo di riavvio. Lascia anche l’altra partizione con la versione precedente del software.
Per quanto riguarda l’idea della protezione dal rollback, Google a volte aggiornerà il bootloader di un dispositivo per impedire che una versione precedente di Android venga caricata su un dispositivo, in genere in risposta a vulnerabilità note. In effetti, con l’aggiornamento di Android 13 per i dispositivi Pixel 6, Pixel 6 Pro e Pixel 6a, Google ha effettivamente fatto in modo che quei telefoni non si avviassero se una build Android 12 fosse stata successivamente installata su di essi.
Uno sviluppatore è rimasto vittima di una collisione di questi concetti. Stava lavorando con una build Android Open Source Project di Android 13 sul suo Pixel 6 quando il dispositivo non si è più avviato. Nella maggior parte dei casi non sarebbe stato un problema così catastrofico perché il telefono sarebbe stato immediatamente in grado di passare alla sua partizione B funzionante e avviarsi da lì. Ma poiché la partizione B era ancora su Android 12, la funzione di protezione dal rollback si è attivata e ha impedito l’accensione del dispositivo. E senza un modo noto per tornare indietro e tentare un altro avvio dalla partizione Android 13, questo Pixel è diventato un vero e proprio mattone senza uso.
USB is dead — no signs of life at all
— flawedworld | @flawedworld@infosec.exchange (@flawedworlddev) August 16, 2022
Chi ha maggiori probabilità di imbattersi in questo tipo di scenario? Pensiamo che saranno gli sviluppatori che usano comandi ADB o fastboot che potrebbero causare un arresto anomalo e un errore di un Pixel di sesta generazione con Android 13.
Diciamo anche che c’è qualche possibilità che gli “utenti normali” possano essere vulnerabili a questo problema poiché, una sorta di strano arresto anomalo dell’app o un errore di sistema potrebbe innescare un errore di avvio, ma le probabilità sono incredibilmente piccole e scompariranno completamente con le prossime release.