Root, sblocco bootloader e Recovery su Android
Guida al root sui dispositivi Android, sblocco bootloader e installazione della recovery TWRP e dell'applicazione SuperSU per il root
Se davvero si vuole ottenere il massimo da un sistema operativo Android, spesso bisogna installare applicazioni che richiedono i permessi di root. Anche se il root di uno smartphone Android è diventato meno necessario rispetto al passato, è ancora utile se si desidera eseguire alcuni tipi di applicazioni che svolgono funzioni avanzate e che richiedono appunto i permessi di root. Come ben sappiamo, Android è basato su Linux dove l’utente root equivalente all’utente amministratore di Windows. L’utente root ha accesso a tutto il sistema operativo e può fare qualsiasi cosa. Per impostazione predefinita, non è necessario l’accesso root al proprio dispositivo Android, ma come abbiamo anticipato alcune applicazioni non funzionano senza accesso root.
Come altri sistemi operativi mobili moderni, anche le app Android sono limitate a sandbox di sicurezza restrittive, per questo solo rootando il proprio terminale sarà possibile eliminare questi limiti e ristrettezze. Ad esempio si potrà rimuovere bloatware sul telefono, eseguire un firewall, abilitare il tethering anche se l’operatore lo sta bloccando, eseguire un backup del sistema manualmente e una varietà di altre operazioni che richiedono l’accesso al sistema a basso livello. Le applicazioni che richiedono root non sono difficili da trovare, sono disponibili in Google Play, ma ovviamente non funzioneranno efficacemente fino a quando non otterranno l’accesso root.
Avvertenze
Come al solito, si esegue questa operazione a proprio rischio. Il root è generalmente un processo molto sicuro, ovviamente se si sbaglia la procedura non ci si potrà rivolgere al produttore del dispositivo ma bisognerà ritentare la procedura autonomamente. Bisogna tenere bene in mente che eseguire il root di uno smartphone Android comporterà queste conseguenze:
- Sicurezza – Il root disabilità la sandbox di sicurezza su Android. Alcune applicazioni potrebbero abusare dei privilegi di root per spiare altre applicazioni installate oppure dati sensibili presenti sul dispositivo.
- Garanzia – Alcuni produttori affermano che il root invalidi la garanzia del dispositivo. Ovviamente il root in se, se eseguito correttamente, non provoca nessun danno hardware ed è comunque reversibile, percui si potrà sempre tornare allo stato iniziale.
Come eseguire un root su un telefono Android
Ci sono molti modi per eseguire il root su Android, questi i principali:
- Sbloccando il bootloader – Google e altri produttori di dispositivi non supportano ufficialmente il root, ma spesso forniscono un modo ufficiale per ottenere l’accesso a basso livello per alcuni dispositivi, che poi permette di eseguire il root. Ad esempio sui dispositivi Nexus si può facilmente sbloccare il bootloader con un singolo comando. È quindi possibile rootare il dispositivo flashando un file .zip contenente il codice. Strumenti come il Nexus Root Toolkit per dispositivi Nexus automatizzato in toto questo processo. Altri produttori offrono anche modi per sbloccare il bootloader, ma solo per alcuni dispositivi.
- Sfruttando una vulnerabilità di sicurezza – Purtroppo molti dispositivi sono bloccati e non sempre è facilissimo eseguire il root. Molti produttori non forniscono alcun modo ufficiale per sbloccare il bootloader e manomettere il sistema operativo. Questi dispositivi però possono essere ugualmente rootati quando viene scoperta una vulnerabilità di sicurezza sul dispositivo che può essere sfruttata. Questo sistema funziona fin quando il produttore non scopre la vulnerabilità e avvia un aggiornamento OTA. In questo caso il root viene sovrascritto e si ritorna ad un terminale perfettamente originale.
- Flashando CyanogenMod o altre ROM cucinate – Tecnicamente, questa è una estensione di uno dei metodi di sopra. Sbloccare il bootloader e sfruttare una vulnerabilità di sicurezza in modo da flashare ROM personalizzate come CyanogenMod, che spesso sono pre-root. CyanogenMod include una semplice levetta sulla sua schermata delle impostazioni che consente di abilitare o disabilitare l’accesso come root. L’aggiornamento a una nuova versione di CyanogenMod o alla vostra ROM personalizzata non disabiliterà il root sul dispositivo.
Come sbloccare il bootloader
Sbloccare il bootloader del telefono Android è il primo passo per il root e il flash di ROM personalizzate. E contrariamente alla credenza popolare, in realtà è completamente supportato su molti telefoni. I Nexus ad esempio sono tutti sbloccabili per natura, anche device Motorola e HTC consentono di sbloccare il bootloader attraverso un processo simile a quello del Nexus. Altri telefoni, tuttavia, non consentono di sbloccare il bootloader ufficialmente, il che significa che bisogna aspettare sviluppatori in grado di sfruttare vulnerabilità di sicurezza per poter poi eseguire il root. In questo senso una grossa mano ci viene da XDA Developers che ha sviluppato molte guide a riguardo. Vediamo come procedere allo sblocco del bootloader.
Fase zero: Backup
Prima di iniziare è importante ricordare che questo processo cancellerà tutti i dati. Quindi, se avete delle foto o altri file sul telefono che si desidera conservare, trasferiteli altrove. Inoltre se avete impostazioni di app che si desidera conservare, usate la loro funzione di backup per creare un file di impostazioni di backup e tenetelo da parte.
Fase uno: installare SDK di Android e driver del telefono
ADB (Android Debug Bridge) è un’utility a riga di comando inclusa in Android SDK (Software Development Kit). ADB è in grado di controllare il dispositivo tramite USB. Avrete bisogno di due cose per questo processo: Android Debug Bridge, che è uno strumento a riga di comando per il computer che permette di interfacciarsi con il telefono e i driver USB del telefono stesso. Per prima cosa andare nella pagina download di SDK, scaricare il file ZIP per la propria piattaforma e decomprimerlo per poi iniziare l’installazione.
Se si utilizza un telefono Nexus, in aggiunta è anche possibile selezionare “Driver Google USB” per scaricare i driver di Google. Dopo che è finita l’installazione, è possibile chiudere il manager SDK. Ora è necessario installare i driver USB per il telefono. È possibile trovare i driver sul sito web del produttore del telefono (ad esempio Motorola o HTC). Riavviare il computer se richiesto. Ora occorre accendere il telefono e collegarlo al computer tramite un cavo USB. Aprire la cartella Platform-tools in SDK Android e digitare Shift + click destro del mouse su un’area vuota. Scegliere “Apri finestra di comando qui”, ed eseguire il seguente comando:
1 | adb devices |
Se viene mostrato un numero di serie, vuol dire che il dispositivo è stato riconosciuto ed è possibile continuare con il processo. In caso contrario, assicurarsi di aver eseguito la procedura descritta sopra in modo corretto.
Fase due: attivare il debug USB
Toccare l’icona Impostazioni sul telefono e abilitare la funzione Debug Usb. Se non c’è la voce Debug USB nel menù, la procedura può variare da dispositivo a dispositivo, ad esempio si potrà selezionare il debug solo quando connesso al computer oppure selezionando “Info telefono”. In quest’ultimo caso bisognerà scorrere fino in fondo e toccare la voce “Build Number” sette volte fino ad ottenere un messaggio. Tornare alla pagina Impostazioni, ora dovrebbe essere abilitata la funzione “Opzioni sviluppatore”. Cliccare sulla voce ed abilitare lo “Sblocco OEM” per poi poter abilitare il Debug USB sul terminale. In questo modo si potrà abilitare il debug USB tra smartphone e computer.
Fase tre: come ottenere una chiave di sblocco (per i telefoni non-Nexus)
Se si utilizza un dispositivo Nexus, si può saltare questo passaggio. Per il resto dei dispositivi invece occorrerà informarsi sul sito del produttore sulla procedura di sblocco del terminale. Per prima cosa occorre spegnere il telefono ed avviarlo in modalità fastboot. Questa procedura cambia da smartphone a smartphone ma in genere occorre premere e tenere premuto i pulsanti Power e Volume (Volume giù su HTC) per pochi secondi. Una volta entrati in modalità fastboot collegare il telefono al PC con cavo USB ed aprire la cartella Platform-tools contenuta in SDK Android e digitare Shift + click destro del mouse su un’area vuota. Scegliere “Apri finestra di comando qui” e digitare nella finestra di prompt i comandi per recuperare la chiave di sblocco come descritto dal produttore. Per esempio per i telefoni Motorola dovrà essere eseguito il comando:
1 | fastboot oem get_unlock_data |
mentre i telefoni HTC verrà eseguito il comando:
1 | fastboot oem get_identifier_token |
Digitato il comando si otterrà una stringa di caratteri. Selezionarlo, copiarlo ed inviarlo al produttore del dispositivo facendo attenzione che non vi siano spazi. Se il dispositivo è sbloccabile, si riceverà una mail con una chiave o un file che si potrà usare nel passaggio successivo. Se il dispositivo non è sbloccabile è necessario usare un metodo non ufficiale, che di solito si può trovare su XDA Developers.
Fase quattro: sbloccare il telefono
Ora siete pronti per eseguire effettivamente lo sblocco dello smartphone. Se il telefono è ancora in modalità fastboot, eseguire il comando di seguito. In caso contrario, spegnere il telefono e tenere premuto i tasti “Volume” e “Power” e per pochi secondi, quindi rilasciarli per accedere alla modalità fastboot. Collegare il telefono al PC con un cavo USB. Sul computer, aprire la cartella Platform-tools contenuta in SDK Android e digitare sempre Shift + click destro su un’area vuota. Scegliere “Apri finestra di comando qui”. Per sbloccare il dispositivo, è necessario eseguire un semplice comando. Per la maggior parte dei dispositivi Nexus, questo comando è:
1 | fastboot oem unlock |
Se si dispone di un Nexus più recenti, come ad esempio il Nexus 5X o 6P, il comando sarà leggermente diverso, ossia:
1 | fastboot flashing unlock |
Smartphone Motorola, ad esempio, hanno bisogno di eseguire il comando:
1 | fastboot oem unlock KEY |
dove al posto di KEY va inserita la chiave univoca ricevuta dal produttore come abbiamo visto nel passaggio precedente. Sui dispositivi HTC invece bisogna dare il comando:
1 | fastboot flash unlocktoken Unlock_code.bin |
utilizzando il file Unlock_code.bin ricevuto da HTC. Dopo aver eseguito il comando, il telefono potrebbe chiedere se si è sicuri che si desidera sbloccare il terminale. Utilizzare i tasti del volume per confermare. Al termine, utilizzare il menu su schermo per riavviare il telefono (o eseguire il comando reboot fastboot dal PC). Se tutto ha funzionato correttamente, si dovrebbe vedere un nuovo messaggio all’avvio che indica che il bootloader è stato sbloccato e dopo pochi secondi si dovrebbe avviare normalmente Android. E’ importante che si avvii Android prima di fare qualsiasi altra cosa. Ora con il bootloader è sbloccato sarà possibile eseguire il root del dispositivo.
Come flashare TWRP Recovery sul dispositivo Android
Prima di flashare la TWRP avrete bisogno ancora del Debug Bridge Android (ADB) installato sul computer per eseguire questo processo, così come i driver USB del telefono e attivare il Debug USB sul dispositivo così come illustrato in precedenza. Andare sul sito di TeamWin e avviare la ricerca per dispositivo. Fare clic sul dispositivo in possesso per vedere i download disponibili. Ora bisogna andare verso la sezione “Download Links” e scaricare il file TWRP idoneo per il proprio device. Copiarlo nella cartella in cui avete installato ADB e rinominarlo twrp.img . Questo renderà la procedura di installazione un pò più facile in seguito.
Al fine di flashare TWRP, è necessario avviare il sistema in modalità fastboot. Ora bisognerà collegare il telefono al PC con un cavo USB. Il telefono dovrebbe indicare che il dispositivo è collegato. Sul computer, aprire la cartella in cui è stato installato ADB e digitare Shift + click destro su un’area vuota. Scegliere “Apri finestra di comando qui” ed eseguire il seguente comando:
1 | fastboot devices |
Il comando dovrebbe restituire un numero di serie, ciò indica che il telefono è stato riconosciuto. In caso contrario occorrerà tornare indietro e verificare che tutta la procedura procedente sia stata fatta correttamente. Se il dispositivo è riconosciuto da fastboot è il momento di flashare TWRP. Eseguire il seguente comando:
1 | fastboot flash recovery twrp.img |
Se tutto va bene, si dovrebbe vedere un messaggio di successo nella finestra del prompt dei comandi. Ora scollegare il telefono e utilizzare il tasto Volume per scorrere in basso fino all’opzione “Recovery” nel vostro bootloader. Premere il tasto Volume o il pulsante Power (a seconda del telefono) per selezionarla. Il telefono dovrebbe riavviarsi in TWRP. Se TWRP richiede una password, inserire la password o il PIN che si utilizza per sbloccare il telefono. Finita la procedura si potrà vedere la schermata principale TWRP.
È possibile utilizzare questo software per creare copie di backup, ripristinare i backup precedenti, flashare file ZIP e ROM personalizzate. Ora toccare il pulsante “Backup” nella schermata principale di TWRP. Selezionare, “Sistema”, “Boot” e “Data” e scorrere la barra nella parte inferiore per avviare il backup. Quando finirà il processo, si ritornerà al menu di Backup. Se si dispone di una partizione speciale, come ad esempio WiMAX, PDS, o EFS, bisognerà eseguire anche il backup di questa. Questa partizione di solito contiene le informazioni EFS o IMEI, che sono cruciali per la connettività dei dati e il funzionamento del telefono.
Come avviare il flash di SuperSU ed ottenere l’accesso root
Dopo aver sbloccato il bootloader ed aver installato TWRP, è possibile finalmente ottenere l’accesso root sul device. Per eseguire il root occorre usare un programma chiamato SuperSU, che può abilitare (e volendo disabilitare) l’accesso root alle applicazioni installate. SuperSU è disponibile nel Google Play Store, purtroppo necessita anch’esso dei permessi di root per funzionare. Fortunatamente SuperSU è disponibile anche sotto forma di file .zip che potremo flashare grazie a TWRP installato in precedenza. In questo modo si garantirà l’accesso di root e la corretta gestione delle app grazie alle funzionalità di SuperSU.
Quindi, per cominciare scaricare il file ZIP di SuperSU sul computer, collegare il telefono con un cavo USB e trascinare la zip di SuperSU sulla scheda di memoria SD o sulla memoria interna del telefono. Quindi riavviare il telefono in modalità Recovery premendo i tasti Volume (Volume giù su HTC) e Power contemporaneamente. Scorrere verso il basso, selezionare la zip SuperSU e confermare per il flash. In genere l’operazione impiega pochi minuti, dopodiché bisogna ricordarsi di pulire la cache selezionando Wipe cache/dalvik. Al termine del processo riavviare Android e noteremo che l’app SuperSU sarà installata sul terminale. SuperSU funziona in maniera molto semplice.
Ogni volta che un’app richiede i permessi di root, visualizza un messaggio in cui è possibile abilitare o disabilitare i permessi concessi. Per assicurarsi che il root funziona correttamente, è possibile anche scaricare l’applicazione Root Checker e verificare lo stato. Per gestire i permessi di root delle applicazioni, basterà aprire l’app SuperSU per visualizzare la lista di applicazioni a cui sono state concessi o negati i permessi di root. Ovviamente è possibile in ogni momento cambiare le impostazioni dei permessi. Se si volesse rendere il device completamente Unroot sarà sufficiente cliccare l’opzione “Unroot completo” e si ritornerà alla configurazione originale.