Riporto in questo post piuttosto lungo, prevalentemente per mia memoria storica ed eventualmente per vostra cultura generale, alcuni appunti relativi agli esperimenti di aggiornamento Android di un cellulare funzionante ma invecchiato, e non più aggiornato dalla casa madre.
Il punto di partenza
Siamo nel 2025.
.jpg) |
Xiaomi A2 Lite, retro, cortesia di Wkimedia Commons |
Il cellulare è uno Xiaomi A2 Lite, un best-buy di fascia <200 € del 2018 (attenzione, diverso dallo Xiaomi A2). All'epoca, le caratteristiche che lo rendevano appetibile erano:
- Battteria 4Ah
- Dual SIM + SD card
- Android Stock + Android One (aggiornamenti direttamente da Google)
- RAM 4 / 64 interna
- 179 Eur
I requisiti sono prettamente personali. Ho sempre desiderato Android Stock, (quello base di Google) per non trovarmi legato ad un venditore e le sue particolarità e poi trovarmi blindato nel suo universo. Per l'utilizzo che faccio di uno smartphone, continuo a rifiutare il modello Apple/Samsung, per quanto riconosco che abbia dei vantaggi nell'ottimizzazione delle prestazioni. Inoltre avevo una SIM personale e una SIM aziendale e non volevo portare in giro due telefoni.
L'A2 Lite è arrivato con Android 8.1 (Oreo) e si è aggiornato fino al 10.
Nel 2023 l'ho sostituito con un Nokia X20, ancora Android Stock, ancora a circa 200€.
Per fare il backup dei dati del A2 Lite, ho dovuto forzare l'accesso root, e installare Titanium Backup.
A questo punto lo smartphone è pronto per una seconda vita, ad esempio come primo smartphone per la prole. Ma il sistema operativo è vecchio, e non più compatibile con le ultime versioni delle app.
E' possibile installare una custom ROM con un Android recente?
Dove recuperare le informazioni? La banca dati centrale per tutte queste operazioni è il
forum XDA, che nel menu 'Devices' ha l'elenco di tutti i dispositivi, compreso il mio A2 Lite, nome in codice
'daisy'.
Nel labirinto del forum XDA
Che differenza ci sarà tra CrDroid, Lineage o Derpfest? Sarà meglio la versione più recente, o richiederà troppe risorse? Meglio una versione con meno pretese, o una con ottimizzazione spinta? Boh?!! (un utente OnePlus fa
una domanda simile su reddit)
Pare di capire che alcune varianti si portano dietro le 'Google App', ad esempio Google Drive, Docs, Calendar ecc; altre sono dedicate al 'modding' o personalizzazione; altre ancora si prefiggono di migliorare l'efficienza del sistema e la durata della batteria.
Dato che sono quasi tutte prodotte e mantenute da gruppi di volontari, non c'è nessuna logica nel parco di dispositivi su cui è possibile installare le varie versioni: il criterio principale è che il dispositivo è nelle mani di qualche appassionato.
Come è logico, i dispositivi più vecchi, dopo qualche anno, vengono abbandonati.
Ad esempio, nel mio caso, ci sono diverse salse di Android 10 e 11, un paio di Android 12 e 13 e quasi niente dei successivi. Le versioni più recenti risalgono al 2022, ossia ormai 3 anni fa.
Per complicare le cose, quando si va scavare nelle istruzioni, la maggior parte del materiale è stato messo su GitHub, e, mentre le istruzioni sopravvivono sul forum XDA, i repository su GitHub hanno una vita molto più breve e fragile. Capita sovente di seguire un collegamento verso GitHub, o peggio ancora verso un sito personale, per poi scoprire che la repo o la pagina è stata cancellata.
Inoltre le tecniche di installazione differiscono parecchio tra modelli di telefono e varianti di ROM, per cui non è possibile fare un copia e incolla da un altra sequenza di istruzioni, o da un thread parallelo dedicato ad un altro modello di smartphone.
Generico upgrade su Xiaomi A2 Lite
Il post inizia elencando i prerequisiti, che sono
- lo Xiaomi A2 Lite con
- una ROM originale installata
- il bootloader sbloccato
- questo passaggio l'avevo fatto in precedenza per poter fare il backup utilizzando Titanium Backup. L'upgrade della ROM richiede di brasare tutti i dati. Se ci fossero dati a cui tenete, foto, bitcoin ecc, FATE PRIMA UN BACKUP.
- un PC Windows
- una mezza dozzina di componenti software da scaricare da varie fonti, tra cui
- i tool di manutenzione specifici per Xiaomi
- i tool per gli sviluppatori Android di Google (ADB)
- i tool e la ROM degli hacker e fai-da-te
La doppia partizione A/B
Segue spiegando come, a partire da Android 7 o Nougat, (2016) Google ha introdotto il sistema della doppia partizione di sistema (A/B) che rende trasparente l'aggiornamento di sistema. In pratica, mentre una partizione (es. A) è attiva e in uso, l'altra (B) si aggiorna. Quando l'aggiornamento su B è completo e verificato, al successivo riavvio, B diventa partizione attiva e A rimane disponibile come partizione di recupero, e per essere aggiornata alla versione successiva. Questo meccanismo viene descritto nel dettaglio nell'
articolo dedicato sul forum XDA.
Come è facile immaginare, la doppia partizione rende più macchinoso il processo di sostituzione integrale della ROM via cavo. Per inciso, i dispositivi Android possono avere decine di partizioni, quindi è importante sapere cosa si sta facendo e dove.
Dato che una parte del lavoro viene svolta dallo strumento di assistenza (recovery tool, es. TWRP), sarà proprio questo componente a fare in modo che la nuova ROM venga caricata nella partizione non attiva.
Generico caricamento con FASTBOOT per sistemi con doppia partizione
I file vengono generalmente forniti in un file compresso in formato payload.bin
Questo file è scompattabile utilizzando degli script in python e la libreria protobuf, in modo da poter accedere individualmente ai vari file binari.
A loro volta i singoli file binari possono essere trasferiti sullo smartphone utilizzando il tool fastboot, in un processo noto come 'flashing', cioè registrazione permanente su memoria riscrivibile.
Fasboot si può usare per:
- Scoprire la partizione attiva
- fastboot getvar all
- Attivare l'altra partizione
- fastboot set_active other
- Attivare una partizione specifica
- fastboot set_active a
- fastboot set_active b
- Scrivere una immagine sulla partizione attiva
- fastboot flash partition partition.img
- Scrivere una immagine su una partizione specifica
- fastboot flash partition_a partition.img
- fastboot flash partition_b partition.img
ADB, Flashboot e Recovery
Per entrare in Fastboot: Power e Vol-
In Fastboot possiamo inviare comandi dalla CLI di Windows e caricare la Recovery indicata nelle istruzioni, in genere un file di tipo .img
Per entrare in recovery: Power e Vol+
In recovery troviamo il menù per operare sulle partizioni di avvio e predisporre per i comandi tipo 'adb sideload' che ci consentono di caricare la ROM.
La Recovery 'stock' o 'originale' spesso mostra un icona di un Android in riparazione e la dicitura 'No command'.
Con ADB posso verificare che il dispositivo è collegato e in quale modalità:
platform-tools>adb devices
Cose che si mettono di traverso
- File .zip, in particolare quelli di grosse dimensioni, incompleto o danneggiato. I tool di trasferimento lo rifiutano, ad esempio con 'adb: failed to read command: No error'
- Problemi a scaricare i file da androidfilehost. Il server è spesso sovraccarico e non risponde. Posso immaginare che non sia finanziato da Google e cara grazia che esiste. Provare a ricaricare la pagina o riprovare dopo qualche minuto. Da questa discussione sembra che possa estinguersi da un giorno all'altro.
- Cavi USB o connettori che non fanno bene il loro lavoro. A volte può essere necessario cambiare cavo o porta.
La conclusione (o anche Brute Force Attack)
Ho trovato
questo thread che proponeva
Pixel Experience 13, basata su Stock Android o AOSP.
Forniva in due post tutti i collegamenti per scaricare i software e le istruzioni in maniera abbastanza chiara e concisa. Forniva già una recovery specifica e testata. Punto a favore, le Google Apps incluse, non tutte, ma una buona parte, che mi evita di scaricare un sacco di app che comunque installerei.
Vi confesso umilmente che mi ci sono volute diverse ore per completare i passaggi, e capire che dovevo leggere e rileggere più volte le istruzioni per arrivare in fondo.
Provare, provare, provare...
Alla fine, a forza di martellare e di sbagliare in tutti i modi possibili, sono arrivato in fondo, e sono riuscito ad installare Android 13, Pixel Experience e a ringiovanire il mio vecchio smartphone.
Una nota di demerito alle case produttrici che spingono per far crescere la montagna di rifiuti elettronici invece di incoraggiare i proprietari a mantenere in vita dispositivi che potrebbero funzionare ancora per anni.
Nessun commento:
Posta un commento