Come fare i reflash in SBF by flash.tato
Nota introduttiva : E’ consentito copiare, distribuire e/o modificare questo documento sotto le direttive della GNU Free Documentation License, Version 3 o ogni altra versione pubblicata dalla Free Software Foundation; in particolare si pone rilevanza sui punti 4.a : per eventuali modifiche che devono riportare chiaramente che sono copie modificate e la data di modifica (non spacciate per proprie) e 4.b : Bisogna fare in modo che ogni opera distribuita o pubblicata, che in parte o nella sua totalità derivi da parti di esso, sia concessa nella sua interezza in licenza gratuita ad ogni terza parte, secondo i termini di questa Licenza.Maggiori Info : Licenza Gpl v3 su Umtsplanet __________________________________________________ ____________________________________________ INTRODUZIONEIl nome SBF significa Super Base File.
Il formato SBF è un altro standard dei firmware Motorola che sembra imporsi con prepotenza agli SHX per una serie di molteplici motivi.
Ma al momento non ci sono tutorial e guide per i file SBF, infatti sono orgoglioso di poter dire che questo è il primo tutorial per l'editing dei file SBF!!!
Tutto quello che vedete qua sotto è frutto dei miei studi su questo file e il bello è che ci ho azzeccato nella creazione dei reflash in SBF al secondo tentativo (al 1° mi ero dimenticato di calcolare il checksum del RAM Downloader che sembra essere una dimenticanza incurabile infatti non è la prima 1° volta che mi dimentico ).INIZIAMOOCCORENTE -
HEX Workshop 4.22 -
Motorola Firmware Fusion ALL.
DISCLAIMER!!! Al momento non ci sono editor per i file SBF per cui la maggior parte del lavoro và fatto in HEX
, il Motorola Firmware Fusion ALL ci servirà solo per semplificare un passaggio
____________________________
Nel mio tutorial prenderò come spunto questo firmware che guarda caso è in formato SBF
:
R252211LD_U_85_1_.97.43P_LP0039_DRM0001_R25221005.
____________________________
Adesso possiamo iniziare davvero!!! ____________________________
Adesso apriamo il file
SBF con HEX Workshop.
Quella che abbiamo davanti a noi è una parte della Header.
Adesso come primo obiettivo vogliamo estrarre la Header.
E per far ciò andiamo su
Edit>Select Block (prima posizioniamo il cursore all'inizio del file all'offset
0).
Ci apparirà una schermata che ci chiede la lunghezza del blocco e come tutti sanno (spero....) che la Header è di 7,98 Kb (questa lunghezza non può variare) scriviamo
8172 Così facendo dovrebbe aver selezionato la
Header adesso facciamo
Tasto destro del mouse>Copy (
CTRL+C).
Creiamo un nuovo file con HEX Workshop facendo
File>New (
CTRL+N).
E vi dovrebbe apparire un file vuoto davanti a voi adesso clicchiamo
Tasto destro del mouse>Paste (
CTRL+V).
Ci apparirà una schermata
Are you sure want to insert? noi clicchiamo
OK e adesso vediamo che nel file vuoto verrà incollata la
Header dopo di che facciamo
File>Save (
CTRL+S) e lo salviamo.
Adesso apriamo il
Motorola Firmware Fusion ALL e andiamo su
Analizza Header.
.
E ci apparirà questa schermata (cliccare sulla
thumbnail)
.
Clicchiamo su
Sfoglia e selezioniamo la
Header che abbiamo appena preso dal file
SBF e clicchiamo
Analizza Header.
Facendo così la lista verrà aggiornata con tutti i dati della Header.
Essendo il nostro obiettivo creare un SW Lite senza la
Flex (
CG2) selezioniamo tutti i Codegroup eccetto il
CG2 come nello screen
.
Una volta spuntate tutte le checkbox eccetto quella della
Flex (
CG2) adesso possiamo cliccare su "
Crea Nuovo Header" e il Motorola Firmware Fusion ALL creerà nella stessa cartella dalla quale abbiamo preso la
Header base un nuovo file "
New_Header.hmg".
Segnamoci da qualche parte lo Start Adress della Flex: (ci servirà dopo).
Adesso apriamo la nuova "
Header" con
HEX Workshop.
La selezioniamo tutta facendo
Edit>Select All (
CTRL+A) e facciamo
Tasto destro del mouse>Copy (
CTRL+C) e abbiamo copiato la Header.
Adesso riapriamo il file
SBF.
Dobbiamo selezionare i primi
8172 Byte del file e lo facciamo come abbiamo fatto in precedenza (ma riscrivo il procedimenti
).
Posizioniamo il cursore all'inizio del file e selezioniamo
Edit>Select Block e ci apparirà una schermata che compileremo come descritto nello screen di sotto.
.
Dopodichè
HEX Workshop dovrebbe avervi selezionato i primi
8172 del file.
Poi sull'area selezionata facciamo
Tasto destro del mouse>Paste (
CTRL+V) e così abbiamo incollato la Header appena creata con il Motorola Firmware Fusion ALL.
Abbiamo appena completato una parte del lavoro
adesso però dobbiamo editare il RAM Downloader.
Adesso clicchiamo su
Edit>Goto (
CTRL+G) e scriviamo come descritto nello screen di qua sotto
.
A questo punto dovrebbe portarci alla fine della Header.
Adesso viene il bello
Allora io dico di prendere in considerazione i prossimi
17 Bytes che adesso analizzeremo, visto che quei
17 Bytes ci segnalano che dopo c'e' un Codegroup, ma prima di andare dritti al
Codegroup analizziamo questi
17 Byte.
Allora sono
Codice:
02 00 00 00 00 00 03 02 01 00 01 90 00 08 00 00 00
I primi
9 Bytes ci dicono che dopo quello c'e' un Codegroup, sarebbe una sorta di record
S0 dei file
SHX.
Codice:
02 00 00 00 00 00 03 02 01
.
Gli altri
4 Bytes invece ci indicano la grandezza del
Codegroup.
Proviamo a convertire
19000 in decimale =
102400. Quindi significa che il Codegroup che abbiamo davanti a noi è grande
102400 Bytes.
Poi gli ultimi
4 Bytes della stringa sono lo
Start Adress del
Codegroup.
08000000 è lo
Start Adress del
Ram Downloader (
CG0).
Quindi adesso ci posizioniamo nell'offset che è successiva alla stringa
08 00 00 00.
Clicchiamo
Edit>Find (
CTRL+F) e ci apparirà una schermata nella quale scriveremo lo
Start Adress che ci eravamo segnati prima (come descritto nello screen di sotto).
.
Poi cliccate
OK e vi dovrebbe portare all'offset
8453 come descritto nello screen.
Adesso dobbiamo mettere a
FF 11 DC 00 00 e i successivi 4 byte (13 8B FF FF) per ottenere un risultato come descritto nello screen di sotto.
.
Adesso ci riposizioniamo all'inizio del
Codegroup (Offset
8198) e facciamo
Edit>Select Block e compiliamo come descritto nello screen
Cos' abbiamo tutto il RAM Downloader adesso dobbiamo calcolare il
Checksum perchè mettendo a
FF gli
Start/End Adress della
Flex il
Checksum è cambiato!!!
E lo facciamo tramite
Tools>Generate Checksum e selezioniamo
Checksum 16 Bit.
Poi guardiamo in basso a destra dovremmo trovare il risultato del
Calcolo del checksum.
Adesso rianalizziamo la
Header con il Motorola Firmware Fusion ALL con l'obiettivo di cercare il
Checksum del
Ram Downloader.
Adesso con l'HEX Editor ci posizioniamo all'inizio del file e cerchiamo il
Checksum in
Little Endian.
Il checksum è
18 71 che in
Little Endian diventa
71 18 quindi facciamo
Edit>Find (
CTRL+F) e compiliamo la Box come descritto qua sotto
e vi dovrebbe portare all'offset
3CC Adesso dobbiamo editare
71 18 con il Checksum che abbiamo appena ricalcolato:
1C E0--->
E0 1C.
Quindi al posto di
71 18 scriviamo
E0 1C.
Adesso ci manca l'ultimo passaggio:
Eliminare la Flex (CG2).
Prima abbiamo detto che un CG inizia per
Codice:
02 00 00 00 00 00 03 02 01
quindi con HEX Workshop ci posizioniamo all'inizio del file andiamo su
Edit>Find (
CTRL+F) e compiliamo la schermata come descritto nell'esempio
La 1° volta che trova questa stringa, cliccate
F3 due volte e vi porterà automaticamente alla stringa d'apertura della
Flex che dobbiamo cancellare dal firmware.
.
Adesso il nostro obiettivo è cercare la lunghezza in byte del
CG2.
La stringa d'apertura è
Codice:
02 00 00 00 00 00 03 02 01 01 B0 00 00 11 DC 00 00
La grandezza del
CG sembra essere
01 B0 00 00-->
28311552.
Benissimo adesso abbiamo la grandezza del Codegroup.
Quindi ci posizioniamo nel byte successivo allo
Start Adress e facciamo
Edit>Select Block e compiliamo come descritto nello screen
E dopo facciamo
Tasto destro del mouse>Delete.
Adesso però dobbiamo cancellare la stringa d'apertura e di chiusura della
Flex (
CG2).
Per prima selezioniamo questa stringa
Codice:
02 00 00 00 00 00 03 02 01 01 B0 00 00 11 DC 00 00
e la cancelliamo con
Tasto destro del mouse>Delete.
Però adesso rimane da cancellare la stringa di chiusura della
Flex (
CG2) che è
Codice:
00 00 00 00 03 02 02 00 00 00 00 03
I primi
4 Bytes sembrano essere un Checksum
32 Bit (bisogna ancora capire il ragionamento) che però si può anche mettere a
00 I programmi lo accetteranno lo stesso
Gli altri
8 Bytes indicano che il
CG finisce là.
Codice:
03 02 02 00 00 00 00 03
Quindi adesso selezioniamo la stringa di chiusura e la cancelliamo con
Tasto destro del mouse>Delete.
Adesso il nostro reflash si può postare senza ombra di dubbio.
Complimenti! Avete creato il primo reflash in
SBF.
Ringraziamenti -
famonaco,
daniclara,
alsitn: per avermi incoraggiato a scoprire qualcosa sui file
SBF -
Rankine,
LeaderGL,
ZoRoThEBeSt,
Cannone: per avermi fortemente voluto come Moderatore in questo forum.
-
Giro: per avermi lanciato nel mondo dei firmware.
(se vuoi postare questa cosa su PMobile puoi farlo senza problemi
)
E aggiungo io: Grazie mille a flash.tato