Página 1 de 4 123 ... ÚltimoÚltimo
Resultados 1 al 10 de 35
  1. #1
    vivaerbetis
    Invitado Avatar de vivaerbetis

    Desempaquetar el contenido de una actualización de ROM

    Desempaquetar el contenido de una actualización de ROM

    En este post explicaré como desempaquetar los contenidos de una actualización de ROM de la TyTN (aunque gran parte del procedimiento es compatible para cualquier ROM de una máquina HTC). Para ello necesitamos, evidentemente, una actualización de ROM (por ejemplo, ver el siguiente post) y una serie de herramientas:

    - Un descompresor que permita descomprimir archivos en formato RAR; por ejemplo el WinRAR, el WinZIP o el 7-Zip, el cual tiene la ventaja de ser gratuito y será el que usaré en el ejemplo de este post.

    - Una herramienta para desempaquetar la ROM en formato .nbh, que es el formato utilizado por HTC en sus actualizaciones de ROM más recientes. Hay varias para elegir, por ejemplo NBHtool para entorno Windows, NBHdump o NBHextract, las dos últimas para línea de comando bajo Windows. Para el ejemplo usaré el NBHextract porque añade una funcionalidad sobre los otros dos desempaquetadores: transforma las imágenes de carga de la ROM a formato .BMP para poder verlas directamente en el PC.

    - Una herramienta para extraer los contenidos del IMGFS (IMaGe File System). Para ello podemos usar las herramientas Mamaich o de Tadzio. Para este ejemplo usaré las de Tadzio por ser más modernas.

    - Una herramienta para extraer el XIP (corazón del Sistema operativo) como esta.

    - Una herramienta para extraer los contenidos de la Extended ROM. Que yo conozca, la única compatible con el formato de la TyTN es esta.

    Vamos a a ello.


    1º/ Extraer el archivo que contiene la actualización de ROM del fichero ejecutable de dicha actualización.

    Creamos una carpeta en el PC con la que trabajar y copiamos en ella todas las utilidades que hemos descargado (descomprimiéndolas antes) y el fichero de la actualización de la ROM que queremos desempaquetar. Para el ejemplo he tomado la actualización a Windows Mobile 6 que hay en este post.

    Cambiamos la extensión del fichero de actualización de .EXE a .RAR para que el 7-Zip lo pueda abrir directamente. Lo abrimos con el 7-Zip y nos encontraremos que contiene los siguientes ficheros:



    Extraemos el fichero "RUU_Inside.exe" y le cambiamos la extensión del fichero de .EXE a .RAR para abrirlo con el 7-Zip nuevamente. Vemos que contiene lo siguiente:



    Extraemos el fichero "RUU_Signed.nbh" y pasamos al siguiente paso.


    2º/ Desempaquetar el contenido de la actualización de la ROM en formato .NBH.

    Para ello hemos de abrir una ventana de línea de comandos (pulsando Inicio->Ejecutar y escribiendo CMD), nos situamos en la carpeta donde está el fichero .NBH y escribimos lo siguiente:

    nbhextract ruu_signed.nbh

    Con lo que nos saldrá como va desempaquetando el contenido del fichero "RUU_signed.nbh":



    Una vez finalizado el proceso de extracción se habrán generado los siguientes ficheros:

    "00_IPL.nb" .......... Initial Program Loader
    "01_SPL.nb" .......... Secondary Program Loader
    "02_MainSplash.bmp" .. Primera imagen de carga de la ROM (en formato BMP)
    "02_MainSplash.nb" ... Primera imagen de carga de la ROM
    "03_SubSplash.bmp" ... Segunda imagen de carga de la ROM (en formato BMP)
    "03_SubSplash.nb" .... Segunda imagen de carga de la ROM
    "04_ExtROM.nb" ....... Extended ROM
    "05_GSM.nb" .......... ROM de Radio
    "06_OS.nb" ........... Sistema Operativo (Windows Mobile) e IMGFS


    Esto es todo lo que puede contener una actualización de ROM. Al haber usado una ROM oficial para este ejemplo tenemos todo el contenido pero si usáis una ROM no oficial, lo más probable es que no estén todos los ficheros (y se llamen de distinta manera) pues solamente se puede actualizar lo que uno quiera, el Sistema Operativo, el SPL, etc...


    3º/ Extraer el contenido del IMGFS.

    Para ello usaremos las herramientas de Tadzio. En la ventana de línea de comandos que hemos abierto antes escribiremos lo siguiente, por orden y esperando a que termine el comando anterior antes de ejecutar el siguiente:

    nbsplit -hermes 06_os.nb

    imgfsfromnb 06_os.nb.payload imgfs.bin

    imgfstodump imgfs.bin


    Una vez terminado de ejecutarse el último comando podrás comprobar que se ha generado una carpeta llama "dump" dentro de la cual está el contenido del IMGFS. Este contenido se puede utilizar para extraer software del mismo y aplicarlo a otras máquinas.


    4º/ Extraer el contenido del XIP (corazón del Sistema Operativo).

    Para ello, en la ventana de línea de comandos que hemos abierto antes escribiremos lo siguiente:

    rommaster -w 5 06_os.nb.payload -x -o xip2.bin

    mkdir XIP

    dumprom xip2.bin -5 -d XIP


    Una vez finalizado el último comando tendremos dentro de la carpeta "XIP" y la carpeta "dump" el contenido del mismo. Esto nos servirá por si alguna vez queremos portar el sistema operativo de una máquina a otra o bien queremos crear una ROM con un lenguaje diferente a la que estamos usando.

    NOTA: si no quieres que se mezcle el XIP con el contenido del IMGFS que has podido extraer en el punto 3º, antes de extraer el contenido del XIP, renombra la carpeta dump a dump2 para que te cree una nueva carpeta dump.


    5º/ Extraer el contenido de la Extended ROM.

    Simplemente hay que abrir el fichero "04_ExtROM.nb" con este programa y extraer su contenido:




    Un saludo.

    Temas Similares en HTCSpain:
  2. Contenido carpetas del igo8 - [lamola2006]
  3. [Vendo] Nokia E65 Vodafone sin desempaquetar (VENDIDO) - [duk3]
  4. Última edición por vivaerbetis; 19/10/2007 a las 22:19

  5. Sponsored Links
  6. #2
    tiggerbcn
    Invitado Avatar de tiggerbcn
    Muyyy interesante, y viendo que la extension nbh es la que utiliza la elf servira tambien para la elf, y ademas muy bien explicado, ahora falta la parte para volver a empaquetarlo y poder flashear despues de modificar lo que interese.
    Gracias por el curro

  7. #3
    vivaerbetis
    Invitado Avatar de vivaerbetis
    Cita Iniciado por tiggerbcn Ver mensaje
    Muyyy interesante, y viendo que la extension nbh es la que utiliza la elf servira tambien para la elf, y ademas muy bien explicado, ahora falta la parte para volver a empaquetarlo y poder flashear despues de modificar lo que interese.
    Gracias por el curro
    De nada :)

    Las herramientas son más o menos estándar para todas las máquinas de HTC/Qtek por lo que se pueden usar "casi" las mismas herramientas e instrucciones para todas ellas.

    Un saludo.
    Última edición por vivaerbetis; 01/10/2007 a las 18:52

  8. #4
    Avatar de sanespace
    Fecha de ingreso
    19 jul, 07
    Mensajes
    54
    Tío eres un crack.

    Con gente como tú los mortales aprendemos de los dioses.

    Yo quiero hacer algo parecido a lo que has explicado pero con una imagen de Emulator, es decir, quiero editar el contenido del bin que contiene la imagen del Windows mobile 6 que corre en el emulador de PDA para quitarle cosas y ponerle otras.

    ¿Sabes si se puede hacer? ¿Y con qué?

    Gracias por adelantado.

  9. #5
    vivaerbetis
    Invitado Avatar de vivaerbetis
    No me lo creo, voy a corregir al maestro Franlov :21:

    Se puede hacer con una imagen de emulador simplemente cambiando el comando del punto 3:

    nbsplit -hermes 06_os.nb
    por

    nbsplit -emu imagen_del_emulador.bin

    Aquí hay un post de Xda-Developers donde un alguien explica como hacerlo:
    http://forum.xda-developers.com/showpost.php?p=1248531&postcount=17

    No traduzco dicho post al español porque el tipo que lo puso me consta que es un gilipollas y seguro que no me da permiso :D


    Lo que si es más "jodido" es recrear la imagen del emulador a partir del nuevo IMGFS modificado. Eso es lo que yo nunca he conseguido (aunque no es que lo haya intentado demasiado).


    Un saludo.
    Última edición por vivaerbetis; 04/10/2007 a las 23:23

  10. #6

    Avatar de Franlov
    Fecha de ingreso
    15 jul, 07
    Ubicación
    Sevilla
    Edad
    39
    Mensajes
    7,764
    vah borro mi post xq tienes toda la razon, entendi mal lo q queria decir sanespace pense q hablaba de recrear una imagen modificada en el emulador, para q nos entendamos q cualkier rom cocinada funcione en el emulador.

    Cagada mia pues :D.

    Cita Iniciado por vivaerbetis Ver mensaje
    No me lo creo, voy a corregir al maestro Franlov :21:

    Se puede hacer con una imagen de emulador simplemente cambiando el comando del punto 3:

    nbsplit -hermes 06_os.nb
    por

    nbsplit -emu imagen_del_emulador.bin

    Aquí hay un post de Xda-Developers donde un alguien explica como hacerlo:
    http://forum.xda-developers.com/showpost.php?p=1248531&postcount=17

    No traduzco dicho post al español porque el tipo que puso me consta que es un gilipollas y seguro que no me da permiso :D


    Lo que si es más "jodido" es recrear la imagen del emulador a partir del nuevo IMGFS modificado. Eso es lo que yo nunca he conseguido (aunque no es que lo haya intentado demasiado).


    Un saludo.
    * Perfectly Imperfect *

  11. #7
    vivaerbetis
    Invitado Avatar de vivaerbetis
    Bueno Fran, al final me picaste y me puse a ver si podía recrear una imagen y que la cargase el emulador (ya lo había intentado antes sin éxito pero ahora se alguna cosilla más que entonces).

    Primero probé con las herramientas de Tadzio y logré lo que ya he comentado antes, dumpear la ROM del emulador pero no recrearla ya que da un error (se lo he reportado a Tadzio y me ha dicho que lo va a mirar). Personalmente intuyo que es por que las herramientas de Tadzio generan un IMGFS reordenado para ganar espacio libre en la ROM (más conocido como BIG-STORAGE) y eso al emulador no le gusta ná de ná.

    Así que me fui a las viejas herramientas de Mamaich y digamos que pude dumpear la ROM y recrearla, pero usando el splitter de Tadzio (y además luego funciona en el emulador).


    Es decir, que hay que usar parte de ambas herramientas; nbsplit y nbmerge de Tadzio y el resto de Mamaich. La secuencia de comandos es, tomando como base el fichero PPC_ESN_GSM_VR.BIN del emulador:

    rename PPC_ESN_GSM_VR.BIN os.nb

    nbsplit -emu os.nb

    prepare_imgfs os.nb.payload -nosplit

    viewimgfs imgfs_raw_data.bin

    Metí a mano un fichero llamado "patata.txt" en la carpeta DUMP.

    BuildImgfs

    make_imgfs os.nb.payload -nosplit

    nbmerge -emu os.nb

    rename os.nb PPC_ESN_GSM_VR.BIN


    Cambié el fichero PPC_ESN_GSM_VR.BIN del emulador por el recién generado, cargué el emulador y:


    Es decir, que poder, se puede :p Eso si, yo no le veo mucha utilidad.


    Un saludo.
    Última edición por vivaerbetis; 07/10/2007 a las 23:46

  12. #8

    Avatar de Franlov
    Fecha de ingreso
    15 jul, 07
    Ubicación
    Sevilla
    Edad
    39
    Mensajes
    7,764
    No viva eso si se puede hacer es decir a partir de la imagen del emulador meterle ficheros es factible, pero lo que fui capaz es una rom cocinada hacerla funcionar en el emulador, asi evitaria el tener que flashear cada rom que cocino para probarla, por lo que veo tu has partido de la base de una imagen del emulador (PPC_ESN_GSM_VR.BIN), pero lo que interesaria seria conseguir que se tragara las roms cocinadas.

    Si eres capaz de recrear una rom cocinada en el emulador entonces te ganas el cielo :D

    Un saludo crack!

    No obstante, muchas gracias por tu estudio ;), seguro que esto le servira a muchos amigos como a sanespace :D.

    Cita Iniciado por vivaerbetis Ver mensaje
    Bueno Fran, al final me picaste y me puse a ver si podía recrear una imagen y que la cargase el emulador (ya lo había intentado antes sin éxito pero ahora se alguna cosilla más que entonces).

    Primero probé con las herramientas de Tadzio y logré lo que ya he comentado antes, dumpear la ROM del emulador pero no recrearla ya que da un error (se lo he reportado a Tadzio y me ha dicho que lo va a mirar). Personalmente intuyo que es por que las herramientas de Tadzio generan un IMGFS reordenado para ganar espacio libre en la ROM (más conocido como BIG-STORAGE) y eso al emulador no le gusta ná de ná.

    Así que me fui a las viejas herramientas de Mamaich y digamos que pude dumpear la ROM y recrearla, pero usando el splitter de Tadzio (y además luego funciona en el emulador).


    Es decir, que hay que usar parte de ambas herramientas; nbsplit y nbmerge de Tadzio y el resto de Mamaich. La secuencia de comandos es, tomando como base el fichero PPC_ESN_GSM_VR.BIN del emulador:

    rename PPC_ESN_GSM_VR.BIN os.nb

    nbsplit -emu os.nb

    prepare_imgfs os.nb.payload -nosplit

    viewimgfs imgfs_raw_data.bin

    Metí a mano un fichero llamado "patata.txt" en la carpeta DUMP.

    BuildImgfs

    make_imgfs os.nb.payload -nosplit

    nbmerge -emu os.nb

    rename os.nb PPC_ESN_GSM_VR.BIN

    Cambié el fichero PPC_ESN_GSM_VR.BIN del emulador por el recién generado, cargué el emulador y:


    Es decir, que poder, se puede :p Eso si, yo no le veo mucha utilidad.


    Un saludo.
    * Perfectly Imperfect *

  13. #9
    vivaerbetis
    Invitado Avatar de vivaerbetis
    Cita Iniciado por Franlov Ver mensaje
    No viva eso si se puede hacer es decir a partir de la imagen del emulador meterle ficheros es factible, pero lo que fui capaz es una rom cocinada hacerla funcionar en el emulador, asi evitaria el tener que flashear cada rom que cocino para probarla, por lo que veo tu has partido de la base de una imagen del emulador (PPC_ESN_GSM_VR.BIN), pero lo que interesaria seria conseguir que se tragara las roms cocinadas.

    Si eres capaz de recrear una rom cocinada en el emulador entonces te ganas el cielo :D

    Un saludo crack!

    No obstante, muchas gracias por tu estudio ;), seguro que esto le servira a muchos amigos como a sanespace :D.
    Hola Fran,

    El problema es que el WM6 para el emulador tendrá cosas específicas para el mismo. Supongo que factible será, siempre y cuando se logre aislar los elementos de registro, drivers y demás bichería específica para el emulador (del XIP en teoría no tendríamos que preocuparnos siempre y cuando se use como base un nb o bin del emulador). Luego no nos evitaría tener que modificar la ROM, es decir, que tendríamos que hacer una versión para el emulador y otra para la PDA, lo cual es una pérdida de tiempo pudiendo flashear directamente sobre la PDA, además no tendríamos una fiabilidad del 100% de las pruebas sobre el mismo puesto que los drivers son distintos.

    De ahí que no le vea utilidad. Un saludo.

  14. #10

    Avatar de Franlov
    Fecha de ingreso
    15 jul, 07
    Ubicación
    Sevilla
    Edad
    39
    Mensajes
    7,764
    Claro se podria perfectamente cocinar una a partir de la imagen del emulador pero luego habria q hacerla para la pda, asi que como dices perdida de tiempo total. :D.

    Es una pena que no tenga las mismas especificaciones y arquitectura sino seria un puntazo probar las roms antes de flashearlas.

    Saludos!

    Cita Iniciado por vivaerbetis Ver mensaje
    Hola Fran,

    El problema es que el WM6 para el emulador tendrá cosas específicas para el mismo. Supongo que factible será, siempre y cuando se logre aislar los elementos de registro, drivers y demás bichería específica para el emulador (del XIP en teoría no tendríamos que preocuparnos siempre y cuando se use como base un nb o bin del emulador). Luego no nos evitaría tener que modificar la ROM, es decir, que tendríamos que hacer una versión para el emulador y otra para la PDA, lo cual es una pérdida de tiempo pudiendo flashear directamente sobre la PDA, además no tendríamos una fiabilidad del 100% de las pruebas sobre el mismo puesto que los drivers son distintos.

    De ahí que no le vea utilidad. Un saludo.
    * Perfectly Imperfect *

Página 1 de 4 123 ... ÚltimoÚltimo