Avete già sentito parlare di GRUB4Android? No? Allora vediamo in questo articolo cos’è, come funziona, perché si differenzia da multirom e un breve video su ciò che è in grado di fare GRUB4Android allo stato attuale. Cercherò di essere il più chiaro possibile e di non sminuire quello che è un gran progetto, che sicuramente darà una svolta nel mondo del modding Android.

 

Cosa sono GRUB e GRUB4Android?

Posso certamente dirvi che il GRUB non è un verme, nonostante sia questo il significato della parola in inglese 😉
Gli utenti Linux lo conosceranno sicuramente bene: il GRUB (meglio GNU GRUB) – ovviamente open source – è per definizione un bootloader; all’avvio della macchina, carica tutti i sistemi operativi installati sulle varie partizioni e li mostra in una schermata come la seguente.
grub2Nonostante venga usato dalle distribuzioni Linux, il GRUB è in grado di riconoscere anche sistemi Windows e Mac consentendo all’utente di avere 2, o più, sistemi operativi – dual boot o multi boot – e di avviare quello preferito subito dopo l’avvio della macchina.
L’immagine sopra rappresenta una macchina con a bordo Ubuntu e Windows 7: è possibile modificare le posizioni dei sistemi ma anche l’aspetto del GRUB stesso, o meglio GRUB2, che ha ormai sostituito il precedente.

GRUB4Android, anch’esso open source, si basa su GRUB, l’interfaccia infatti è molto simile e il suo compito sarà – a progetto ultimato – appunto quello di gestire più ROM Android sullo stesso smartphone, di scegliere e avviare quella che preferiamo non appena accendiamo il telefono.
Lo sviluppo è iniziato grazie a +Michael Zimmermann (conosciuto anche come m11kkaa) sul proprio Xiaomi Mi2, ma viene anche seguito e testato da +Joey Rizzoli. Insieme lavorano anche alla CyanogenMod per lo stesso terminale e per questo motivo il progetto è passato in secondo piano.

Il canale Telegram di InTheBit con le migliori offerte techle migliori offerte tech

Joey spiega in inglese cos’è GRUB4Android in questo post su Google+

 

Come funziona GRUB4Android

Come possiamo vedere nel post sopra, GRUB4Android sostituisce il bootloader ma ci sono fondamentalmente due tipi di terminali: quelli che supportano bootloader non firmati e quelli che non li supportano. Il primo è il caso dei dispositivi Xiaomi e di molti altri terminali – la maggior parte abbastanza vecchi (prima del 2012) – che rendono quindi più facile il boot del GRUB; nel secondo caso, invece, viene caricato come secondo boot, una procedura che sostituisce i file boot.img e recovery.img con un altro bootloader in grado di caricare in seguito GRUB, ma ciò richiede una feature che non è ancora ben sviluppata e che potrebbe variare nel corso dello sviluppo.

GRUB4Android migliore di qualunque sistema di multiboot per Android

Il multirom ad oggi non è supportato da molti dispositivi, addirittura possiamo contarli sulle dita di una mano. Questo perché richiede modifiche importanti al terminale: recovery specifiche, particolari kernel e modifiche su ramdisk. GRUB4Android richiede invece soltanto bootloader sbloccato e permessi di root, inoltre può funzionare su tutti i dispositivi con processori Qualcomm. Anche il porting non è complicato (se si hanno le conoscenze e strumenti adeguati), infatti in pochi giorni di sviluppo il GRUB ha già raggiunto anche Xiaomi Hongmi 1S e Motorola MOTO E.
GRUB consentirà di avviare non solo diverse ROM (e sistemi operativi? NdR), ma ad esempio una stessa ROM con diverse recovery e diversi kernel; infine, una volta che il progetto sarà stato completato e stabile, GRUB4Android potrà essere installato con pochi tap grazie all’applicazione dedicata.

Quella che potrebbe essere l'applicazione di G4A
Quella che potrebbe essere l’applicazione di G4A

Cosa funziona e cosa no

Joey ha flashato il GRUB anche sul mio Xiaomi Mi2, così ho potuto provarlo. Posso dire che su un altro dispositivo al momento sarebbe inutile in quanto manca ancora la cosa fondamentale: il multiboot, ma come saprete alcuni dispositivi Xiaomi hanno la doppia partizione nativa, quindi posso comunque mostrarvi come funzionerà e alcune caratteristiche in questo video.

Manca anche il touch, non molto importante a mio parere ma verrà implementato in futuro e non funziona la personalizzazione del colore dello sfondo, poiché rimane lo stesso dopo il primo cambiamento.
Tutto il resto funziona egregiamente e una caratteristica molto interessante è la personalizzazione: come avviene su GRUB, basta editare il file di configurazione; a fine video per esempio possiamo vedere come viene eseguita una recovery alternativa presente fisicamente su memoria interna ma mai flashata. Per questo esempio, cioè per aggiungere la voce al GRUB che esegue la recovery TWRP, è bastato aggiungere al file grub.cfg le seguenti righe

menuentry "Internal: CWM Recovery" {
echo "Loading CWM Recovery from EMMC."
android (hd0,27)/twrp.img
echo "Done."
}

Dove la terza riga è il percorso del file: hd0,27 indica la partizione, ovvero SDcard nel mio caso, e twrp.img è il nome della recovery che sta appunto su SDcard. La prima riga invece è il nome del ‘collegamento’ visibile nel GRUB e la seconda e la terza saranno i messaggi stampati durante l’esecuzione del comando. È facile intuire che basta modificare il nome tra le virgolette per stampare a video il messaggio desiderato.
Un altro esempio che dimostra quanto è semplice personalizzare il GRUB, è dato dagli screenshot seguenti, dove è stato aumentato il timeout per l’avvio automatico da 3 a 10 secondi, tramite la modifica del file grub.cfg.

grub4android-timer grub4android-timer1

Come già detto, il progetto al momento è passato in secondo piano “a causa” della CyanogenMod 12, ma vi assicuro che quello che avete visto è già un ottimo risultato. Ovviamente vi terrò aggiornati sulle future novità, quindi seguiteci 😉

Link utili:

Infine, potete anche fare una donazione per sostenere lo sviluppatore a portare avanti questo magnifico progetto. L’offerta è libera!

Crediti immagine articolo: xiaomi.eu