TEMA 4: COCINA TU PROPIA ROM
Llegados a este punto vamos a dar paso a lo que todos estabamos esperando, cocinar nuestra propia ROM. Pero primero una advertencia:
PARA COCINAR VUESTRA ROM SOLO PODEIS Y
DEBEIS UTILIZAR COMO BASE UNA ROM OFICIAL, NUNCA LA COCINADA POR OTRO USUARIO.
Dicho esto os explico que siempre es mejor hacer uno su propio trabajo y no perder el tiempo tratando de aprovecharse del trabajo de otros. Ademas en la mayor parte de los casos es inutil por que las ROMs estan protegidas.
4.1 Preparar la cocina
Bueno pues como ya hemos visto anterirormente y mas de uno ya se imaginara, descomprimimos la cocina en c:\cocina (dentro directamente baserom, tools y demas....) y necesitamos el archivo .nbh de la ultima ROM oficial dentro de la carpeta BASEROM
4.2 Cocinando (primero lavaros las manos)
Al igual que hicimos en el anterior capitulo, todo empiza por darle al
!BEGIN.cmd y esperar a que acabe todos los procesos que incluye. Puede tardar varios minutos.
Una vez que tengamos este primer paso realizado, abrimos
buildos+package_tools-2.7.exe y vamos a la pestaña BuildOS y cargamos la cocina pinchando en Load ROM.
LA cocina al abrir busca una carpeta llamada packages (aqui es dode iran los programas que queremos añadir) y en su defecto si no la encuentra, se crea automaticamente y mientras nos da un aviso diciendo que esta carpeta esta vacia (empty).
4.3 Modificaciones
Este es el punto en el que el chef debe poner de su parte y hacer las modificaciones que crea oportuno. Ahora ya tenemos la rom oficial "dumpeada" y lista para ser manoseada

Si os fijais ahora dentro de la carpeta de la cocina teneis varias carpetas mas, las que nos interesan son: \OEM, \SYS y \Packages
Tanto oem y sys son archivos de sistema y aplicaciones que trae de la rom oficial y packages es donde pondremos nuestras propias aplicaciones. Del resto nos olvidamos.
AVISO: ESTA ES LA PARTE DIFICIL PERO LA MAS BONITA POR SUPUESTO
Os voy a explicar un poco por encima que es lo que se puede hacer y poco a poco ire añadiendo cosas.
A) El Registro
El registro es la parte mas complicada de controlar por lo que hay que ser lo mas cuidadoso posible con las modificaciones que hagamos en el. Y viene repartido en diferentes tipos de archivos: *.rgu, *.provxml, el initflashfiles.dat y los diferentes initflashfiles.txt que se generan al crear un package.
Los archivos .rgu y .provxml estan repartidos por las carpetas OEM y SYS y todos ellos contienen claves que en el proceso de creacion del OS se uniran al registro que formara parte de la pda.
Se pueden modificar desde el mismo programa
buildos+package_tools-2.7.exe. Una vez tengamos cargada la cocina, arriba a la izquierda vemos que podemos seleccionar cualquiera de estos dos tipos de archivos y abrir el editor. Es decir si queremos editar archivos .rgu, seleccionamos su opcion y le damos a "Show Editor" y se abrira una lista con todos los archivos .rgu que tenemos dentro de \cocina. Lo mismo ocurrira con los archivos .provxml
Ademas de esta lista abajo tenemos un recuadro llamado "String to search into Files" que nos servira para buscar cadenas dentro de los archivos. Escribimos por ejemplo "glyphcache" y pinchamos en "search" y nos aparece a la derecha el listado de archivos que contienen esa cadena que buscamos. Pinchamos en el y ya tenes el archivo que buscabamos abierto para modificarlo.
En los archivos rgu debemos mantener la estructura del archivo siendo muy importante que en la primera linea aparezca siempre la palabra "REGEDIT4" y al final del archivo tengamos una linea en blanco.
Despues tenemos el archivo initflashfiles.dat, este es unico (solo hay uno) y sigue las mismas reglas que los rgu pero para abrirlo necesitareis un notepad modificado que os adjunto. NO VALE EL NOTEPAD QUE INCLUYE WINDOWS
Por ultimo estan los initflashfiles.txt. Estos deben ser revisados a conciencia al crear el package. Los package se crean a partir de un programa en archivo .cab pero esto lo dejo para mas adelante.
B) Eliminar programas y archivos innecesarios
Como quitar programas y archivos??? Esta parte como no podia ser de otra manera tambien es muy importante, vamos a ello.
Como norma general la mayora de aplicaciones que trae de serie la ROM oficila de la Diamond estan ubicados en la carpeta OEM (fuera de ella se quedan el Messenger, Windows Media y alguna cosilla mas que ireis descubriendo vosotros mismos) e incluyen su propio registro en los formatos mencionados antes.
Os pongo un ejemplo que es mas facil para entenderlo, el RSS Hub. Esta aplicacion viene dentro de dos carpetas situadas dentro de OEM (PACKAGE_Diamond_RSSHub_HTC_SPA y PACKAGE_Diamond_RSSHub_HTC_SPA_0C0A) y podemos cargarnoslo a pelo sin ningun problema pero...... hay que revisarlo todo por que si no lo hicieramos nos dariamos cuenta al flasear y arrancar sin estas carpetas que el programa ha desaparecido pero ha quedado un rastro. ¿Cual? En la pestaña de aplicaciones del TFLO 3D viene predeterminado esta aplicacion que al eliminarla nos daria como resultado un icono de aplicacion desconociada que al ejecutarlo daria un error. Pues vamos a quitar este acceso directo. Si hacemos una busqueda por los rgu y los provxml con la cadena "rss hub" veremos que aparece un archivo llamado "mxipupdate_oemoperators_105.provxml" que es el que incluye esta cadena. Lo abrimos y encontramos dentro algo asi:

Cita:
<characteristic type="HKLM\Software\HTC\Manila\ProgramLauncher\0" translation="filesystem">
<parm name="DispName" datatype="string" value="RSS Hub" translation="filesystem" />
<parm name="Path" datatype="string" value="\Windows\RSS Hub.lnk" translation="install" />
<parm name="IsReadOnly" datatype="integer" value="0" translation="filesystem" />
</characteristic>

Ahora lo que podemos hacer es sustituir este programa por otro indicando la ruta del acceso directo del nuevo o lo borramos todo. Problema solucionado
C) Añadir programas
MAs adelante
D) Personalizar
Aqui voy a tratar el tema de personalizar el nombre de la ROM y la imagen de arranque del OS
Nombre y fecha de la ROM. Este atributo se encuentra en el archivo mxipupdate_OEMVERSION_100.provxml que se encuentra en \cocina\oem\oemversion pero no añade la cedana para modificar la fecha de la ROM. Os adjunto uno que incluye la cadena de la fecha preparado para sustituir vuestros datos y copiar sobre el que teneis en la cocina
Imagen de arracque del OS (esta no es la primera que aparece al arrancar la PDA). Esto es un archivo PNG de 480x640 que esta alojado en \cocina\SYS\Redist_dpi_192_resh_480_resv_640 y de nombre welcomehead.192.png. Crea el que quieras con photoshop y sobreescribelo.
4.4 El toque final
Una vez tenemos la ROM modificada a nuestro gusto, en el programa
buildos+package_tools-2.7.exe le damos a GO y si no da ningun error ya tenemos nuestra primera ROM casi acabada. En caso de dar error (que seguro que os pasa en mil ocasiones, no desespereis) el programa nos indica que archivo esta comprometiendo el proceso y debemos revisarlo antes de volver a intentarlo. No os pongo capturas por que es todo muy sencillo.
Si todo sale correcto y no hay ningun fallo pasamos al
CreateROMDiamond.bat y despues con el
HTCRomTool.bat creamos el .nbh que necesitamos para flasear. Estos procesos son iguales que para reconstruir la ROM, si teneis alguna duda leer en el anterior post que esta mas detallado.
Sigo actualizando