ZioGeek Forum  

Torna Indietro   ZioGeek Forum > Tecnologia e Web > CinaFonini > Studi e Progetti MTK Firmware

Ultimi post su Ziogeek
Come Sarà iOS 7: Uno Sguardo Al Futuro
Apple 1 Venduto Per 671 Mila $
Samsung Galaxy Tab 3 Avrà SoC Intel Atom
Google Realizzerà L?App Di YouTube Per WP8
iPad Mini 2: 324 ppi E Processore A6X?
Microsoft: Grosse Novità Per Xbox 360 All?E3
Intel: Haswell Migliorerà Del 50% La Durata Della Batteria
Microsoft Porterà Kinect Su Windows Nel 2014
Rispondi
 
LinkBack Strumenti Discussione Modalità Visualizzazione
Vecchio 19-03-11, 00:23   #1 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito Font T828D Ricerca e modifica

Lo sappiamo tutti, il difetto peggiore di questo terminale, più che altro visivo, è nelle accentate sbagliate. Apro questa discussione per sottoporvi la mia idea.

SE riusciamo a trovare nel firmware:
1) dove sono mappati i font
2) come sono codificati graficamente
3) la codepage (non indispensabile)

....potremmo cercare le malefiche lettere errate e sostituirle/ridisegnarle.

Se poi l'appetito vien mangiando, perché non farci un tool per ridisegnare i font?

Fantascienza?

Intanto vi dico le scoperte in 1 giornata parziale (weh!! anch'io ho una vita )

1) trovato un mtkres "funzionante" ho scoperto che non riesce a modificare il fw del t828, ma legge alla grande quello dell'F818.
2) visti gli offset forniti dal programma ho immediatamente trovato gli entry point dei font del FW del F818
3) ho allora esportato da mtkres uno dei font e ho scoperto che a parte un po' di dati iniziali (dimensioni, codepage e altro), esporta semplicemente un pezzo di firmware.

Da ciò ho supposto che la codifica sia standard e in chiaro nel firmware... o comunque 1:1 con quella salvata da mtkres

Ma adesso arriva la parte più interessante...

4) colto da un dubbio ho cercato la parte iniziale del font esportato nel fw del T828D e... ho trovato tutto il font!!! Vi dico già che non ho verificato approfonditamente, anche perchè se ci sono delle differenze "giuste" (il font dell'818 ha le accentate giuste, penso) ed è "lungo uguale"-> lo hex-sostituisco e riflasho subito l'828 tanto per provare...

Ma a prescindere da una tal botta di fattore "c", si può azzardare:

1) la codifica dei font è standard. Una volta appurato qual'è (e penso sia standard per la mediatek, probabilmente la stessa dei chip per DVD) si potrebbe costruire uno scanner (e oramai ci siamo abituati ) che cerchi byte con certe caratteristiche reciproche.
2) si individuano le entry point dei caratteri
3) si esportano i caratteri e si visualizzano con un tool (forse bisognerà farselo)
4) si correggono gli errori/disegni
5) si hex-sostituisce il tutto

Come vedete è ardua, ma non impossibile!!!

In realtà io penso che il T828D non abbia un problema di "disegno errato dei caratteri", ma di errata codepage. Ovvero l'italiano è mappato con una codepage errata/malformata che sposta tutti i font non ascii (o meglio quelli non coincidenti nelle codepage). Il problema è che penso sia molto facile trovare "il disegno", molto difficile trovare la coppia di byte della codepage e sostituirli. Ma non dispero, visto che pare che mamma mediatek conservi i propri standard...

Vi allego il font estratto dal f818... Se qualcuno ha voglia può vedere se individua delle differenze nel fw del t828.

Quando lo cercate usate gli hex dopo la sfilza di FFFFFF... e cioè:0b021414.

Se poi guardate i caratteri un po' prima (sempre nel fw del t828) il sospetto si acuisce, ma non vi rovino la sorpresa...

Notte forum!!!

P.S. anche i firmware del ka09 e del t818 hanno lo stesso font... Mamma mtk non cambia idea...
Files Allegati
Tipo file: zip font0_20_20_0_50_203.zip‎ (3,3 KB, 4 visite)
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 19-03-11, 20:34   #2 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

Sperimentazioni.....
Kid sto facendo un pò di prove con i programmi che ho e si viene a scoprire che vi sono 8 tipi di usi dei set di caratteri nel cell per ciascuna language

Small 16px
Menu 16px
Large 16px
Time 9px
Dialpad 27px
Keyboard 14px
Other 6px
Other 42px

Quella che ci riguarda per gli sms è la Small
La Large è quella che appare a video per la data
La time è il set usato per l'ora che appare sul display
Il Menù e il Dialpad si capisce da sè a che caratteri si riferiscono
La keyboard sono i caratteri della keyboard a video che vengono selezionati per scrivere
I due Other non lo so, potrebbero anche non essere utilizzati

Da quello che ho sperimentato ogni voce (ad es Small) si può collegare ad un preciso set di caratteri contenuto nel cell che sono proprio/o quasi dei codepage
All'indirizzo D70C10 del firmware del mio t828d ci sono i richiami per Small, menu, keyboard ecc... ai set dei codepage usati dalla lingua italiana

d4 1f 46 08 - 10 20 46 08 - 4c 20 46 08 - 88 20 46 08
c4 20 46 08 - 20 1f 46 08 - 5c 1f 46 08 - 98 1f 46 08
Le mie prove sono state nel sostiuire un valore all'alltro ad es sostituire d4 1f con 10 20

Il d4 1f è il richiamo al codepage per l'uso Small
Il 4C 20 è il richiamo al codepage per l'uso Large
20 1F è invece il set usato dalla Keybord
Sono riuscito a far apparire sulla keyboard i caratteri giusti accentati, ma a premerli vengono sempre quelli sbagliati che in realtà sono i caratteri immediatamente precedenti del set!!! è come se per le accentate fossero shiftati di uno
Comincio a pensare che si debba proprio modificare direttamente un set, oppure sostituirlo con uno buono....
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!

Ultima modifica di Wind; 19-03-11 alle 20:56
Wind è offline   Rispondi Citando
The Following User Says Thank You to Wind For This Useful Post:
kid06 (20-03-11)
Vecchio 20-03-11, 22:05   #3 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Beh... Se funziona sui caratteri della keyboard in teoria dovrebbe funzionare anche per gli altri font...

comunque anch'io ho fatto i compiti per casa...

In questo sito [Only registered and activated users can see links. ] alla sezione documenti c'è un approfondimento sul formato dei font mtk.

Sinteticamente mi pare che i font nei nostri fw siano di tipo due, ovvero a colori compressi... tutti anche quelli fissi monocromatici.

il formato è:

Header (qualche byte), larghezza dei singoli font (n byte per n font), tabella degli offset (n distanze ove sono ubicati i dati del singolo font), tabella dei dati (compressa).

Il documento è molto approfondito e ad occhio dove non ci azzecca è nell'header, che però è stategico in quanto è li che c'è tutto ciò che ci serve...

Per la sostituzione di un font con un altro semplicemente basterebbe cambiare il valore della larghezza (se serve) e l'offset... Facile facile...

A prescindere però penso che l'approccio più corretto sia il tuo, ovvero lavorare sulle codepage... Però se vogliamo cambiarci i font del cellulare, magari con dei gothic (e chi non lo vuole!!!! ) bisogna capire il formato dell'header maledetto!!!

__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 20-03-11, 22:44   #4 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

Belin che bel sito!!!!!
E' per il chip mediatek del dvd se ho ben capito, ma c'è materiale interessante!!!
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 21-03-11, 08:55   #5 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da Wind Visualizza Messaggio
Belin che bel sito!!!!!
E' per il chip mediatek del dvd se ho ben capito, ma c'è materiale interessante!!!
ahahahahaha si bel sito! Comunque sono quasi certo che la codifica sia quella...

Se l'influenza mi da tregua voglio capire sta storia dell'header dei font... Secondo me è tutto la dentro...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?



Ultima modifica di kid06; 23-03-11 alle 22:59
kid06 è offline   Rispondi Citando
Vecchio 21-03-11, 20:13   #6 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Allora qualche news... L'header non c'è e il formato non è quello dei dvd... però:

1) c'è una prima sezione che contiene le larghezze dei singoli caratteri. n caratteri n byte delle larghezze.
2) Sezione degli offset. 4byte per carattere. distanza dei dati relativi all'n-esimo carattere dall'inizio della sezione dati
3) sezione dei dati (variabile). Sezione dei dati veri e propri delle bitmap dei caratteri.

Tutavia la terza sezione mi pare codificata in modo diverso risppetto a quanto descritto nel documento relativo ai char dei dvd...

Bisogna indagare...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 22-03-11, 08:33   #7 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Altra elocubrazione notturna... Se riusciamo a alterare i font, possiamo cambiare un po' di font inutilizzati (partirei con russo e cinese...) con dei font "alternativi" europei. In seconda battuta carichiamo nella lingua corrispondente (con flei) la lingua italiana. A questo punto abbiamo un telefono multifont... (credo)
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 22-03-11, 08:37   #8 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da Wind Visualizza Messaggio
Sperimentazioni.....
Kid sto facendo un pò di prove con i programmi che ho e si viene a scoprire che vi sono 8 tipi di usi dei set di caratteri nel cell per ciascuna language

Small 16px
Menu 16px
Large 16px
Time 9px
Dialpad 27px
Keyboard 14px
Other 6px
Other 42px

Quella che ci riguarda per gli sms è la Small
La Large è quella che appare a video per la data
La time è il set usato per l'ora che appare sul display
Il Menù e il Dialpad si capisce da sè a che caratteri si riferiscono
La keyboard sono i caratteri della keyboard a video che vengono selezionati per scrivere
I due Other non lo so, potrebbero anche non essere utilizzati

Da quello che ho sperimentato ogni voce (ad es Small) si può collegare ad un preciso set di caratteri contenuto nel cell che sono proprio/o quasi dei codepage
All'indirizzo D70C10 del firmware del mio t828d ci sono i richiami per Small, menu, keyboard ecc... ai set dei codepage usati dalla lingua italiana

d4 1f 46 08 - 10 20 46 08 - 4c 20 46 08 - 88 20 46 08
c4 20 46 08 - 20 1f 46 08 - 5c 1f 46 08 - 98 1f 46 08
Le mie prove sono state nel sostiuire un valore all'alltro ad es sostituire d4 1f con 10 20

Il d4 1f è il richiamo al codepage per l'uso Small
Il 4C 20 è il richiamo al codepage per l'uso Large
20 1F è invece il set usato dalla Keybord
Sono riuscito a far apparire sulla keyboard i caratteri giusti accentati, ma a premerli vengono sempre quelli sbagliati che in realtà sono i caratteri immediatamente precedenti del set!!! è come se per le accentate fossero shiftati di uno
Comincio a pensare che si debba proprio modificare direttamente un set, oppure sostituirlo con uno buono....
Nel mio fw non trovo quelle sequenze e l'indirizzo "casca" in mezzo a un font.

Se cambi la "tastiera" touch, e solo quella, è naturale che il carattere che ti appare in alto sia errato, essendo il font del testo dell'sms "vecchio" o meglio non patchato. O avevi patchato tutti i font?
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 22-03-11, 08:43   #9 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da Wind Visualizza Messaggio
Sperimentazioni.....
vi sono 8 tipi di usi dei set di caratteri nel cell per ciascuna language

Small 16px
Menu 16px
Large 16px
Time 9px
Dialpad 27px
Keyboard 14px
Other 6px
Other 42px
Non vedo il 20x20 che ho trovato nel fw... forse è inutilizzato? Indago... ma prima vorrei trovare l'encoding della parte dati...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 23-03-11, 22:56   #10 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Bene colleghi, eccomi a voi con un altro argomento tosto. Mi rendo conto che non sarà facile, ma sarete ricompensati.... Ho trovato l'encoding dei font (monocromatici). Domani passo a quelli a colori, ovviamente!

Come detto precedentemente i font sono mappati così:
1) c'è una prima sezione che contiene le larghezze dei singoli caratteri. n caratteri n byte delle larghezze.
2) Sezione degli offset. 4byte per carattere. distanza dei dati relativi all'n-esimo carattere dall'inizio della sezione dati
2a) sezione incognta da studiare (l'ho saltata al momento). Mi puzza di codepage però, tipo carattere n -> codice 0xnn 0xnn 0xnn 0xnn. Vedremo
3) sezione dei dati (variabile). Sezione dei dati veri e propri delle bitmap dei caratteri.

Ci eravamo lasciati sulla sezione tre appunto. Vi devo dire che è stata dura perchè sono partito con l'idea che la mtk avesse usato il sistema di codifica a bit dei font a colori usati nei DVD. Ma più analizzavo i dati più non mi tornavano i conti. I vari tool poi non mi visualizzavano niente tranne delle larghezze variabili.

Alla fine mi son deciso ed ho trasferito un dump del font (estratto con mtkres) in OOcalc e ho cominciato a colorarmi per benino le sezioni note.

Poi sono passato a costruirmi delle tabelle con i dati più importanti (offset, delta tra caratteri, larghezze etc...). E qui ho esultato quando moltiplicando la larghezza del font per l'altezza ho trovato una dimensione (in bit) "giustocontenuta" nell'area dati. In pratica i dati son grandi in byte (larghezza del carattere) x (altezza del carattere) / 8, arrotondato al byte superiore. Ergo la mappatura è 1:1 ovvero 1 bit accende 1 pixel del carattere.

Benissimo... Facciamo a mano una prova? Carta e penna? Ho lasciato perdere... e ho fatto benissimo .

Ho allora costruinto in calc la "proof of concept" che traccia al volo il carattere (non vi dico il patema!!!!) secondo l'ipotesi di trattare tutta l'area dati come una bitsequence da angolo in alto a sx->angolo in basso a dx, 0=spento, 1=acceso.

Poi guardatevi il foglio di calcolo per capire cosa significa una cosa simile... Ma tanto ho l'influenza e lavoro pochino!

Bon fatto... Ma è sbagliato!... pensa e ripensa... sposta puntatori e offset, prova indirizzi... Poi becco la lettera I (maiuscola). Beh... ci assomiglia anche... ma è un po' sfalsata... maledetti! hanno invertito la sequenza dei bit!!!! .

Allora non so se l'abbiano fatto apposta, ma alla fine li ho scoperti!

Quindi signori ecco la codifica della mappa caratteri:

1) prendi i byte in sequenza
2) inverti i bit di ogni byte BE->LE (approfondire qui -> [Only registered and activated users can see links. ]) ad esempio 10100000 -> 00000101
3) tratta la sequenza come una bytestream per pennellare l'area del carattere (dalle sezioni precedenti sai altezza (fissa) e larghezza, specifica di ogni carattere). In pratica metti il primo bit nell'angolo in alto a sx e riga per riga scendi fino all'ultimo pixel in basso a dx.

Vi allego il foglio di calcolo. La password di protezione è ab (10/11, me lo do da solo! alla faccia della modestia ), ma non vi servirà a meno che non vogliate vedere le formule (si lo so siete tutti li che non aspettate altro!!! ).

Se nell'area verde scrivete il codice (0->202) vi appare il carattere. Notate che le dimensioni dell'area variano... la zona rossa non esiste.

Bon... che rimane da fare? beh un bel po'!

1) capire cos'è l'area 2a...
2) trovare un modo "ganzo" (bellissimo termine fa anni 70/80 ) per individuare i caratteri (di questo tipo) nel firmware.
3) Ovviamente sviluppare un tool per modificarli!

Metterei però uno 0, verificare come sono codificati i caratteri a colori... spero stavolta sia come nei DVD...

Ciao forum, stanotte tutti a guardar apparire caratteri in calc!!!

P.S. Se volete vedere cosa può fare una errata codifica da LE a BE, invertite i pesi dei bit nella tabella di conversione, da 1,2,4...128 a 128,64,...1. NON SI CAPISCE NIENTE! Pensate tentare a mano!!!. Ma anche se solo avessi usato le formule HEX->BIN di calc ci avrei messo un'eternità prima di tentare. Mi sono dato una regola. Nel reverse engineering lavorare su operazioni E.L.E.M.E.N.T.A.R.I!!!
Files Allegati
Tipo file: zip TabelleF818.zip‎ (57,0 KB, 8 visite)
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
The Following User Says Thank You to kid06 For This Useful Post:
Wind (24-03-11)
Vecchio 24-03-11, 00:57   #11 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

... e alla fine penso che i font a colori siano una chimera... sono stato ingannato da mtkres. Al momento direi che l'encoding è unico (decisamente meglio).

Allora chi mi suggerisce come individuarli? I dati che servono sono
1) inizio dellla sezione larghezze
2) inizio della sezione degli offset (necessariamente 00 00 00 00 xx 00 00 00 yy 00 00 00 ...)
3) inizio della sezione dati.
4) altezza del font
5) numero di caratteri del font

Sinceramente non vedo marker di sorta...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 24-03-11, 10:13   #12 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

Citazione:
Originariamente inviato da kid06 Visualizza Messaggio
Bene colleghi, eccomi a voi con un altro argomento tosto. Mi rendo conto che non sarà facile, ma sarete ricompensati.... Ho trovato l'encoding dei font (monocromatici). Domani passo a quelli a colori, ovviamente!

Come detto precedentemente i font sono mappati così:
1) c'è una prima sezione che contiene le larghezze dei singoli caratteri. n caratteri n byte delle larghezze.
2) Sezione degli offset. 4byte per carattere. distanza dei dati relativi all'n-esimo carattere dall'inizio della sezione dati
2a) sezione incognta da studiare (l'ho saltata al momento). Mi puzza di codepage però, tipo carattere n -> codice 0xnn 0xnn 0xnn 0xnn. Vedremo
3) sezione dei dati (variabile). Sezione dei dati veri e propri delle bitmap dei caratteri.

Ci eravamo lasciati sulla sezione tre appunto. Vi devo dire che è stata dura perchè sono partito con l'idea che la mtk avesse usato il sistema di codifica a bit dei font a colori usati nei DVD. Ma più analizzavo i dati più non mi tornavano i conti. I vari tool poi non mi visualizzavano niente tranne delle larghezze variabili.

Alla fine mi son deciso ed ho trasferito un dump del font (estratto con mtkres) in OOcalc e ho cominciato a colorarmi per benino le sezioni note.

Poi sono passato a costruirmi delle tabelle con i dati più importanti (offset, delta tra caratteri, larghezze etc...). E qui ho esultato quando moltiplicando la larghezza del font per l'altezza ho trovato una dimensione (in bit) "giustocontenuta" nell'area dati. In pratica i dati son grandi in byte (larghezza del carattere) x (altezza del carattere) / 8, arrotondato al byte superiore. Ergo la mappatura è 1:1 ovvero 1 bit accende 1 pixel del carattere.

Benissimo... Facciamo a mano una prova? Carta e penna? Ho lasciato perdere... e ho fatto benissimo .

Ho allora costruinto in calc la "proof of concept" che traccia al volo il carattere (non vi dico il patema!!!!) secondo l'ipotesi di trattare tutta l'area dati come una bitsequence da angolo in alto a sx->angolo in basso a dx, 0=spento, 1=acceso.

Poi guardatevi il foglio di calcolo per capire cosa significa una cosa simile... Ma tanto ho l'influenza e lavoro pochino!

Bon fatto... Ma è sbagliato!... pensa e ripensa... sposta puntatori e offset, prova indirizzi... Poi becco la lettera I (maiuscola). Beh... ci assomiglia anche... ma è un po' sfalsata... maledetti! hanno invertito la sequenza dei bit!!!! .

Allora non so se l'abbiano fatto apposta, ma alla fine li ho scoperti!

Quindi signori ecco la codifica della mappa caratteri:

1) prendi i byte in sequenza
2) inverti i bit di ogni byte BE->LE (approfondire qui -> Ordine dei byte - Wikipedia) ad esempio 10100000 -> 00000101
3) tratta la sequenza come una bytestream per pennellare l'area del carattere (dalle sezioni precedenti sai altezza (fissa) e larghezza, specifica di ogni carattere). In pratica metti il primo bit nell'angolo in alto a sx e riga per riga scendi fino all'ultimo pixel in basso a dx.

Vi allego il foglio di calcolo. La password di protezione è ab (10/11, me lo do da solo! alla faccia della modestia ), ma non vi servirà a meno che non vogliate vedere le formule (si lo so siete tutti li che non aspettate altro!!! ).

Se nell'area verde scrivete il codice (0->202) vi appare il carattere. Notate che le dimensioni dell'area variano... la zona rossa non esiste.

Bon... che rimane da fare? beh un bel po'!

1) capire cos'è l'area 2a...
2) trovare un modo "ganzo" (bellissimo termine fa anni 70/80 ) per individuare i caratteri (di questo tipo) nel firmware.
3) Ovviamente sviluppare un tool per modificarli!

Metterei però uno 0, verificare come sono codificati i caratteri a colori... spero stavolta sia come nei DVD...

Ciao forum, stanotte tutti a guardar apparire caratteri in calc!!!

P.S. Se volete vedere cosa può fare una errata codifica da LE a BE, invertite i pesi dei bit nella tabella di conversione, da 1,2,4...128 a 128,64,...1. NON SI CAPISCE NIENTE! Pensate tentare a mano!!!. Ma anche se solo avessi usato le formule HEX->BIN di calc ci avrei messo un'eternità prima di tentare. Mi sono dato una regola. Nel reverse engineering lavorare su operazioni E.L.E.M.E.N.T.A.R.I!!!
Davvero ottimo lavoro Mister KID!!!!
Ehehehe anche io quando serve mi spezzetto e coloro le parti note!!!!
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 26-03-11, 19:18   #13 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Allora, comincierei con le bad news... Nel T828D non ho trovato paro paro i font del f818... Il che mi ha un bel po' demoralizzato. A parte il primo 20x20, non ho trovato null'altro di simile a un font...

E ciò è MOLTO male. Premetto che non ho cercato a fondo e che in 14MB di codici HEX qualcosa può scappare. Mi pare strano comunque che in un firmware ci sia un unico font con un formato e tutto il resto ciccia... Vabbè... vedremo.

Comunque preso dallo sconforto ho girato e rigirato per il fw del T828 e ho scoperto che:

1) Esiste qualcosa di simile alle tabelle degli offset agli indirizzi:
d45274
d51214
d571e0
d5d1b0
d63180
d69150
d6f120
d750f0
che siano gli otto font citati da Wind?
2)le tabelle sono consecutive e a distanze fisse... (quasi)
3)essendo consecutive dove sono le tabelle delle larghezze e quelle dei dati?

Insomma il rompicapo si infittisce.

In compenso ho tovato la stringa 00 20 00 21 00 22 00 23... e così via ripetuta in diversi gruppi verso la fine del firmware. Mi sembrano mappe di font. Quasi quasi provo a settarle tutte su un carattere... tipo la A maiuscola...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 26-03-11, 19:52   #14 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da kid06 Visualizza Messaggio
In compenso ho tovato la stringa 00 20 00 21 00 22 00 23... e così via ripetuta in diversi gruppi verso la fine del firmware. Mi sembrano mappe di font. Quasi quasi provo a settarle tutte su un carattere... tipo la A maiuscola...
Nix non vedo nessuna modifica...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 27-03-11, 23:55   #15 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Scansiona e scansiona qualcosa si trova... ma non ho idea di come "lavorare" in automatico i font...

Prossimo passo è scambiare un entry point e vedere se cambia il disegno...

Font 20x20 -> 5f2660
Font 10x10 -> b9a2a0
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 28-03-11, 00:35   #16 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

La cosa più utile forse è quella di fare le ns prove su uno stesso file firmware, mandami quello su cui "operi" senza fat così abbiamo lo stesso riferimento o se no ti mando il mio...
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 28-03-11, 23:00   #17 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito Bingo!!!!

E prima che... News maiuscole! Ci sono riuscito!

Il font incriminato è il 10x20 (maledetto!!!). Ho cercato a lungo nel firmware e alla fine l'ho individuato con una RegExp tipo:

x00x00x00x00^[x00]x00x00x00^[x00]x00x00x00.

Ti assicuro che poi "tirare fuori" offset&c non è stato facile. Più che altro il font non ha la regolarità degli altri. Comunque ho prima tentato modificando la tabella degli offset. Solo che non c'è linearità, tipo se il codice n corrisponde ad "A", n+1 non sempre corrisponde a "B". Stamattina ho comunque eseguito la "proof of concept" della prima foto. Lavorando sulla tabella degli offset ho spostato il 5 sulla E ottenendo "5nglish". Volevo cambiare la "A" con "1"!!!!!

Lavora e lavora alla fine non riesco a capire come hanno mappato gli offset per cui ho lavorato sui "disegnini" e ho exsostituito gli uni agli altri (vedi tabella delle hexsostituzioni). BINGO!!! Vedi foto.

Allego anche il patch per il mio firmware... Ho cercato nel tuo "pubblico", ma non trovo le tabelle di offset... Ma quasi certamente trovi le sequenze dei caratteri. Come vedi ho "lavorato" solo quelli che servono per la lingua italiana. In realtà gli errori sono molti di più e sintetizzabili in uno shift di 1 nella parte alta della mapchar

Adesso sto pensando di rioperare così:

Faccio un file di testo con i char 1->255. lo mando al tel. cerco di capire dove inizia lo shift sbagliato (-1). vedo nella mappa degli offset di individuarlo. Sposto tutti gli offset successivi giù di uno... secondo me va

Manca:

Patcher generico da distribuire, bisogna pensare agli utenti!!!
Ricerca degli altri font ed eventuale patch...
Studio delle mapchar
Generalizzazione. Le tabelle degli offset cambiano da FW a FW...
Immagini Allegate
Tipo file: jpg DSC_0000051.jpg‎ (47,5 KB, 8 visite)
Tipo file: jpg DSC_0000052.jpg‎ (53,8 KB, 5 visite)
Tipo file: jpg DSC_0000053.jpg‎ (52,2 KB, 6 visite)
Files Allegati
Tipo file: zip data.zip‎ (39,5 KB, 9 visite)
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 28-03-11, 23:11   #18 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

...mi pare che le stinghe si trovino anche nei flash prelavati dalla tua area... e sono uniche...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 29-03-11, 00:43   #19 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

bene! anzi ottimo!!!!!!

Qui stiamo scoprendo un mucchio di cose! Diventeremo il primo forum specializzato sui mediatek!!!
Batteremo anche i russi! eheheheheheh!
Dobbiamo fare una gran bella utility!!!!
Azz alla programmazione!!!
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 29-03-11, 06:55   #20 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da Wind Visualizza Messaggio
bene! anzi ottimo!!!!!!

Qui stiamo scoprendo un mucchio di cose! Diventeremo il primo forum specializzato sui mediatek!!!
Batteremo anche i russi! eheheheheheh!
Dobbiamo fare una gran bella utility!!!!
Azz alla programmazione!!!
Eh si! Direi che mi terrei su java per il momento, che mi obbliga a "pensare ordinato" . Prima però volevo provare anche a sostituire il font con uno a spaziatura variabile, tipo quello del ka09...

Mi rimangono ancora degli interrogativi, tipo come "checchinare" in automatico i vari entry point...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 29-03-11, 10:25   #21 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

Guarda un pò qui, ho trovato qualcosa che mi sembra interessante...
Files Allegati
Tipo file: zip content.zip‎ (1,17 MB, 7 visite)
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 29-03-11, 23:38   #22 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da Wind Visualizza Messaggio
Guarda un pò qui, ho trovato qualcosa che mi sembra interessante...
Molto interessante!!! Una paccata di font pronti alla sperimentazione e hexsostituzione!

Intanto ho buttato giù dei tutorial per gli impazienti di avere i font giusti. Ho anche trovato i layout della tastiera, tanto per metterci una pietra sopra...

Se vai al secondo tutorial trovi i font sistemati per benino (con lo shift di -1 degli offsets), mentre se vai al terzo trovi la "new keyboard". Il primo sul patchflash penso ti sia decisamente superfluo

Notte forum, sono decisamente più rilassato...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?



Ultima modifica di kid06; 29-03-11 alle 23:43
kid06 è offline   Rispondi Citando
Vecchio 30-03-11, 00:22   #23 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

Citazione:
Originariamente inviato da kid06 Visualizza Messaggio
Molto interessante!!! Una paccata di font pronti alla sperimentazione e hexsostituzione!

Intanto ho buttato giù dei tutorial per gli impazienti di avere i font giusti. Ho anche trovato i layout della tastiera, tanto per metterci una pietra sopra...

Se vai al secondo tutorial trovi i font sistemati per benino (con lo shift di -1 degli offsets), mentre se vai al terzo trovi la "new keyboard". Il primo sul patchflash penso ti sia decisamente superfluo

Notte forum, sono decisamente più rilassato...

Proverò il tutto ma come ti ho già scritto di là meriti il titolo di SuperGeek!!!!
Ottimo lavoro Kid!!!!
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 30-03-11, 23:22   #24 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Grazie dei complimenti! intanto, siccome l'appetito vien mangiando... un paio di idee:

Sistemare il T9. Ti dico già che il dizionario non mi pare in chiaro...

Eliminare i pannelli di scrittura inutili. Ovvero non mi servono francese turco tedesco etc... mentre mi serve un ciclo ridotto tipo it(minuscolo), assistito, numeri. Sarà fattibile?

Creare una libreria di font alternativi da hexsostituire. Questo sarebbe il trampolino di lancio per la costruzione del tool per il font edit. Il font edit dovrebbe essere molto semplice. Carica un font di sistema, lo discretizza in punti, lo mappa, calcola le larghezze, genera il patchflash. Evoluzione difficile sarà generalizzarlo per trovare gli entry point in un FW generico.

Intanto vorrei anche verificare che succede utilizzando un font più basso e/o a larghezza variabile...

Tra parentesi, tolta l'ora nell'home screen, mi pare che il t828 usi solo quell'unico font 0Ax14...
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 31-03-11, 23:45   #25 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

... e intanto scopro che non c'è un tool per editing del T9, nemmeno nelle box più costose... Strano direi. Ho buttato un occhio nei sorgenti dell'sdk mtk, ma sinceramente non trovo il dizionario. C'è una sezione che riguarda il code-decode del dizionario, ma non ci ho capito gran che... qualche idea?
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Vecchio 31-03-11, 23:58   #26 (permalink)
Amministratore
 

Data Registrazione: Nov 2008
Località: Genova
Messaggi: 2.161
Thanks: 69
Thanked 241 Times in 177 Posts
Invia un messaggio via MSN a Wind
Predefinito

in ufficio....ehm si ogni tanto mi distraggo dal lovoro... ho scaricato parecchio codice domani ci do un'occhiata, ma mi pareva di aver trovato qualcosa sul dizionario....
Ottimo è il T9 che adotta l'hzt dell'i168!
__________________
SAMSUN GALAXY NOTE!!!
SAMSUNG GALAXY S2
LG OPTIMUS 3D
FANTASTICI!!!
HTC DESIRE THE BEST! incredibile Android - HZT I168 - Anycool T828D

Spazio Web: [Only registered and activated users can see links. ] - Username: wind2008 - Password: wind
Se volete ringraziare usate il button "thanks" in fondo a destra del post!
Wind è offline   Rispondi Citando
Vecchio 05-04-11, 23:38   #27 (permalink)
Moderator
 
L'avatar di kid06
 

Data Registrazione: Apr 2010
Messaggi: 449
Thanks: 37
Thanked 45 Times in 43 Posts
Predefinito

Citazione:
Originariamente inviato da Wind Visualizza Messaggio
in ufficio....ehm si ogni tanto mi distraggo dal lovoro... ho scaricato parecchio codice domani ci do un'occhiata, ma mi pareva di aver trovato qualcosa sul dizionario....
Ottimo è il T9 che adotta l'hzt dell'i168!
Anch'io ho trovato la sezione dizionario nel codice sorgente, ma mi pare proprio un'applicazione dizionario... comunque non trovo tra i sorgenti un file che contenga una raccolta di "nouns"...

Continuo a cercare se esistano box per l'editing del t9... nix! Un'altra sfida per non dormire?
__________________
CECT KA09 - Anycool T828D - Blueberry A9630 - H9700C

Hai letto prima le [Only registered and activated users can see links. ]?


kid06 è offline   Rispondi Citando
Rispondi

Strumenti Discussione
Modalità Visualizzazione

Regole di Scrittura
Tu non puoi inviare nuove discussioni
Tu non puoi replicare
Tu non puoi inviare allegati
Tu non puoi modificare i tuoi messaggi

Il codice BB è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Attivato



Tutti gli orari sono GMT +3. Adesso sono le 08:32.

Bottom

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Ad Management plugin by RedTyger

Disclaimer/Privacy