Root Day

Ovvero, come tre dei quattro DCM con un HTC Desire hanno perso investito un tiepido sabato pomeriggio di timido sole invernale per ottenere i permessi di root sul loro telefono, liberarsi della sense e di tutto lo spazio che occupa (pur avendo nostalgia di alcune delle sue facilitazioni) e sostituirla con un'altra rom.

Era sabato 5 Febbraio, i prodi 2D, Mikiplus, darkmawi ed il sottoscritto erano seduti davanti ad uno schermo, come capita spesso in realtà, ma questa volta lo schermo era lo stesso per tutti e quattro. 2D era presente in qualità di osservatore, io e Mikiplus eravamo fermamente intenzionati ad eseguire operazioni delicate sui nostri telefoni, Darkmawi invece non sapendo bene come impiegare il tempo, ha deciso di sottoporre anche il suo terminale alla tortura.

Ecco com'è andato il pomeriggio.

NON CI ASSIUMIAMO NESSUNA RESPONSABILITA' RIGUARDANTE I DANNI CHE POTRESTE FARE LEGGENDO QUESTA GUIDA! VI SCONSIGLIAMO DI FARE MODIFICHE AI VOSTRI TELEFONI, RICORDATEVI CHE PROBABILMENTE INVALIDERESTE LA GARANZIA! SE PROPRIO VOLETE ESGUIRE I NOSTRI STESSI PASSI ASSICURATEVI DI CAPIRE COSA STATE FACENDO, SE NON CAPITE QUELLO A CUI STATE ANDANDO INCONTRO FERMATEVI. PENSATE AI GATTINI! Anzichè fare cose di cui potreste pentirvi, accarezzate un gattino.

Root (S-OFF e reflash) di HTC Desire

Ingredienti per tre persone:

  1. 3 HTC Desire (tutti e tre aggiornati all'ultima versione rialsciata da HTC),
  2. Linux,
  3. Unrevoked #,
  4. Android SDK #,
  5. Fastboot utility,
  6. Alpharev #,
  7. Una chiavetta USB vuota o un cd vuoto sacrificabile,
  8. Un'altra rom (#),
  9. Backup a discrezione dei gusti,
  10. Pazienza.

Preparazione

La prima fase della procedura consiste nel prepararsi al peggio, ovvero creare backup per praticamente qualunque applicazione. Molte delle applicazioni che utilizziamo dispongono di una funzione di backup/ripristino dei dati, basta cercarla all'interno di qualche sperduto menù. Ci sono inoltre alcune applicazioni nel market, come ad esempio Titanium Backup che aiutano nella procedura, ma per eseguire alcune operazioni richiedono dei privilegi di root, che non avevamo. Ci siamo comunque affidati a due applicazioni particolari per salvare i nostri SMS ed il registro chiamate: SMS Backup and Restore e Call Logs Backup & Restore, dello stesso autore. Dopo aver creato e verificato i backup, li abbiamo spostati sulle nostre cartelle Dropbox, per la massima sicurezza. Inoltre, onde evitare che qualcuno ci rovinasse il backup, prima di avviare queste procedure abbiamo messo il telefono in modalità aereo, e ce l'abbiamo lasciato finchè non abbiamo ripristinato le chiamate ed i messaggi a fine giornata. Per mettere in funzione l'Android SDK e l'utility fastboot abbiamo trovato comoda questa guida qua.

Passo 1: Runnare root

Per ottenere i permessi di root abbiamo utilizzato Unrevoked, si tratta di un software talmente semplice da utilizzare che ricorda i magici PurpleRa1n, LimeRa1n, e compagnia bella per iPhone. Il funzionamento è molto semplice: si abilita il debug USB dalle impostazioni delle applicazioni del telefono, si avvia Unrevoked (con i permessi di root, giusto per stare sicuri), si collega il telefono e si aspetta.

Attenzione!

Simbolo di radioattività

Ci sono un po' di raccomandazioni da fare: - Se si esegue la procedura su Windows occorre un particolare driver (che si può rimediare dalla pagina di Unrevoked) e bisogna assicurarsi di disinstallare HTC Sync, perchè sembra intenzionato ad interferire con l'operazione.

  • Per eseguire questa operazione è necessario avere una discreta quantità di spazio libero all'interno della memoria del telefono. Non sappiamo di preciso quanta, perchè sul sito di Unrevoked non è indicata, ma sappiamo che è necessario fare un po' di spazio (indovinate come l'abbiamo scoperto?). Abbiamo eliminato gli aggiornamenti di tutte le applicazioni preinstallate e qualche applicazione bella grossa per poter lanciare correttamente Unrevoked.
  • Non si sa con certezza come questa operazione (e le seguenti) influenzino la garanzia. Speriamo bene.

A questo punto dopo un paio di interminabili minuti e qualche riavvio del telefono, ci siamo ritrovati con i privilegi di root ed una immagine di recovery modificata. La versione che viene installata da Unrevoked si chiama ClockworkMod, e permette di fare diverse cose simpatiche, come ad esempio delle immagini di backup delle partizioni interne al terminale. Il prossimo passo sarà proprio questo.

Passo 2: Salvare il mondo

Per riavviare in modalità di recovery è stato sufficiente tenere premuto il tasto "volume giù" ed il tasto di accensione finchè il telefono non ha mostrato una schermata di avvio bianca con tre robottini verdi sugli skateboard. A questo punto c'è un'attesa forzata di un paio di secondi (il telefono eseguirà la scansione della memory card alla ricerca di qualcosa che non troverà) e poi utilizzando i tasti volume su/giù per spostare il cursore abbiamo selezionato l'opzione "recovery" ed abbiamo confermato con il tasto di accensione.

In questa nuova schermata si deve invece utilzzare la trackpad ottica per confermare le scelte, visto che il tasto accensione serve solamente per spegnere lo schermo. Siamo scesi fino alla voce "backup/restore" ed abbiamo fatto un bel backup di tutto il telefono (la dimensione dei file di backup era intorno a 500MB, e viene salvato nella SD all'interno d ella cartella clockworkmod). Fatto questo, abbiamo spento il telefono, collegato la SD al computer, e ci siamo fatti una bella copia di tutto quanto in essa contenuto, così, a scanso di equivoci.

Volendo, potetevamo anche fermarci qua e tenere i nostri HTC Desire con i privilegi di root da utilizzare con tutte quelle applicazioni che lo richiedono. Abbiamo invece scelto di andare oltre sostituendo la ROM di HTC (di cui comunque ci siamo appena fatti un backup) con una mod di dimensioni minori, così da risparmiare spazio da dedicare ad altre applicazioni.

Passo 3: Passare a CyanogenMod

Ora che abbiamo fatto tutti i backup del mondo, abbiamo caricato su la nostra bella rom. Non avendo trovato indicazione migliore sull'ordine esatto da seguire per questo passaggio e per i seguenti, ci è sembrato saggio flashare prima CyanogenMod, farci un ulteriore backup, poi togliere il flag di sicurezza e cambiare partizioni, ed infine flashare nuovamente CyanogenMod. Probabilmente tutto questo sbattimento non era necessario, ma non avevamo voglia di rischiare, e visto che ha funzionato una volta, abbiamo eseguito la stessa procedura anche per gli altri telefoni. Abbiamo quindi scaricato la versione di CyanogenMod adatta al nostro terminale e (dopo aver verificato che l'hash MD5 corrispondesse a quello del nostro file) l'abbiamo piazzata sulla SD, insieme allo ZIP che contiene le applicazioni Google (tra cui Mail, Mappe, Market...) perchè non vengono più distribuite insieme alla rom. Abbiamo quindi riavviato nuovamente in modalità di recovery e, dopo aver cancellato cache e data factory/reset, abbiamo selezionato "flash zip from sdcard" e poi il file della rom CyanogenMod.

A questo punto ci siamo assicurati che il telefono funzionasse, e l'abbiamo fatto ripartire. Il primo avvio richiede un po' di tempo, ma vedere la schermata home dopo tanto tempo è stato un sollievo. E' stato necessario attivare di nuovo la modalità aereo, visto che la formattazione ha fatto perdere questa impostazione. In un altro eccesso di prudenza, abbiamo fatto un nuovo backup a partire dalla recovery, e l'abbiamo spostato su computer.

Ci saremmo di nuovo potuti fermare qua (in realtà in questo caso avremmo di nuovo riavviato il telefono in recovery per flashare anche le applicazioni Google), e invece non l'abbiamo fatto. Per poter trarre vantaggio dal minor spazio occupato dalla nostra nuova rom è necessario modificare le dimensioni delle partizioni, ingrandendo quella dedicata ai dati a scapito di quella di sistema. Per fare questo è necessario rimuovere il flag di sicurezza S-ON passando quindi a S-OFF.

Che accidenti stiamo dicendo?

Lettera i minuscola Il Desire ha questo particolare flag di sicurezza che impedisce che file non firmati possano essere flashati dalla recovery o da fastboot, inoltre blocca sia /system che /recovery in sola lettura mentre il telefono è acceso. Per poter ridimensionare la tabella delle partizioni è necessario come prima cosa rimuovere questo flag di sicurezza passando così a S-OFF.

ATTENZIONE! Simbolo di radioattività Non ridimensionate la tabella delle partizioni se non intendete cambiare rom! La rom predefinita è molto grande e potrebbe non entrare in una partizione di dimensioni minori, e questa cosa potrebbe provocare spiacevoli conseguenze!

Sembra facile, tuttavia questa è forse la parte più delicata di tutte e se qualcosa va storto ci sono buone probabilità di ritrovarsi con un costoso sasso con scritto sopra HTC.

Passo 4: Telefonare al Joker

Prima di poter cambiare la tabella delle partizioni, è obbligatorio disattivare questo flag di sicurezza, per farlo abbiamo utilizzato uno strumento chiamato Alpharev, che viene distribuito in forma di immagine avviabile e che abbiamo quindi masterizzato su un CD (perchè non avevamo chiavette USB vuote). Per la massima sicurezza abbiamo confrontato l'hash MD5 dell'immagine scaricata con quello presente sul sito. Per stare ancora più tranquilli ed evitare che eventuali sbalzi di tensione ci rovinassero la giornata, ci siamo piazzati dietro un gruppo di continuità, ma utilizzare un portatile con la batteria bella carica potrebbe essere un'altra buona soluzione. Per avviare Alpharev è bastato eseguire il boot dal cd, abbiamo visto avviarsi una versione live di linux e poi abbiamo seguito le istruzioni a schermo. Dopo esserci assicurati che il telefono fosse di nuovo in modalità aereo e che il debug usb fosse abilitato, abbiamo incrociato tutte le dita in nostro possesso ed abbiamo collegato il telefono al computer. A questo punto ci è stato consigliato di NON TOCCARE MAI IL TELEFONO PER NESSUNA RAGIONE FINCHE' LA PROCEDURA NON FOSSE STATA COMPLETATA! E noi così abbiamo fatto. La procedura è composta di tre step eseguiti in sequenza automaticamente, il tempo ci è sembrato non passare mai, non sappiamo quanto esattamente ci sia voluto. Ma è sembrata una mezza eternità. Al termine della procedura sullo schermo del computer è apparsa l'indicazione di riavviare il telefono. Una discutibile immagine di Joker ci ha dato il benvenuto al posto del classico logo di HTC, ed il telefono si è avviato come se niente fosse.

Passo 5: Partizioni per tutti

L'ultimo passaggio è quello che ha richiesto la presenza dell'Android SDK e dello strumento Fastboot. Una cosa che non ci ha detto nessuno è che i comandi che vanno lanciati da terminale devono essere eseguiti con i privilegi di root. Anche questo l'abbiamo dovuto scoprire per conto nostro. Dopodichè sempre dal sito di Alpharev abbiamo recuperato la tabella delle partizioni del Nexus One (bravo_alphaspl-n1table.img) e dopo aver controllato l'hash MD5 anche di questa immagine, abbiamo riavviato il telefono in modalità fastboot: niente di diverso da prima, abbiamo acceso il telefono con volume giù e accensione, ma invece di recovery abbiamo selezionato fastboot. Abbiamo aperto un terminale e, dopo esserci spostati all'interno della directory tools dell'SDK (dove abbiamo messo sia l'utility fastboot sia l'immagine della tabella del Nexus One), abbiamo lanciato questi comandi: > >

sudo ./fastboot flash hboot bravo_alphaspl-n1table.img
sudo ./fastboot reboot-bootloader
sudo ./fastboot erase cache

A questo punto abbiamo avviato la recovery per l'ultima volta, abbiamo di nuovo svuotato cache e data/recovery, abbiamo flashato Cyanogen e le Google Apps, e finalmente tirato un sospiro di sollievo.

A proposito dell'autore
luigi • Luigi è un famoso tubaiolo italoamericano, fratello di un altrettanto famoso tubaiolo italoamericano. In realtà il Luigi in questione è un omone grosso così, con quindicimila idee in testa di cui zero virgola due concretizzate. Questo sito contribuisce ad alzare la media delle cose concretizzate.
Altro