Entendiendo patches con FFFF, por PabloMDiez.
Este patch es para W810 R4DB005:
Código:
;W810 R4DB005
;Move "layout" to usb/other/modding/layout.
;(c) Mobilefree
;(p) Adrian. Top Sony Team
444E7828: 6A7C6444 00516F45
4553E544: 6A7C6444 00516F45
456F5100: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2F007500730062002f006f0074006800
456F5110: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 650072002f006d006f00640064006900
456F5120: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 6e0067002f006c00610079006f007500
456F5130: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 74000000000000000000000000000000
Ok, que tenemos? En la dirección 444E7828, Estamos haciendo puente a 00516F45.
00516F45 es el inverso de la dirección donde escribiremos nuevos datos. Y en 4553E544, tambien. Bien, Estamos cambiando 6A7C6444 a 00516F45.
Pero... Que significa 6A7C6444??
Simple!! Dije que hablamos de direccione "inversas". Entonces:
6A7C6444 <-invertido-> 44647C6A
Se va invirtiendo de dos en dos.
OK entonces,
44647C6A - 44140000 (base) = 507C6A
En esa ruta hay: 2F007400700061002F00730079007300740065006D002F006C 00610079006F00750074
En ASCII: /tpa/preset/system/layout.
Ok, pero que significa 00516F45, tambien???
Simple
!! invertirlo de vuelta de dos en dos.
Y tenemos: 456F5100..
La cual es la tercer línea del patch.. Donde escribiremos sobre las FFFF el código que queremos reemplazar...
Entonces tenemos que escribir los datos que queremos cambiar en 456F5100. En este caso escribimos /usb/other/modding/layout, lo convertimos a hexadecimal (con 00 cada 2 "números"), y nos queda:
2F007500730062002f006f0074006800650072002f006d006f 006400640069006e0067002f006c00
610079006f00750074
Ahora dividimos en 32 caracteres cada línea... Por qué 32?
32/2 = 16
En hexadecimal podemos usar:
0 1 2 3 4 5 6 7 8 9 A B C D E F ... y así una y otra vez..
\___________15___________/
Entonces F + 1 = 10.
1F + 1 = 20.
2F + 1 = 30.
De esta manera, nos podremos organizar y entender mejor durante la creación del patch. Tambien ayuda si hay que depurarlo.
456F5100: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 2F007500730062002f006f0074006800
456F5110: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 650072002f006d006f00640064006900
456F5120: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 6e0067002f006c00610079006f007500
456F5130: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 74000000000000000000000000000000
Concluyendo:
La ruta del Layout en R4DB005 se almacena en 507C6A. Entonces, si sumamos 44140000 (base address W810), obtenemos 44647C6A. Lo invertimos, y tenemos 6A7C6444.
Ahora buscamos en el archivo RAW "6A7C6444".. Y lo encontramos en 444E7828, y 4553E544.
Entonces, 444E7828 y 4553E544 le "dicen" al teléfono dónde se almacena la direccion del layout. Y lo cambiamos a 456F5100.
Entonces, si invertimos nuevamente 456F5100, obtendremos 00516F45.
Uff
.. Nuestras dos primeras partes del patch estan terminadas!!
444E7828: 6A7C6444 00516F45
4553E544: 6A7C6444 00516F45
Ahora escribimos en 456F5100 los datos que queremos cambiar y... Voilà!! Patch terminado.
El teléfono ahora leerá la ruta del layout desde 456F5100, donde escribimos la nueva ruta modificada, y NO lo leerá desde 507C6A, donde se almacena la ruta original..
Bien.. Pero por qué hacer patches así si son más complicados??
Pensá en esto, querés ubicar el archivo menu.ml en una ruta como esta:
/usb/other/windows/system/configs/menu/
pero la ruta original es /tpa/preset/system/menu/... Donde agregarás "em/configs/menu/"??
Además, te servirá para entender mejor los patches. Es decir, no sabrás completamente el funcionamiento del patch SYSGFX
.. pero podrás obtener el codigo, y desensamblarlo luego.. Y talvez así lo podras entender, portar o arreglar algun bug..
Interesante?
Mas allá de eso, traté de ser lo más explicativo posible.. Esta guía la escribí en SENSE, luego la traduje para TopSony..
Gracias a
Adrián, TopSony
Mobilefree, creador de este patch
Y a mí!!! 
SI QUIERES COPIAR ESTA GUÍA, DEJA LOS CREDITOS.. No como otras páginas que se robaron la mayoría del contenido de aquí (Guia IMEI
)
Saludos!!
PabloMDiez, TS Mod.
Marcadores