domenica 12 aprile 2015

Storia di una riprogrammazione di m(iui)ezza primavera...

Premessa:

Queste operazioni, se non seguite alla lettera, potrebbero portare lo smartphone Huawei Ascend G510 ad un malfunzionamento che necessiterebbe l'intervento del servizio assistenza (a pagamento) per poterne ripristinare la corretta funzionalità.
Effettuate prima un backup con un tool tipo Backup Master (cfr. Google Play) per poter salvare tutto quello che interessa in una memoria sicura.

I computer sui quali ho testato la procedura sono:
  • MacBook Aluminium 13" fine 2008 OS-X Yosemity 10.10.3
  • iMac 20" inizio 2008 OS-X Mavericks 10.9.5
  • Apple PowerBook G4 Aluminium 1.5Ghz Linux Debian Jessie 8

Pronti... Ai posti di partenza... via!

Preparazione del computer

Per poter accedere al telefono Android è necessario installare il software ADB e FASTBOOT. Sono due utility per poter colloquiare con il dispositivo tramite USB.

Fare riferimento alla propria distribuzione Unix/Linux su come installare quello che è comunemente chiamato Android-Developers-Tools. Per esempio su Debian si installa con il comando:

$ sudo apt-get install android-tools-adb android-tools-fastboot

MacOS X: installare android-sdk-macosx direttamente dal sito di Google e procedere nella modalità indicata. Sono parecchi megabytes (circa 3 Gigabytes) quindi occhio allo spazio su disco ed alla velocità della linea ADSL... ;-) Si potrebbe optare per un'installazione dei soli  tools di Android copiandoli da [QUI] e memorizzarli per esempio sulla scrivania del vostro Mac.

Inizio Procedura di sblocco

Per poter installare MIUI od altre Rom occorre avere uno smartphone configurato correttamente per cui partiamo con l'inizializzazione della flash come da fabbrica utilizzando il firmware presente nel sito ufficiale Huawei:



e selezionando come campo di ricerca il nome in codice del terminale (G510) comparirà il firmware aggiornato e approntiamoci a scaricarlo.

Nel caso di problemi con il download fatemi una mail all'indirizzo icjtqr@gmail.com e provvederò a uploadarlo su un servizio di hosting e farvi avere il link.

Una volta scaricato e decompresso, utilizzando una memoria microSD, copiare la cartella denominata dload nella schedina. Io ho utilizzato un adattatore Manhattan USB SDXC per poter accedere alla scheda microSD da una porta USB del computer. La memory card deve essere formattata VFAT (MSDOS) ed avere una partizione attiva nell'MBR.

NOTA: Se per caso non capiste quello che ho appena detto vi consiglio di NON PROSEGUIRE oltre poichè è necessario avere una certa familiarità con la shell di Unix ed in generale con una command line interface.

  • A questo punto spegnere il telefono, rimuovere la cover, la batteria ed inserire la memory card nell'apposito alloggiamento. Rimettere la batteria, la cover posteriore ed accendere lo smartphone con i tasti Vol - / Vol + / Accensione (TUTTI E TRE) contemporaneamente per circa una decina di secondi.

Questo comporta un'aggiornamento a basso livello di tutto il telefono! Quindi se avevate informazioni sensibili e che non erano mai state memorizzate altrove se non sul telefono, verranno irrimediabilmente perdute!

Allo stesso modo occorre avere sempre presente la propria password di Google ed indirizzo e-mail ad essa associato per poter accedere ai vari servizi (Play Store / Google Market in primis) correttamente. Le App installate tramite questo servizio verranno ripristinate anche nel nuovo ambiente MIUI utilizzando il Google Play.

Nello schermo del telefono verrà visualizzata una procedura della durata di parecchi minuti per cui è vivamente consigliato un livello di batteria superiore al 70%.

Nel caso in cui la memory card non venisse riconosciuta dal bootloader, lo schermo diverrà viola/rosa e l'unico modo per riprendere la procedura (una volta corretta la memory card) è quello di rimuovere la batteria, attendere 10 secondi e ripetere l'operazione dal punto precedente.


Al termine della procedura (che dura oltre 10 minuti) il telefono si riavvierà, e si presenterà la schermata della selezione della lingua.

Quello che dovremo raggiungere è una configurazione sufficiente per avere a disposizione il debug USB per poter sbloccare il bootloader (bootloader unlock) cosicchè si potranno installare sia l'utility di root, sia l'utility di TWRP di recovery per poterci permettere l'installazione di varie custom rom.

Quindi selezionare la lingua italiana e proseguire ignorando o meno la presenza della SIM telefonica (se presente). In questo momento non ci interessa avere nè la parte telefonica nè la rete WiFi attive... Serviranno in un secondo momento.

Quando viene richiesto l'utilizzo di Google rispondere 'No' e 'Non adesso' nella schermata successiva per attivare un'account Google.

Nella schermata 'Google e posizione' scegliere la freccia rivolta verso il basso che si trasformerà in una freccia girata verso destra.

Premerla e saltare allo stesso modo l'impostazione dell'orario nella pagina 'Data e ora'...

A questo punto verrà richiesto di inserire il proprio nominativo ed eventualmente effettuare una Esercitazione di utilizzo del touch screen. Come nelle schermate precedenti annullare ogni operazione ed accettare i 'Servizi Google' che verranno proposti.

Alla fine comparirà la schermata 'Configurazione completata' e sarà possibile premere il tasto 'Fine' per poter accedere al finalmente al telefono...

Dalla schermata di sinistra (il desktop n.1) scegliere 'Impostazioni' ed il tab denominato 'Tutte'. Scendere verso il basso e si vedrà l'opzione:

'{} Opzioni sviluppatore'

Premerla ed attivare (pulsante in alto e confermare con OK) le opzioni di sviluppo. Attivare anche l'opzione Debug USB (premendo su OK alla domanda).

A questo punto potremmo collegare il telefono al computer tramite il cavo fornito in dotazione e verifichiamo la corretta installazione del nuovo dispositivo USB:

con Linux verificarne la presenza con il comando 'lsusb':

debian@debian:~$ lsusb
Bus 001 Device 006: ID 0835:8502 Action Star Enterprise Co., Ltd
Bus 001 Device 005: ID 0835:8500 Action Star Enterprise Co., Ltd
Bus 001 Device 019: ID 12d1:1038 Huawei Technologies Co., Ltd. Ideos (debug mode)
Bus 001 Device 004: ID 0835:8501 Action Star Enterprise Co., Ltd
Bus 001 Device 003: ID 0835:8500 Action Star Enterprise Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 003: ID 05ac:020f Apple, Inc. Internal Keyboard/Trackpad (ISO)
Bus 002 Device 004: ID 05ac:8205 Apple, Inc. Bluetooth HCI
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
debian@debian:~$

Come si nota il telefono è connesso con VID 12d1 e PID 1038 (Huawei Technologies Co., Ltd. Ideos (debugmode))!!!

Disattivare nel telefono (nelle Impostazioni) l'opzione 'Avvio Veloce' in quanto precluderebbe le operazioni che seguiranno...

Sblocco del bootloader

Necessitiamo ora del codice di sblocco direttamente da Huawei in quanto è un codice che dipende strettamente dal codice IMEI, dal numero di serie del telefono e dal server di Huawei e quindi è differente da telefono a telefono...

Purtroppo il sito di riferimento di Huawei ha un codice html errato per la
selezione del telefono in nostro possesso e che risulta quindi non presente
nella lista di selezione del dispositivo (G510-0100).


Con un browser di ultima generazione (per esempio Mozilla Firefox oppure Mozilla Iceweasel) occorre modificare il codice html per far sì di ricevere correttamente il valore numerico di sblocco.

A questo punto occorre seguire la guida presente (in inglese) su questo sito che non dipende dal sistema Unix in uso (*BSD, Linux, OSX,...)


che semplicemente sfruttando la modalità di modifica del codice run-time del browser forza la spedizione al server la query corretta.

Una volta ottenuto il codice di sblocco, accendere il telefono ed attendere il completamento dell'avvio. Collegarlo al computer tramite cavo USB. Aprire una finestra di terminale e digitare i seguenti comandi:

  •  Con MacOS X aggiungere il path di installazione dei Android Developers Tools (per esempio):

$ export PATH=/Users/miomac/Desktop/platform-tools
 
ed invece per tutti lanciare il comando:

$ adb reboot-bootloader
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

Lo smartphone si resetterà presentando il logo Huawei. A questo punto siamo in modalità definita 'fastboot'.  Verifichiamone il corretto funzionamento digitando:

$ fastboot devices
3d4a2636        fastboot

Successivamente invocare lo sblocco del bootloader con:

$ fastboot oem unlock 12345678912345

ove al posto di 12345... inserire il codice ricevuto da Huawei nel punto precedente.

Il telefono risponderà con una serie di conferme:

...
(bootloader)     Unlocking ...

OKAY [  0.026s]
finished. total time: 0.026s

Ecco fatto! Il telefono è ora sbloccato. Effettuiamo un reboot:

$ fastboot reboot
rebooting...

finished. total time: 0.001s

Procediamo ora per il root del dispositivo scaricando il software di root da questo sito.

Estrarlo per esempio sulla scrivania, e successivamente, estraendo la memoria microSD dal telefono ed installarla nell'adattatore, copiarci la cartella dload.

Estrarre la microSD ed inserirla nel telefono ed accenderlo tenendo premuto i tre tasti contemporaneamente. Avverrà come predentemente accaduto l'upgrade del bootloader per ricevere il root / superuser.

Il telefono effettuerà un riavvio ed attendere il completamento del boot. Collegarlo al computer e riattivare nelle impostazioni il Debug USB.

Nella cartella installata precedentemente RootG510 c'è anche una serie di script per installare via USB il tool apk super user.

Lanciare lo script presente aroot.sh da terminale ed seguire le indicazioni sullo schermo.



Nota: Su MacOSX occorre editare lo script per adattare il percorso di PATH alla propria installazione.

Installazione di TWRP

Scaricare e scomprimere il seguente file per la modifica del recovery ed installazione di Team Win Recovery Project.

Aprire un terminale e lanciare il file rinstall.sh ed eventualmente adattare lo script per MacOS X come visto in precedenza.



Al termine avremo il nostro telefono libero da ogni vincolo che il costruttore aveva imposto in fase di produzione!!!

Verificarlo entrando nella modalità di Recovery tramite la pressione del tasto Vol + e contemporaneamente il tasto di Accensione per almeno 10 secondi.

Installazione di MIUI

Vi sono molte ROM in giro ma ho preferito fornirne 2: