Dopo l'abbandono del progetti Superuser e SuperSu, il metodo migliore (per non dire unico rimasto!) per ottenere root su Android, senza installare custom ROM o kernel modificati, è "la maschera magica": Magisk!

Guida completa Magisk: root Android

» Leggi: Android: è ancora necessario diventare root??

COme funziona

Magisk è un insieme di programmi open source che consentono la modifica di Android (in versione uguale o superiore a 6). Il più conosciuto e desiderato è quello che consente di ottenere e gestire i permessi di root, ma tutti gli altri programmi sono necessari per raggiungere questo obbiettivo. Entrare nel dettaglio del funzionamento di questi programmi esula dallo scopo di questa guida (ma se volete potete approfondire l'argomento con la documentazione messa a disposizione dallo sviluppatore, topjohnwu), vediamo però brevemente come funziona Magisk.

Android è composto da 4 distinte partizioni (in realtà sono molte di più, semplifico a beneficio della comprensione): boot, recovery, system e data.

Guida completa Magisk: root Android

La parte normalmente "scrivibile" dall'utente è data dove vengono salvate tutte le applicazioni e i dati ad esse associati mentre le altre partizioni sono disponibili in sola lettura e non sono normalmente modificabili dall'utente. Abbiamo visto come si può sostituire la recovery (tramite fastboot) e, in passato, utilizzarne una custom (come TWRP) o Odin per dispositivi Samsung, per "flashare" SuperSu che, in pratica, consisteva nell'accedere in scrittura alla partizione system e qui salvare un nuovo eseguibile (su, appunto) e qualche script di avvio.

Magisk, invece non va a modificare la partizione system ma solo la partizione boot (o in alcuni casi, recovery) e salva alcuni eseguibili nella partizione data. Questo metodo (detto systemless, il cui ideatore è il grandissimo chainfire, ex sviluppatore di SuperSU) era necessario per aggirare alcune limitazioni imposte da Android che bloccavano il funzionamento di alcune app (come quelle per il pagamento contactless), se trovavano una modifica a questa partizione. Ma Google, ad ogni versione di Android rilasciata, ha sempre più stretto le maglie, escogitando sempre nuovi metodi per rilevare una modifica importante come il root nel suo sistema. In un primo momento era in corso un gioco "del gatto con il topo" tra Google e topjohnwu, dove il primo creava ostacoli ad ogni aggiornamento che il secondo aggirava con nuove versioni di Magisk. Ma questo richiedeva un grande lavoro per lo sviluppatore di Magisk ed, ad un certo punto, ha deciso di gettare la spugna, abbandonando la possibilità di nascondere Magisk (e il root) alle altre app. Ma non è tutto perduto...

Molto, molto di più

Ma Magisk non è "solo" root. Veniva definita come "Universal Systemless Interface" (ovvero "interfaccia universale senza [modifica di] system") e consente (a dispetto del nome) di modificare la partizione system (e soprattutto le app in essa contenute!) "al volo", durante l'avvio del dispositivo, ma senza scrivere o attuare modifiche permanenti a detta partizione. Di più: è possibile persino caricare del codice da far eseguire a qualunque app (comprese sempre quelle di sistema) in modo da modificarne il funzionamento. Vedremo meglio in seguito come queste modifiche possono essere attuate tramite l'utilizzo di appositi moduli, gestiti dall'applicazione Magisk (disponibile anche su F-Droid) dalla quale si gestisce anche la concessione dei permessi di root.

Attenzione: il Github ufficiale e l'app di F-Droid sono le uniche due fonti affidabili per scaricare l'app di Magisk, diffidate di qualunque altro sito!

» Leggi: Guida a F-Droid: il miglior market alternativo per Android

Guida completa Magisk: root Android

Come si installa?

Nonostante Magisk sia sempre installabile anche con la vecchia procedura accennata sopra e ben descritta in questo articolo (con l'unica differenza, ovviamente, al passo 3: al posto di SuperSU dovete scaricare l'app Magisk.apk e rinominarla in Magisk.zip prima di flasharla), il metodo ufficiale per l'installazione può variare da dispositivo a dispositivo e in base alla versione di Android presente.

In tutti i casi, comunque, i requisiti fondamentali sono:

  • bootloader sbloccato sul dispositivo;
  • aver configurato adb e fastboot sul computer o, in caso di dispositivi Samsung, Odin;
  • una immagine della ROM installata sul vostro dispositivo.

Lo sblocco del bootloader è necessario per consentire il flash delle componenti di Magisk, su Android puro, si effettua con pochi semplici passaggi che generalmente comporta la perdita di tutti i dati presenti sul telefono ma la procedura può variare in base al dispositivo; prima di andare per tentativi, meglio cercare una fonte affidabile con la corretta procedura per quello in nostro possesso.

Per la configurazione di adb o Odin vi rimando a questi articoli:

» Leggi: Guida facile per principianti: come installare ADB (Android Debug Bridge) e Fastboot sul PC Windows e impartire comandi allo smartphone Android

» Leggi: Samsung Odin: download diretto ufficiale, ultima versione

L'immagine della ROM installata ci serve per estrarne la parte relativa alla partizione di boot (spesso nominata boot.img o init_boot.img ma anche payload.bin) o in alcuni casi alla recovery (recovery.img) perché, come detto, è qui che Magisk andrà installato. Ma come trovare l'esatta ROM del nostro dispositivo? Dipende molto dal dispositivo ma, se non avete un Pixel, molto spesso non è affatto facile. Anche perché, l'ideale sarebbe reperire la ROM in formato "flashabile" tramite fastboot, che molto spesso è compressa nel formato zip ed è quindi facilmente accessibile con qualunque programma di gestione archivi ma, purtroppo, questo formato non viene molto utilizzato dai vari costruttori che prediligono invece formati proprietari da utilizzare con programmi a sorgente chiuso. In questo caso possiamo cercare se esistono degli strumenti per la conversione da formato proprietario a semplice zip o comunque che consentano di estrarre dalla ROM la parte che ci interessa e il posto migliore dove cercare è senza dubbio il forum di XDA.

Se non vi trovate in nessuno dei casi sopra e volete beneficiare della modalità systemless di Magisk vi aspetta un bel po' di lavoro per tenare altre vie (che non starò qui ad elencare) che però non garantiscono la riuscita.

Una volta che tutti i requisiti sono soddisfatti, possiamo passare all'installazione vera e propria di Magisk che si differenzia subito se abbiamo un dispositivo Samsung o di altra marca. I Samsung, infatti, "montano" un Android pesantemente modificato rispetto a quello rilasciato da Google e richiedono una procedura leggermente diversa che vedremo brevemente in seguito, adesso ci concentreremo sui dispositivi di altre marche.

Prima di procedere oltre dovremo raccogliere alcune informazioni sul nostro dispositivo; la prima possiamo ottenerla direttamente dall'app di Magisk ed è se il nostro dispositivo supporta il Ramdisk oppure no.

Guida completa Magisk: root Android

Se, come nel caso dell'immagine sopra, è presente il Ramdisk, potremo installare Magisk nella partizione di boot; diversamente dovremo optare per installarlo nella partizione recovery.

Attenzione: ci sono alcuni smartphone (del costruttore Xiaomi) che accettano il Ramdisk anche se non dovrebbero; in questo caso dall'app vedreste che il Ramdisk non è presente tuttavia è possibile installare Magisk nella partizione di boot!

La seconda informazione che ci interessa è la presenza o meno di una partizione nominata vbmeta (Verified Boot metadata); ci sono diversi modi per saperlo, possiamo controllare la presenza del file vbmeta.img all'interno dell'immagine della ROM oppure impartire il seguente comando tramite adb:

adb shell ls -l /dev/block/by-name | grep meta

Guida completa Magisk: root Android

I risultati possibili sono tre: nessuna partizione, oppure una o, come nel caso dell'immagine sopra, due partizioni; quello che ci interessa comunque non è il numero ma che ci sia almeno una partizione oppure non ci sia affatto.

In base alle informazioni che abbiamo ottenuto dovremo diversificare i casi per procedere nell'installazione.

Copiamo l'immagine della partizione nella quale andremo ad installare Magisk (sia essa boot o recovery) nella memoria interna del dispositivo; se sempre al computer con adb potremo farlo facilmente con un comando:

adb push /percorso/a/boot.img /sdcard/

Apriamo ora l'app di Magisk e tocchiamo Installa, Seleziona e aggiorna un file, andiamo a cercare l'immagine della partizione precedentemente copiata nella memoria interna e infine ANDIAMO!

Guida completa Magisk: root Android

Magisk "patcherà" la partizione interessata e salverà la nuova partizione modificata nel percorso /storage/emulated/0/Download/ (o brevemente /sdcard/Download/) con il nome magisk_patched_[stringa_casuale].img. Adesso dovremo copiare questo nuovo file dalla memoria del dispositivo sul nostro computer (e qui conservarlo accuratamente perché potrebbe tornarci utile in caso di problemi); sempre tramite adb possiamo farlo con il seguente comando (fate attenzione alla destinazione; io utilizzo Linux!):

adb pull /storage/emulated/0/Downloa/magisk_patched_[stringa_casuale].img ~/Scrivania/

Siamo quasi pronti: non ci rimane che riavviare il dispositivo in modalità fastboot, sempre con adb possiamo farlo con il comando adb reboot bootloader e infine "flashare" la nuova partizione. Vediamo per prima il caso di flash della partizione di boot; il comando sarà:

fastboot flash boot magisk_patched_[stringa_casuale].img

Se il nostro dispositivo ha due partizioni vbmeta, avrà anche due partizioni di boot, nominate in accordo boot_a e boot_b e potremo anche scegliere quale delle due flashare specificando la desinenza a boot nel comando sopra (boot diventerà boot_a o boot_b).

A questo punto non ci rimane che riavviare il dispositivo con il comando:

fastboot reboot

Guida completa Magisk: root Android

Una volta riavviato il sistema, apriamo l'app di Magisk (che potrebbe impiegare un po' prima di aprirsi, per ultimare l'installazione) e poi potremo verificare che l'installazione è andata a buon fine.

Guida completa Magisk: root Android

Se il nostro dispositivo ha una o due partizioni vbmeta, in alcuni casi, potrebbe essere necessario disabilitare la verifica dell'integrità. Per farlo occorre l'immagine della partizione vbmeta, reperibile sempre all'interno della ROM e nominata, ovviamente, vbmeta.img. Il comando per disabilitare la verifica delle partizioni di boot sarà (attenzione: lanciare il seguente comando comporta, di nuovo, la cancellazione di tutti i dati presenti nel dispositivo!):

fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img

Nel caso, invece, in cui dovessimo installare Magisk nella recovery, il comando sarà:

fastboot flash recovery magisk_patched_[stringa_casuale].img

Ma attenzione, perché in questo caso non sarà sufficiente riavviare il dispositivo per avere attivo Magisk.

Un normale avvio infatti non attiverà Magisk ma, ogni volta che vorremo abilitarlo, dovremo avviare il dispositivo premendo la particolare combinazione di tasti prevista per avviarlo in recovery (che può variare da costruttore a costruttore e in alcuni casi anche da modello a modello dello stesso costruttore) e rilasciare tutti i tasti non appena si presenta lo splash screen; solo in questo modo si avvierà il normale sistema ma con Magisk finalmente attivo. Se volessimo entrare nella recovery (che, ricordo, è quella originale semplicemente patchata per attivare Magisk!), al presentarsi dello splash screen dovremo tenere premuto solo il tasto Volume +.

Come si aggiorna Magisk?

Ad ogni aggiornamento di versione di Magisk, verrà rilasciata una nuova app e ne riceveremo notifica se avremo abilitato il controllo automatico degli aggiornamenti. Aprendo l'app di Magisk sarà possibile aggiornarla al presentarsi del tasto Aggiorna e, una volta riavviata l'app, sarà possibile aggiornare anche la modifica fatta alla partizione di boot ma questa volta potremo farla direttamente dall'app, senza necessità di ripetere il già visto procedimento.

Guida completa Magisk: root Android

Per evitare problemi (a dire il vero molto rari, sopratutto se vi mantenete sul canale di aggiornamento stabile), è consigliabile disattivare tutti i moduli, applicare la modifica e successivamente riattivare i moduli.

In caso di problemi di avvio, potete sempre tornare indietro al sistema funzionante se avete avuto cura di conservare la prima partizione di boot patchata, riflashandola tramite fastboot come per la prima installazione.

Continuare a ricevere gli aggiornamenti della ROM

Se il vostro dispositivo è sempre supportato dal costruttore e rilascia ancora aggiornamenti della ROM, potete aggiornare Android senza perdere il root, ma dovete seguire una procedura ben precisa.

Per prima cosa, essenziale, nelle Opzioni Sviluppatore dovete disattivare gli Aggiornamenti di sistema automatici; in questo modo in caso di una nuova versione del sistema operativo, verrete solo avvisati da una notifica.

Guida completa Magisk: root Android

Al presentarsi della notifica di aggiornamento, dovrete per prima cosa disinstallare Magisk tramite l'app e scegliere Ripristina immagine: molto importante è NON riavviare!

Guida completa Magisk: root Android

A questo punto potete procedere a scaricare l'aggiornamento della ROM al termine del quale vi verrà proposto di riavviare il dispositivo ma anche in questo caso non dovrete farlo!

Aprite di nuovo l'app di Magisk e scegliete Installa, questa volta sceglieremo Installa nello slot inattivo (dopo un aggiornamento OTA) e solo a questo punto potremo riavviare il dispositivo con il tasto proposto alla fine della procedura.

Guida completa Magisk: root Android

Al riavvio, se tutto è andato secondo i piani, dovremo trovarci nel nuovo sistema con sempre il root attivo!

Caso specifico Samsung: Installazione

In caso di dispositivi Samsung, come accennato poco sopra, utilizzeremo Odin anziché adb e fastboot ma queste non sono le sole differenze. Servirà comunque il bootloader sbloccato e una immagine della ROM installata sul dispositivo (in caso di Samsung di solito di più facile reperibilità tramite i siti Sammobile e Samfw o i programmi Frija o Bifrost) da cui estrarre il file AP_[device_model_sw_ver].tar.md5, sempre da "dare in pasto" a Magisk che lo patcherà in maniera analoga a quanto già visto con boot.img o recovery.img.

Una volta che avremo il file patchato, potremo flasharlo tramite Odin insieme a BL, CP e CSC da prelevare dalla ROM originale: attenzione questa operazione cancellerà, di nuovo, tutti i dati dal vostro dispositivo!

Guida completa Magisk: root Android

CAso specifico Samsung: aggiornamenti della ROM

Nel caso in cui vorreste aggiornare la ROM del vostro dispositivo Samsung non è possibile seguire la procedura generica sopra descritta. Infatti, una volta che si è diventati root su Samsung, non si ricevono più aggiornamenti del sistema operativo. Dovremo quindi seguire la stessa procedura vista per la prima installazione, con l'unica ma sostanziale differenza che, al posto di CSC, dovremo flashare HOME_CSC; in questo modo i dati salvati sul nostro dispositivo non saranno cancellati!

Guida completa Magisk: root Android

Impostazioni di Magisk

Diamo adesso una rapida occhiata alle impostazioni di Magisk, raggiungibili toccando l'icona dell'ingranaggio. Troviamo subito la possibilità di Personalizzazione dell'app di Magisk con la possibilità di scegliere Lingua e Tema.

Poi c'è una sezione riguardante l'App di Magisk, dove è possibile scegliere il canale di aggiornamento (caldamente consigliato di lasciare il valore predefinito, Stabile), la ricerca automatica di questi in background e la cartella di Download. Abbiamo poi la possibilità di attivare i DNS criptati con protocollo DNS over HTTPS, che consiglio di lasciare escluso e che niente ha a che fare con quelli che si possono attivare tramite le impostazioni di Android. Ultima voce di questa sezione è Nascondi l'app di Magisk: se abilitata, consente di sostituire l'app Magisk con un altra app dal nome che possiamo scegliere arbitrariamente e icona generica; funziona utile forse per nascondere l'app all'utilizzatore ma non certo per nasconderla alle altre applicazioni che utilizzano controlli diversi.

Nella sezione Magisk troviamo alcune delle funzioni più interessanti che vanno a modificare il sistema:

  • File hosts systemless, che consente di attivare la modifica del file host al fine, ad esempio, di popolarlo con liste di blocco di pubblicità e tracciatori (magari tramite AdAway) ma senza andare a modificare la partizione system dove questo file risiede;
  • Zygisk, consente di eseguire codice all'interno dei processi delle altre applicazioni in modo da cambiarne il funzionamento;
  • Lista di blocco, consente di escludere alcune applicazioni problematiche dalle modifiche fatte da Magisk e dai moduli caricati.

L'ultima sezione delle impostazioni riguarda l'accesso root: qui è possibile scegliere se utilizzare root solo con le app o anche con ADB, personalizzare le notifiche e il comportamento delle richieste di elevazione dei privilegi, attivare la protezione anti-tapjacking (in modo che nessuna app, nemmeno quelle che hanno il permesso di mettersi sopra le altre, possa intercettare e/o modificare la richiesta di permessi di root) e il riconoscimento biometrico. Modalità mount namespace consente di modificare il comportamento di quella che è una funzione del kernel Linux che consente di isolare alcune risorse di sistema in modo da nasconderle (oppure no) ad alcune app; normalmente non è necessario cambiare il valore preimpostato.

Guida completa Magisk: root Android

Moduli

Come detto, grazie ad appositi Moduli, Magisk può modificare l'aspetto o il comportamento delle altre app. Questi moduli possono essere specifici per un app oppure generiche e modificare il comportamento di tutte le app.

Magisk consentiva di ricercare e gestire questi Moduli ma purtroppo, topjohnwu, sempre per semplificarsi la vita, ha rimosso la possibilità di cercarli in quello che era il repository ufficiale (è che adesso non è più mantenuto). È stato però implementato un sistema che, se adottato dagli sviluppatori, consente ai moduli di auto-aggiornarsi.

Ma dove trovare i moduli adesso? Il repository ufficiale contiene sempre alcuni dei Moduli più vecchi (ma sempre aggiornati) e, per adesso, rappresenta sempre una risorsa utile. È nato poi un repository alternativo dove possiamo trovare alcuni dei moduli sviluppati più di recente. Un altro repository è quello di Androidacy fruibile anche senza sottoscrizione con qualche limitazione come un numero massimo di moduli scaricabili giornalmente e presenza di pubblicità nell'app dedicata (nella quale è possibile attivare anche il repository alternativo). Personalmente non mi piace Androidacy che richiede legittimamente il permesso di root per installare i moduli ma lo utilizza anche per aggirare il blocco della pubblicità... Preferisco invece utilizzare MMRL (Magisk Modules Repo Loader) (anche in questo caso c'è un app dedicata) per avere facile accesso al repository alternativo (e volendo anche a quello ufficiale).

Possono esserci poi alcuni interessanti moduli che non si trovano su questi repository e sono scaricabili solo dal sito ufficiale o Github dello sviluppatore ma, indipendentemente da dove scaricate un modulo, tenete sempre presente il grande potere che hanno, non provateli a caso ma cercate bene notizie e informazioni su internet prima di installarne uno e controllate bene la compatibilità con il vostro dispositivo per evitare problemi di avvio (Bootloop)!

Una volta scaricato un modulo sul nostro dispositivo possiamo installarlo tramite l'app Magisk, andando nell'apposita sezione Moduli, toccando Installa dal dispositivo, scegliendo il modulo appena scaricato sulla memoria del telefono. Per attivare ogni modulo è necessario un riavvio del dispositivo, in modo che Magisk possa... compiere la sua magia!

Guida completa Magisk: root Android

Alcune volte può capitare che l'installazione di un modulo fallisca restituendo Unzip error. Questo è dovuto al fatto che il file zip del modulo contiene una cartella anziché i singoli file del modulo. Si può risolvere facilmente con un gestore di file che supporta l'apertura e la creazione dei file zip (come GhostCommander), semplicemente estraendo lo zip, entrando nella cartella appena estratta, selezionare ogni file presente e ricreare il file zip. Con il file compresso appena creato non dovrebbero esserci problemi e l'installazione dovrebbe andare a buon fine. Un altra soluzione è installare i moduli direttamente dalle applicazioni sopra menzionate che non dovrebbero risentire dei moduli, per così dire, "zippati male". Anche se questa seconda possibilità è decisamente più comoda, personalmente preferisco ricreare a mano il file compresso del modulo, cogliendo l'occasione per ispezionare il contenuto.

Come nascondere Magisk alle altre app?

Ci sono app che fanno diverse verifiche per controllare che il sistema non sia stato manomesso e se rilevano qualcosa di strano si rifiutano di funzionare. Come fare in modo di non allertare questi sistemi di sicurezza e permettere il normale funzionamento delle app?

Dato che la funzione di Magisk che consentiva di nascondere il root e qualsiasi altra modifica alle app installate è stata rimossa, dobbiamo affidarci a moduli di terzi ma la procedura (indovinate un po'?) può variare da dispositivo a dispositivo. Di seguito vi suggerisco giusto un paio di metodi che potete provare ma tenete presente che potrebbero non essere più efficace in breve tempo. Per aumentare la probabilità di successo, è meglio se avete installato/non avete disattivato i servizi di Google e avete configurato un account.

  • Metodo 1:

Per prima cosa possiamo provare MagiskHide. Questo modulo funziona senza necessità di abilitare Zygisk ma utilizzando la stessa lista di blocco per rilevare le applicazioni alle quale nascondere Magisk. Occorre quindi abilitare Zygisk (se già non lo abbiamo fatto) senza necessità di riavviare, configurare la lista di blocco selezionando le app interessate e il Google Play Store e poi disattivare Zygisk.

  • Metodo 2:

Se il metodo sopra non funziona dovremo utilizzare un sistema più radicale: occorre ripristinare lo stato del SafetyNet (che presto sarà sostituito da Play Integrity API). Possiamo controllare lo stato di questa caratteristica di sicurezza con l'app YASNAC. Per prima cosa dobbiamo abilitare Zygisk (motivo per cui potete rimuovere anche MagiskHide se lo avete sempre installato) e inserire nella lista di blocco sempre l'app interessata e il Google Play Store, poi possiamo installare questo modulo (che non si trova nei repository!) UniversalSafetyNetFix e, naturalmente, riavviare il dispositivo. Con alcuni dispositivi, YASNAC potrebbe riportare ancora un test (CTS profile match) fallito e l'app interessata potrebbe continuare a non funzionare. In questo caso potete provare una versione modificata di UniversalSafetyNetFix (da installare solo dopo aver rimosso l'altra!).

Guida completa Magisk: root Android

» Leggi: Android con root: migliori app e moduli per Magisk

» Leggi: Android: è ancora necessario diventare root??

» Leggi: [Android 11+] Shizuku: un'alternativa facile al root!