Uso avanzato di ADB
Backup completo ed identico della ROM del SGS da ripristinare con flash Odin
Inizio questo mio tentativo di raccolta di guide dalla fine, ovvero da una gestione piuttosto avanzata, da PC, della shell del telefono. In realtà è stato il mio personale punto di partenza, data una familiarità con linux.
L'esigenza nasce dal fatto che la ClockWorkMod Recovery (si veda sopra), ed in particolare il 'nandroid backup' contenuto, effettua un backup assolutamente proprietario e - almeno nelle versioni più vecchie - non sempre utilizzabile in caso di problemi.
E visto che è per questo che si fa un backup...
Tale procedura può essere ad esempio utilizzata per salvare la ROM completa di un telefono originale prima di effettuare modifiche, in modo da potervi tornare in caso di necessità per garanzia, assistenza, ecc.
A bordo! Si parte...
ADB (
Android Debug Bridge) è il tool principale dell'
Android SDK.
In soldoni, una interfaccia a linea di comando per interagire col firmware linux based dello smartphone android.
Riferimenti di base:
-->
Guida all'uso di ADB/Fastboot - AndroidWiki
-->
Come funziona ADB
-->
ADB Tutorial su XDA
-->
Guida AndroidBlog - ADB: questo sconosciuto
-->
ADB Workshop and Guide for everyone - xda-developers
-->
[GUIDE] ADB, Fastboot, and Nandroid for Noobs - xda-developers
-->
[HOW-TO]Set up Android SDK/ADB/Fastboot on Ubuntu Linux - xda-developers
-->
[HOW-TO] ADB for Dummies(How-To Learner's Guide) - xda-developers
-->
Il riferimento principe: GOOGLE
Nelle guide c'è scritto anche come si installa. Siete pregati di leggere e non domandare.
NON IN QUESTO THREAD. GRAZIE.
Lo spunto ed i device name delle partizioni del Galaxy derivano dal thread
Roto Backup di XDA
anche se normalmente non ci si guarderebbe, visto che tratta del Galaxy Tab
E' richiesto il root (che comprende anche una versione installata di
busybox) e
l'
USB Debug Mode attivo
Collegare il telefono e, dal prompt dei comandi del pc
C:\...\sdk\tools\>
ADB SHELL
una volta connesso:
codice:
su
ash
#!/system/xbin/busybox
TODAY=$(date +%F)
DP=/sdcard/PartitionDump_$TODAY # cartella di destinazione (modificabile...)
busybox mkdir -p $DP ; cd $DP
dd if=/dev/block/bml1 bs=4096 of=boot.bin
dd if=/dev/block/bml2 bs=4096 of=s1-odin_XXX.pit
dd if=/dev/block/stl3 bs=4096 of=efs.rfs
dd if=/dev/block/bml4 bs=4096 of=Sbl.bin
dd if=/dev/block/stl6 bs=4096 of=param.lfs
dd if=/dev/block/bml7 bs=4096 of=zImage
dd if=/dev/block/stl9 bs=4096 of=factoryfs.rfs
dd if=/dev/block/stl10 bs=4096 of=dbdata.rfs
dd if=/dev/block/stl11 bs=4096 of=cache.rfs
dd if=/dev/block/bml12 bs=4096 of=modem.bin
tar zcvf backup_data.tar.gz /data
tar cvf backup_apk-odex.tar /data/app* /system/app* /system/frame*
md5sum -t * | sed 's/ / */' > $DP.md5; mv $DP.md5 ./\#PartDump.md5
Nota: è possibile che al primo comando 'su', se mai autorizzato in precedenza ADB, si debba convalidare la richiesta di SuperUser sul display del telefono.
N.B.: Il codice sopra elencato si può copiare/incollare così com'è nella finestra della shell, preferibilmente riga per riga. In questo modo si controllano meglio eventuali comportamenti o risposte impreviste.
ATTENZIONE: I DIRITTI DI ROOT SUL TELEFONO VI CONFERISCONO POTERE DI VITA/MORTE SULLO STESSO. OCCORRE USARLI CON RESPONSABILITA' E COMPRENDENDO COSA SI STA FACENDO...
Comunque il risultato è una cartella, nell'esempio (modificabile nel punto evidenziato in rosso), col nome che contiene la data del backup e le immagini di TUTTE le partizioni del telefono.
Immagino che qualcuno avrà riconosciuto con un certo interesse dei nomi di file noti (factoryfs.rfs, modem.bin, file.pit, ecc.)
Ci sono anche due backup 'bonus', sotto forma di TAR/GZ, della partizione DATA (2gb... non vale lo spazio salvarne il dump completo) e di tutte le applicazioni del telefono.
Personalmente l'ultimo "tar cvf" lo uso appunto per farmi il backup di TUTTE le app installate, sia di sistema sia dal market, sia quelle protette.
Magari torna utile.
Alla fine c'è il calcolo del
checksum MD5 che firma il pacchetto.
A questo punto abbiamo, su sdcard interna o dove vogliamo, il nostro backup fedele e completo della ROM e dei dati installati sul telefono.
Riutilizzabile come si preferisce, ad esempio si può masterizzare il tutto su un bel cd/dvd.
Ovviamente previo trasferimento sul pc del contenuto della cartella appena creata, attraverso
adb pull, collegamento
memoria di massa, o come si preferisce.
N.B.: c'è anche il backup esatto della famosa partizione EFS, che è il cuore del telefono personale, e che è sempre buona norma mettere da parte.
ALTRO RIFERIMENTO
Vediamo ora come usare quei file in ODIN.
Per
HEIMDALL, non sembra occorrano ulteriori spiegazioni: sono già pronti da inserire, no !?
Per creare i pacchetti di Odin, quindi dei formati
.tar, occorre innanzi tutto il software per costruirli (visto che winrar o 7zip, che si è abituati ad utilizzare per aprirli, non li creano).
Il tar è una applicazione standard linux (che personalmente consiglio), ma è anche possibile fare tutto sotto Windows, con
CygWin.
Poiché occorre un formato particolare di compressione, è necessaria una versione aggiornata del tar eseguibile. Non va bene quella presente sul busybox del cellulare.
I riferimenti per questa parte di procedura sono su:
XDA - ODIN StandAlone Package
Sul pc, nella cartella che contiene tutti i file, eseguire i due comandi (per CODE e MODEM):
codice:
tar -H ustar -cvf CODE_I9000-MiaRom.tar factoryfs.rfs param.lfs dbdata.rfs zImage
tar -H ustar -cvf MODEM_I9000-MiaRom.tar modem.bin
Per il CSC, non esiste a parte. Si trova già nella cartella /system/csc del telefono, quindi rientra nell'immagine factoryfs.rfs.
Per odin quindi si può omettere. Oppure recuperarne uno ufficiale.
Come si vede, a parte il modem.bin che è a parte, tutto ciò che abbiamo estratto dal telefono finisce nel file CODE.
I quattro file che ho indicato nell'esempio sono più o meno essenziali. E tutti quelli che servono.
Si potrebbero poi aggiungere anche i bootloader, primario e secondario (boot.bin e sbl.bin), ma questo renderebbe tutto più complicato poi nel flash, passando il pacchetto Odin da MID level ad un LOW level.
Per maggiori informazioni,
LINK.
L'immagine di EFS è come abbiamo detto il cuore del
nostro telefono privato, quindi non andrà mai flashata con Odin (o fornita a terzi...
), e mantenuta per casi di emergenza di errore IMEI.
Mentre il PIT tutti sappiamo che non va dentro il CODE e come recuperarne una versione vergine (quella sul telefono lo è raramente...) e adeguata al flash, JMx o JPx, che andremo a fare.
Come fiocco sulla confezione, si procede poi a firmare i pacchetti in modo che Odin possa anche verificarne l'integrità al momento del flash:
codice:
md5sum -t CODE_I9000-MiaRom.tar >> CODE_I9000-MiaRom.tar
mv CODE_I9000-MiaRom.tar CODE_I9000-MiaRom.tar.md5
md5sum -t MODEM_I9000-MiaRom.tar >> MODEM_I9000-MiaRom.tar
mv MODEM-MiaRom.tar MODEM_I9000-MiaRom.tar.md5
... ed abbiamo così costruito i pacchetti definitivi firmati:
CODE_I9000-MiaRom.tar.md5 e MODEM_I9000-MiaRom.tar.md5
della NOSTRA ROM personale, pronti per essere flashati da Odin, nel modo ormai familiare...
Spero davvero sia utile almeno per un backup/flash della propria rom originale, soprattutto se non si riesce a ritrovarne copia in internet, per ripristinare uno stato di garanzia.