PDA

Ver la Versión Completa : [TUTORIAL] Doctorado en cocina


nikitto
22/02/09, 01:04:59
Hola a todos.

Antes que nada, quiero dar las gracias a todos los 'cocos' que se mueven por XDA. Sin ellos, esto no sería posible. Va por ellos ... :aplausos::aplausos::aplausos:

Este post más que para enseñar es para recopilar información MUY ESPECÍFICA para el manejo de algunos de los elementos que forman una ROM. Cómo modificarlos y adaptarlos a nuestras necesidades. Algunos puntos quizás, NO aporten información útil, ni manipulable, pero si dan una idea de para que sirven. Todo este trabajo está basado en mis propias inquietudes en este mundo de la cocina. Que como vereis NO sólo consiste en meter/sacar paquetes a una ROM.

Por ahora nuestra única herramienta, un editor hexadecimal: H x D (descargar de Archivos Adjuntos)


1. Cambiar nombre y fecha a la ROM en pantalla inicial (letras y números en rojo)

Esta información está guardada en el XIP, exactamente en el archivo S000 del módulo nk.exe, localizado en ROM\XIP.
Sí nuestra carpeta ROM sólo contiene un archivo (OS.NB u OS,NB.payload), mirar AQUí -> http://www.htcmania.com/showthread.php?t=39103
He incluido un apartado en dicho hilo, explicando los pasos.


Importante: Tomamos como referencia para la búsqueda el nombre actual que pone en ROM cuando arranca.

Lanzamos H x D y abrimos el archivo S000. En este caso he abierto el S000 de la NiAx Trinity 6.1.90. Como referencia de búsqueda he usado el 90 y he marcado la casilla Cadena Unicode.

9315

La dirección offset varia en las distintas ROMs (dispositivos). No baseis la búsqueda en esa posición en concreto (2444).

Ahora basta como sobreescribir carácter a carácter, en la ventana de la derecha, el contentido 6.1.90 por el que deseemos. Tomar nota que entre carácter y carácter debe escribirse un . = 00 (carácter vacío), que no es lo mismo que . = 2E, este último si es el punto de nuestro alfabeto.

Por el mismo método y en el mismo archivo, podemos cambiar la fecha de la ROM, sólo que para la búsqueda NO marcamos la casilla Cadena Unicode.

Resultado de la búsqueda:

Feb 01 2009 = 46 65 62 20 30 31 20 32 30 30 39

Una vez cambiado el nombre y fecha, guardamos el archivo y ya podemos cocinar nuestra ROM con el nombre cambiado. ;-)

2. Direcciones offset. MBR (Master Boot Record) de OS.nb.payload.

Vamos a ver que es cada cosa. Lo primero es lanzar H x D y abrir OS.nb.payload

9338

Lo primero saber que el MBR se encuentra siempre, entre las posciones 0x0000 y 0x01FF.
Otro dato importante que se ve en la imagen es que MSFLASH50 en este caso (para Trinity) empieza en la dirección 0x0200 mientras que en las nuevas ROM empieza en 0x0800. Este dato es muy importante para luego calcular donde está cada una de las partes que forman la ROM y define el tamaño de cada sector. Aquí podeis ver algo más de información: http://www.htcmania.com/showthread.php?t=26034

En las siguientes posiciones tenemos definidos:

0x01C0 = Boot
0x01D0 = XIP
0x01E0 = IMGFS
0x01FS = FATFS

Para explicar que es cada cosa, veremos un ejemplo:

Queremos insertar un XIP a esta ROM. Para ello disponemos de XIP (out.bin) y del ejecutable insert.exe (incluido en \TOOLS de vuestra cocina).

La orden de ejecución es: insert.exe -i out.bin -o OS.nb.payload -d 0x00XXXXXX -s 0x00XXXXXX

-d = dirección donde empieza el XIP
-s = logitud total del XIP

la fórmula es (-s) = IMGFS_Start - XIP_start

Vamos primero a calcular -d (XIP_start). En la imagen esta definida en la posición 0x01D6=00 y 0x01D7=19 en hexadecimal ( 0 1 2 3 4 5 6 7 8 9 A B C D E F ) y al revés.
Abrimos la calculador del Windows, en modo Científico y hexadecimal. Multiplicamos 1900 x 200 (tamaño del sector) = 320000

Ya tenemos la dirección de inicio del XIP, ahora vamos a calcular la longitud (-s), aplicando la fórmula, lo primero calcular la dirección de IMGFS_start por el mismo método. 0x01E6=00 y 0x01E7=31, recordar que las posiciones estan al revés.
Calculamos en hexadecimal: 3100 x 200 (tamaño del sector) = 620000

Aplicamos la fórmula (en hexadecimal, no me cansaré de repetirlo):

(-s) = 620000 - 320000 = 300000

Ya tenemos los dos valores que buscabamos. El comando a ejecutar para incluir el XIP en esta ROM queda así:

insert.exe -i out.bin -o OS.nb.payload -d 0x00320000 -s 0x00300000


3. \ROM\OS.nb o \ROM\OS.nb.payload ¿qué son? ¿para qué sirven?

Realmente son templates (plantillas). Esta plantilla contiene el XIP e IMGFS (Image File System = Imagen del archivo del sistema). Posteriormente se crea un nuevo payload (OS-new.nb.payload) con el nuevo IMGFS, obtenido de la carpeta /dump y mismo XIP que en payload original (OS.nb.payload).
Lo mismo sucede con OS.nb, pero antes la propia cocina se ocupa de pasarlo a OS.nb.payload con el comando NBSplit.exe

Adelantando acontecimientos, queda patente, que para cambiar de XIP, uno de los métodos es insertarlo (insert.exe) en la plantilla OS.nb.payload ( o OS.nb)

-----

Cualquier aportación será incluida aquí muy gustosamente.


Salu2

nikitto
22/02/09, 01:05:23
Reservado por mi

Oskitar
22/02/09, 01:11:41
Nikitto, eres Dios !!

Muchas gracias por tú trabajo tío!! estaré pendiente de este trabajo !! :ok:

Muchas gracias

jorge_kai
22/02/09, 01:14:45
Nikitto, eres Dios !!

Muchas gracias por tú trabajo tío!! estaré pendiente de este trabajo !! :ok:

Muchas gracias
+1 :ok:

pool__13
22/02/09, 12:55:01
buuuuuaaaaaaaaaaah!:oh:
esto si que ayuda. madre mia nikitto, eres un craack!
Gracias

dijor69
13/03/09, 16:16:39
Hola nikitto, antes de nada gracias por le manual, aunque por mas que lo intento no localizo o ne me fio vaya a tocar otra cosa puesto que no viene explicito, os adjunto la carpeta XIP de mi cocina para ver si me podeis ayudar a localizar el texto 2IOR Morna y la fecha de 28 de febrero de 2009.

Gracias a todos.
Saludos

nikitto
13/03/09, 18:23:05
Hola


El nombre empieza en 351A con: 49 00 4F 00 52 00 20 00 4D 00 6F 00 72 00 6E 00 61 = I.O.R. .M.o.r.n.a

El 2 que me has puesto (2IOR) debe corresponderse a la versión de la ROM, porque no aparece en el texto.

La fecha empieza en 56B8 con: 46 65 62 20 32 38 20 32 30 30 39 = Feb 28 2009

Salu2

paspasito
13/03/09, 19:41:58
Vaya pedazo de aporte :ok: Lo seguiremos con muchisimo interes crack :grin:

Golfo
14/03/09, 00:22:45
Genial nikitto, en tu linea tio:ok:

dijor69
14/03/09, 02:10:34
Hola


El nombre empieza en 351A con: 49 00 4F 00 52 00 20 00 4D 00 6F 00 72 00 6E 00 61 = I.O.R. .M.o.r.n.a

El 2 que me has puesto (2IOR) debe corresponderse a la versión de la ROM, porque no aparece en el texto.

La fecha empieza en 56B8 con: 46 65 62 20 32 38 20 32 30 30 39 = Feb 28 2009

Salu2

Ok, muchisimas gracias, voy a probarlo ahora mismo haber.:ok:

_____EDITO____
Todo bien, gracias de nuevo

sergy330
14/03/09, 15:32:49
Genial Nikitto, eres la caña nen :ok:

OCCII
11/04/09, 09:54:57
:ok::aplausos::aplausos: