[HOW TO][TEST] Modificare system.img STOCK Nexus 4
Buongiorno cari,
Questa giuda è ALTAMENTE SPERIMENTALE, nasce da un mio vecchio pallino:
voler modificare i file IMG stock in modo da poter flashare direttamente un firmware modificato da fastboot.
Quote:
Direte voi,
a che serve considerando la facilità con cui si flashano le rom con la recovery?
A Niente!
Ci sono strade più facili e meno incasinate, ma come vi ho detto, è una questione che mi tocca da diverso tempo e [edit] ci sono finalmente riuscito.
Prerequisiti
Quote:
1) UBUNTU 12.04 LTS a 32 bit correttamente installato (io ho usato un virtualizzatore)
1a) 7Zip installato (può tornare sempre utile)
2) Il pacchetto con
le immagini delle partizioni che si usa per ripristinare il nexus
3) Il pacchetto contenente
i programmi che ci permetteranno di realizzare la magia!
Procedimento
Quote:
PRIMA PARTE: Rendiamo leggibile il contenuto
Le immagini delle partizioni che si flashano direttamente sul telefono sono in un formato particolare, che ha bisogno di essere trattato prima di essere manipolato. Ora vi spiego come fare.
0) Posizionatevi nella cartella "NEXUS_4_MakeSystem" con il terminale
codice:
cd [trascinare la cartella]
dopo averlo ovviamente decompresso sul desktop con 7zip o simili
1) Estraete dal file contenente la factory image il file "system.img" e posizionatelo all'interno della cartella "NEXUS_4_MakeSystem"
2) Date il comando (copia e incolla)
creerete così la cartella "update" all'interno di "NEXUS_4_MakeSystem". Se il nome non vi piace cambiatelo
3) Date il comando (copia e incolla)
codice:
./simg2img system.img output.img
creerete così un file "output.img" di circa 900 mb. Quella è la nostra partizione non compressa. se il nome non vi piace, mettete quello che vi pare.
4) Date il comando
codice:
mount -t ext4 -o loop output.img update/
questo comando monterà l'immagine appena creata nella cartella "update", in modo da renderne visibile il contenuto.
BENE! Questa è fatta.
Quote:
SECONDA PARTE: Modificare il contenuto
Arrivati a sto punto avete una cartella che potete modificare solo utilizzando il terminale.
Se siete arrivati qui dalla parte precedente della guida, dovreste essere ancora
operativi come utente root
Per verificarlo guardate il terminale, se come ultimo carattere della riga è presente il carattere
# vuol dire che siete loggati come root, diversamente se è presente
$ siete loggati come amministratore semplice, e non potrete operare in quella cartella.
È importante.
Ora vediamo come fare per modificare i file.
1) Per copiare un file:
codice:
cp [trascinare file origine] [trascinare cartella destinazione]
2) Per copiare una cartella
codice:
cp -r [trascinare cartella origine] [trascinare cartella destinazione]
3) Per eliminare un file
codice:
rm [trascinare il file]
4) Per eliminare una cartella
codice:
rm -r [trascinare la cartella]
Questi sono i comandi base per editare la partizione system, vi ricordo che bisogna essere utente root (almeno nel terminale) per poterlo fare.
Quote:
TERZA PARTE: Ricreare la partizione
Ultima parte della guida, conclusa questa sarete in possesso di una immagine system.img da flashare con fastboot o con i vari tools disponibili per il nexus. il procedimento necessita dei privilegi di root dal terminale
#
1) Posizionatevi nella cartella "NEXUS_4_MakeSystem" con il terminale
2) Dare il comando (copia e incolla)
codice:
./make_ext4fs -s -l 840M -a system new_system.img update/
questo è il comando principale, dategli il tempo necesario e creerà un file chiamato "new_system.img" all'interno della cartella "NEXUS_4_MakeSystem". Volendo siete già
pronti per flashare.
3) Smontare la partizione su cui abbiamo lavorato
4) Rimuovere la cartella "update"
codice:
rm -rf [trascinare cartella]
5) Digitare sul terminale
per tornare ad avere i privilegi di utente normale
6) Ripetere il punto 5 per chiudere il terminale.
Fatto! ora avete a disposizione una immagine moddata a vostro piacimento che potrete flashare, e avrete ripulito la cartella di lavoro dalle varie cartelle con i permessi di root.
Consigli Finali
Quote:
Permessi File e Esecuzione
Nel caso qualcuno ci provi, e come è successo a me si impantani nell'esecuzione dei programmi da terminale, deve tenere in considerazione due cose fondamentali:
1) I file "
simg2img" e "
make_ext4fs" sono dei programmi, e nei permessi devono avere le autorizzazioni ad essere eseguiti.
se non sapete come fare, nel terminale digitate
codice:
sudo chmod 755 [trascinare file]
2) I programmi si eseguono
solo su macchina a 32 bit!
A me rendeva continuamente un errore, cambiato sistema operativo (da ubuntu x64 a x 86) hanno funzionato perfettamente.
È un procedimento DELICATO, se non siete pratici rischiate di combinare casini.
Prima di tutto (anche prima di installare ubuntu, non si sa mai :P), fare un NANDROID BACKUP da una condizione stabile in modo da poter tornare indietro senza perdere dati.