#1
|
||||
|
||||
[TUTORIAL] Doctorado en cocina
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 ... ![]() ![]() ![]() 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. 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 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 Última edición por nikitto Día 18/11/09 a las 10:35:51 Razón: ampliación tutorial con enlace |
|
#4
|
|
Cita:
![]() |
#5
|
||||
|
||||
buuuuuaaaaaaaaaaah!
![]() esto si que ayuda. madre mia nikitto, eres un craack! Gracias |
#6
|
||||
|
||||
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 |
#7
|
||||
|
||||
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 |
#8
|
||||
|
||||
Vaya pedazo de aporte
![]() ![]() |
#10
|
||||
|
||||
Cita:
![]() _____EDITO____ Todo bien, gracias de nuevo Última edición por dijor69 Día 14/03/09 a las 11:44:25 |
#12
|
![]() ![]() ![]() |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 15:21:14 (GMT +2)
HTCMania: líderes desde el 2007