Premessa
Uffa, ma che titolo ha questo thread?
E' ormai parecchio tempo che non posto quasi più online per problemi di tempo e lavoro, ma quando hai in mano un telefono come questo come si fa a resistere?
...è davvero uno spettacolo di tecnologia a un prezzo incredibilmente basso...
...ed è personalizzabilissimo!
...inoltre con poche semplicissime attenzioni (vedi dopo) è praticamente IMBRICCABILE!
Custom Recovery
ovvero a "meno uno" dall'imbriccabilità del telefono
Di recovery ce ne sono davvero tante ma, di solito, mi piace compilarmela da solo...
Questa volta ho preso la TWRP e l'ho compilata dai sorgenti OmniROM seguendo queste istruzioni!
il risultato è una recovery TWRP 2.8.10 touch perfettamente funzionante , che ho installato da bootloader unlocked:
Una volta avviata, fatto il backup del sistema corrente su scheda SD e copiato su PC, sono in una botte di ferro!codice:mfastboot flash recovery recovery.img
Qualunque cosa farò poi (escluse ovviamente le cosiddette c....77...te) potrò sempre ricominciare da qui, col telefono perfettamente funzionante!
Firmware Stock 4.4.4, bootloader e flash sicuro al 100%
Quali sono, allora, e come posso evitare errori irrecuperabili?
Dopo avere scaricato il firmware ufficiale 4.4.4 (esattamente quello che ho trovato installato nel telefono) da qui, guardo come è fatto.
ATTENZIONE: Ho scaricato ESATTAMENTE il firmware che ho nel telefono (in impostazioni -> info telefono leggo proprio KXC21.5-40), non uno quasi simile...
Se voglio ripristinare lo Stock firmware...codice:doc@saucy:~$ unzip RETEUALL_XT1021_4.4.4_KXC21.5-40_cid7_CFC.xml.zip Archive: RETEUALL_XT1021_4.4.4_KXC21.5-40_cid7_CFC.xml.zip inflating: motoboot.img inflating: recovery.img inflating: fsg.mbn inflating: gpt.bin inflating: boot.img inflating: system.img_sparsechunk.0 inflating: system.img_sparsechunk.1 inflating: system.img_sparsechunk.2 inflating: logo.bin inflating: NON-HLOS.bin inflating: flashfile.xml inflating: servicefile.xml doc@saucy:~$
...è davvero necessario riflashare sempre tutto ogni volta?
Leggo su internet di gente disperata perchè non riesce più a fare il downgrade del bootloader o non flasha più i file motoboot.img e gpt.bin e ottiene sempre errori e tutto è perduto...
Leggo anche domande su quale bootloader serve per Lollipop e quale bootloader, invece, per Kitkat... e via discorrendo...
Avendo, per fortuna, buona conoscenza di Linux, Android, Compilazione, custom ROM, kernel ecc..., tutte le volte che installo una ROM non ufficiale, vedo che cambiano solo queste due partizioni:
- boot.img
- system.img
...stessa cosa ogni volta che faccio un restore da Recovery...
...è evidente, quindi, che, se limito la mia attività pseudo distruttiva a Custom ROM, Modding e robe simili... potrò sempre recuperare i danni fatti, qualunque essi siano...
...e senza mai bisogno di toccare motoboot.img e/o gpt.bin...
N.B. Se un aggiornamento ufficiale me li cambia... terrò semplicemente quelli...
Nel caso però che io voglia provare un custom Lollipop, partendo da un bootloader KitKat, non ci saranno affatto problemi e non sarà necessario aggiornare ufficialmente nulla prima di farlo :
infatti il Kernel di Kitkat e il Kernel di Lollilop hanno lo stesso punto di inizio in memoria: non entro nei dettagli della cosa, ma, accendendo il telefonino, dopo che il bootloader (motoboot + gpt.bin) ha fatto la sua parte, si limita a caricare in memoria il contenuto della partizione boot.img per farlo partire da un punto prestabilito... ma cosa c'è lì dentro non è un problema suo... è evidente che Lollipop o KitKat o JellyBean allora andranno - di fatto - bene uguale: partono tutti dallo stesso identico punto.
Ogni custom ROM, in definitiva, ha un boot.img e un system.img propri... e tutto il resto non conta veramente... ...basta che la ROM sia del telefono giusto però...
Gpt.bin
Tecnicamente questa non è una partizione come le altre, ma una "tavola di partizioni" di tipo nuovo (GUID Partition Table), trovata negli ultimi PC con tecnologia UEFI e simili e anche nel Moto E...
Cosa contiene?
se in linux uso il comando gdisk, ottengo:
...36 partizioni dentro al telefono in fondo sono un bel pò di partizioni...quando a me ne bastano tre (boot, recovery, system) per divertirmi...codice:doc@saucy:~$ gdisk -l gpt.bin GPT fdisk (gdisk) version 0.8.8 [...] Number Start (sector) End (sector) Size Code Name 1 256 131327 64.0 MiB 0700 modem 2 131328 132351 512.0 KiB FFFF sbl1 [...] 17 155648 158719 1.5 MiB FFFF modemst1 18 158720 161791 1.5 MiB FFFF modemst2 [...] 30 207616 208639 512.0 KiB FFFF misc 31 208640 229039 10.0 MiB FFFF boot 32 229040 249599 10.0 MiB FFFF recovery 33 249600 1179647 454.1 MiB 0700 cache 34 1179648 3014655 896.0 MiB 0700 system 35 3014656 3031039 8.0 MiB FFFF kpan 36 3031040 3031039 0 bytes 0700 userdata doc@saucy:~$
Occasionalmente una Stock ROM potrà riscrivere questa tabella (gpt.bin) magari per dare un pò più spazio a system o data e viceversa e, in generale, ridimensionare le partizioni interne del telefono... come fosse una specie di Hard Disk insomma...
...se, però, io sto attento a scrivere in system qualunque cosa più piccola di 896Mb e in boot qualunque cosa più piccola di 10Mb...
...allora posso metterci quello che voglio che, nel peggiore dei casi, semplicemente non funzionerà ma non briccherà mai nulla...
Riassumendo: non ho nessun vero motivo per flashare motoboot.img e gpt.bin, se non per autoaggiornamenti OTA del firmware originale... chi me lo fa fare, allora, di cambiarli (rischiando bricks) se non ce n'è veramente bisogno?
Lollipop 5.1.1 a razzo
Forte di quanto appena detto, ho compilato dai sorgenti l'ultima versione di Cyanogenmod: la 12.1, cioè Lollilop 5.1.1...
...e l'ho installata da Recovery TWRP 2.8.10 senza toccare motoboot.img e gpt.bin del Kitkat originale...
Questo è il risultato:
Easy Play!
N.B. La prima compilazione di Lollipop mi ha, in realtà, un pò deluso:
...molto lento il primo boot (quasi 8 minuti)...
...prestazioni piuttosto scadenti...
...bordo rosso occasionalmente lampeggiante...
Ho aggiunto allora una modifica a BoardConfig.mk per migliorarne le prestazioni:
...e una a system.prop per risolvere il problema del Red Border:codice:WITH_DEXPREOPT := true DONT_DEXPREOPT_PREBUILTS := true
...ho ricompilato, e...codice:persist.sys.strictmode.visual=0 persist.sys.strictmode.disable=1
...hei, wow...
DAVVERO IMPRESSIONANTE!
...lo zip installabile da Recovery si trova qui.
...e come al solito i passaggi obbligatori per installare una Custom ROM da recovery sono sempre gli stessi:
- Factory reset,
- Install zip file,
- wipe cache and dalvik,
- reboot!
Google apps
Infine, non voglio certo farmi mancare nulla, quindi da qui ho preso una versione stringatissima (zero) delle Google Apps, installate anche loro da recovery.
Gli anglosassoni direbbero:
working like a charm!
N.B. Ho finito; nel mio Google Drive c'è proprio tutto quello di cui ho appena discusso.