Jump to content
Nokioteca Forum

Capire Come Il Telefono Decompila I File .mif Dei Themi


Deltafox®
 Share

Recommended Posts

Salve,

cercavo una mano da qualche user bravo in c+ o asm per capire in che modo il telefono symbian decompila i file .mif dei themi

ecco ciò che so, ricapitolando :

1) I file .mif contengono tutti i file in formato svg ( scalare vector graphics ) che altro non sono dei plain text xml visionabili con qualsiasi soft di grafica vettoriale tipo adobe illustrator etc,

in effetti aprendo un .mif di una icona di un programma notiamo che in esso sono presenti tag come <svg>...</svg> e quindi da esso è possibile ricavare tutti i file svg presenti..

2) dai .mif di certo da quelli usati per le icone dei soft è possibile estrarre i relativi svg in esso contenuti usando ad esempio soft per cell del tipo smartsis v2.24 testato e funzionate, quest'ultimo ricompila anche da svg a mif e fin qui tt ok

4) Il problema sorge dai file .mif dei themi che a differenza dei .mif usati per creare le icone dei software e giochi per il cell non hanno una struttura plain text ma una struttura binaria..

All'inizio pensavo ad un formato particolare dei svg chiamato e avente estenzione svgZ che sono file binari ma non è cosi...

Quindi ho cercato chi si occupa di questa conversione o meglio dire di questa codificazione di un svg a svgB per poi inserirli in un unico .mif

Il soft che fa ciò è il file SVGTBINENCODE.exe usato anche da Carbide UI theme studio...

Ed ecco alcuni esempi :

Esempio di un svg estratto da un .mif di un icona programma :

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 11.0, SVG Export Plug-In  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"	"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
  <!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
  <!ENTITY ns_svg "http://www.w3.org/2000/svg">
  <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg  xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
width="27" height="21" viewBox="-0.399 -0.916 27 21" xml:space="preserve">
  <defs>
  </defs>
  <g>
  <linearGradient id="XMLID_1_" gradientUnits="userSpaceOnUse" x1="2.3804" y1="-2.2266" x2="23.8402" y2="22.4602">
etc etc

come si evince è in plain text xml e perfettamente visionabile con un soft di grafica vettoriale..

Esempio di un svgb estratto da un .mif di un thema di cui posso postare essendo un file binario la sola struttura Ascii :

.... L.a.y.e.r.1.1....
etc etc
p.r.e.s.e.r.v.e......
..etc etc

S.V.G.I.D....1
....
S.V.G.I.D....2..v.4...
etcetc
S.V.G.I.D....3..v.4.4..
etc.. etc

Tutti i svgb estratti quindi da un .mif dei themi hanno la medesima struttura ASCII di partenza :

svgthemesyn6.th.jpg

qui di seguito ho ripacchettato due svg estratti da un mif file di un thema per chi volesse darci uno sguardo presupponendo che smartsis sia capace di estrarli anche da un .mif contenente svgb..:

http://rapidshare.com/files/134642328/themepackage.rar.html

Il processo con cui si crea un mif thema è riprendendo ora alcune discussioni da me effettuate anche sul forum ufficiale nokia :

- Multiple SVG XML text source compressed into WBXML (single binary file) .mif by theme studio SVGTBINENCODE.exe.

- Nokia SDK/phone software read ID's and source from .mif and draw icon part on phone

- Can someone make a standalone binary converter to xml text source?

- Can someone make phone program to read icon (.mif) file id and part then export text source rather than display on phone screen?

e

.mif's are compressed binary xml and they do describe multiple <SVG> ---- </SVG> graphics. While it must be possible, the problem is I have not yet found any tool to simply convert the compressed binary xml into source text xml so each part/icon can be ripped out.

For example in Adobe Illustrator or other SVG compatible editor:

If you search your phone using a file browser for .mif files and copy to your computer you will find nokia mif's and some third party are in the compressed binary format wheras other third party apps have not compressed the file and it remains named .mif but text xml. You can open such mifs in notepad and simply copy the code for an icon starting from the tag <SVG> to </SVG> and place it into a new text file named whatever.svg instead of .mif....Then simply open the new .svg in your favourite SVG editor and modify to your desires.

SVG is here to stay so can someone please work out how to get the text source out of the compressed binary format? Perhaps on the phone the AVKON api to read from mif's and dispaly the relevant icon part on the phone do not allow for source reading simply and pass through id tags to display otherwise this must be a very simple phone utility to make for any symbina/C++ person to write source from AVKON call to text file on the phone rather than display the icon on the phone.

Moreso Nokia should simply release the N series original icons and themes so users can work with them in new thermes. They provide them in the original phone with the silver otulines yet once you add a bunch of thrid party apps everything looks out of sorts being inconsistent. Then they release a basic different set in all their theme editors. Doesn't make sense to me.

Veniamo a noi quindi :

SVGTBINENCODE.exe è il file che si occupa di convertire le immagini svg in svgb o meglio codificarle in binario per poi inserirli tutti in un unico .mif per themy gestito poi dal S.O. symbian dei cell 3rd edition

Ora chiedo se qui è presente qualcuno con conoscenza c+ oppure assembler che potrebbe aiutarmi a capire il processo di codifica e magari come effettuare l'operazione inversa...

Ho decompilato il file SVGTBINENCODE.exe usando IDA Pro v5.2.0 build 908

ho esportato il codice decompilato in formato HTML, in assembler .asm e infine in .idb per chi usa Ida pro...

Ho ripacchettato il tutto in un unico rar includendo anche il file originale SVGTBINENCODE.exe

E' possibile scaricarlo qui :

http://rapidshare.com/files/134782655/SVGTBINENCODE.rar.html

Se qualcuna ha voglia di perderci un pò di tempo per capire il processo con cui un classico svg venga codificato in binario, sarebbe una cosa gradita.. e sarebbe un'altra muro abbattuto in termini di conoscenza per questo sistema operativo Symbian 3rd edition.

:suicide_anim:

Saluti

Modificato da Deltafox®
Link to comment
Condividi su altri siti

Vedi anche qui:

https://www.nokioteca.net/home/forum/index....showtopic=60824

Io sono riuscito a decodificare il .mif ottenendo tutte le svg dei temi in chiaro, mi mancano un paio di cosine minori ma un buon 95% del lavoro e' fatto...

Dopo le vacanze realizzero' un sito web tramite cui sara' possibile postare il tema e recuperare le relative svg.

plainsvgho4.png

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Bene Bene , mi ricordo del tuo Nick ..

Anche se non frequento spesso questo forum tempo addietro rimasi a leggere di certo qualcuno dei tuoi post..

Guarderò sicuramente quel link e da quanto vedo qui invece devo dire che anche smartsis svolge allora egregiamente il suo lavoro anche sui .mif dei themi.. se pur lo avevo intuito perchè gli svg aveva tutti la medesima struttura ASCII iniziale e non estratti a casaccio...

e che tu ( permettimi il tu se vuoi ) sia riuscito a convertire da un chiamiamolo ora "svg binario" ad uno classico in plain text è grandioso.. hai la mia stima per questo ed anche per il semplice fatto che ad un post del genere solo qui abbia avuto una risposta la tua :crying_anim02:..

Edit : ho letto il post eh si era quello che avevo letto tempo fa ed all'epoca i riferimenti sul forum nokia per WBXML fui io a introdurli poi non ebbi nemmeno più tempo...

Una domanda se posso... se è come credo sia, pensi sia da scartare un algo proprietario nokia per questo tipo di formato giusto?

Grazie e Saluti intanto .. ottimo forum... ottimi anche i mod :crying_anim02:

Modificato da Deltafox®
Link to comment
Condividi su altri siti

Ahime' il formato e' totalmente proprietario... Alla fin fine il formato mif non e' molto differente dal "vecchio" mbm, per l'analisi del formato ti conviene usare SISXplorer http://www.symbian-toys.com/sisxplorer.aspx#download :crying_anim02: che ti permette di estrarre le varie svg binarie ed al contempo visualizzare i contenuti del .mif nell'hex-viewer integrato.

Piuttosto, la parte maggiormente incasinata e' la decodifica del file svg binario per riportarlo ad un svg in plain text... Decisamente un lavoraccio...

Link to comment
Condividi su altri siti

capito.. leggendo in rete ho trovato alcuni spunti...

correggimi se sbaglio, credo allora sia un formato proprietario chiamiamolo svg2 che debba essere solo riparsato prima di leggerlo come un vero e proprio svgt e da qui ad un classico svg?...

while (<>) {
if (/style=\"(.*)\"/) {
	my @styles = split /;/,$1;
	foreach $style (@styles) {
		if ($style =~ /(.*):(.*)/) {
			print "$1=\"$2\"\n";
		}
	}
} else {
	print $_;
}
}

uno script in perl che con l'ausilio di Inkscape forse ma solo forse dovrebbe risolvere il problema...

Vediamo e grazie per i tanti consigli... intanto mi sto scaricando l'sdk 3rd fp1... e vediamo domani se ho tempo di capire cosa fa svg2svgtconverter che è contenuto nell'sdk...

Ottimo soft... sisxplorer :crying_anim02:

Ciao

Modificato da Deltafox®
Link to comment
Condividi su altri siti

da svg2 arrivi a svgt tramite la decodifica del formato proprietario di nokia, ma da qui non puoi in alcun modo tornare all'svg originale, perche' quelle info vanno a perdersi in fase di creazione del tema... Nel tema ci sono i files in formato svgt (svg2) non ci sono i files originali in svg.

l'svg2svgtconverter converte da svg a svg-tiny file che sara' poi ancora convertito dal svgtbinencoder in svg2

Link to comment
Condividi su altri siti

  • 5 settimane dopo...

UN APPELLO A VOI

Vi prego di abbandonare l'idea di decompilare i temi non sapete quanto ci vuole per fare un iconset completo in SVG

ci sono da rifare centinaia di icone e occorrono settimane per finirlo.

Non e' possibile che qualcuno con un colpo di mouse, vanifichi la nostra opera.

Voi che create programmi potete capire da soli la frustrazione di vedere una propria opera copiata senza ritegno da tutti

Poi c'e' da dire che qualcuno gli iconset li compra e li paga diverse decine di euro solo per fare una cosa diversa dal solito

Spero capiate la mia problematica grazie.

Link to comment
Condividi su altri siti

Allo stato attuale non e' piu' una semplice idea...

https://www.nokioteca.net/home/forum/index....howtopic=129077

Capisco il tuo disappunto, in effetti quando avevo iniziato a lavorarci sopra non mi ero spinto troppo in la con le implicazioni.

E' un progetto che ho iniziato piu' o meno un'anno fa https://www.nokioteca.net/home/forum/index....showtopic=60824 e non posso abbandonarlo proprio adesso che e' concluso, anche perche' nel frattempo ho coinvolto altre persone.

Per ora, l'idea e' quella di rendere il servizio disponibile tramite web, l'utente invia al sito un proprio tema e gli vengono restituite le immagini .svg estratte dal tema.

L'ideale, sarebbe trovare qualche modo alternativo di impiegare questo engine per un fine differente da quello di estrarre le immagini e fornirle all'utente, ma al momento non me ne viene in mente nessuno... Qualsiasi idea alternativa e' ben accetta!

Link to comment
Condividi su altri siti

Di soluzioni alternative non ne trovo altre se non cancellare questo codice,sapevo che prima o poi qualcuno ci sarebbe arrivato

non cosi' presto pero'

Capisci il mio disappunto ma non rispetti il mio lavoro

e sicuramente io non rispettero' piu' il tuo ci mettero' del tempo ma arrivero' al bandolo della matassa.

Link to comment
Condividi su altri siti

Di soluzioni alternative non ne trovo altre se non cancellare questo codice.

eh beh qui però sei anche tu che non rispetti il lavoro de il.socio...

purtroppo non è una cosa che vuole iniziare ora, ma che ha iniziato da parecchio tempo e che è arrivata quasi alla conclusione...

Link to comment
Condividi su altri siti

Di soluzioni alternative non ne trovo altre se non cancellare questo codice,

Purtroppo questo non e' possibile, come ti dicevo non ci sono solo di mezzo io, ma anche altra gente che ha investito del tempo su questo progetto e con o senza di me, verra' attuato... L'unica strada praticabile e' quella di trovare altri possibili utilizzi di questo engine cosi' da non scontentare nessuno.

sapevo che prima o poi qualcuno ci sarebbe arrivato

non cosi' presto pero'

Beh, quasi un anno a tempo perso non si sposa molto bene con il mio personale concetto di "cosi' presto"...

Capisci il mio disappunto ma non rispetti il mio lavoro

Ti sbagli, e' proprio per questo che ti ho invitato a suggerire dei possibili impieghi differenti dell'engine.

Se non rispettassi il tuo lavoro non avrei neppure perso tempo a risponderti, o a cercare qualche strada alternativa, ti pare?

Modificato da Il.Socio
Link to comment
Condividi su altri siti

  • 1 anno dopo...
  • 1 mese dopo...
E' tecnicamente fattibile ed e' gia' stato fatto in passato...

Ma che io sappia, non esiste nessun tool in giro in grado di estrarre correttamente le icone dai temi nokia.

Esiste un programma chiamto Ivan Image Converter che puo convertire mif in altri formati oppure anche con sisxplorer

Modificato da Andrea993
Link to comment
Condividi su altri siti

Questo (Magick Image File Format) a cui fai riferimento tu:

http://www.ivanview.com/converter/mif-batch-converter.html

Non e' il formato MIF utilizzato da Nokia.

I due, in comune hanno solamente l'estensione.

Il formato MIF utilizzato da Nokia non puo' essere manipolato da quel tool che hai indicato.

SISXplorer e' in grado di unpackare correttamente il MIF, ma la parte piu' ardua e' la decodifica dei file che sono presenti al suo interno.

Se i file contenuti nel MIF sono in formato SVG allora SISXplorer li visualizzera' correttamente... Se invece sono in formato SVGB (formato proprietario di Nokia) SISXplorer non li visualizzera' perche' e' necessario un ulteriore step di decodifica per passare dal SVGB al SVG

Modificato da Il.Socio
Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy