Preparación del entorno – Curso desarrollo ROMs – Capítulo 1

6

Aunque pueda parecer lo contrario, la creación de una ROM no es un proceso complejo, aunque debe hacerse de forma metódica para evitar errores que puedan afectar al dispositivo y a sus usuarios, para lo que es fundamental probar el producto final en nuestro equipo durante unos días antes de publicar cada nueva release.

Afortunadamente, no es necesario iniciar el cocinado de una ROM desde cero, sino que es posible descargar la base de la misma y empezar a realizar nuestros cambios sobre ésta, para lo cual será necesario saber qué tipo de ROM es la que deseamos cocinar, teniendo en cuenta que, en general, existen dos grandes grupos de ROMs: las basadas en el estándar AOSP (CM, AOKP, MIUI) y las basadas en los desarrollos del fabricante (Sense, TouchWiz, etc), cada una de las cuales incorpora sus propias particularidades.

En el caso concreto de este tutorial desarrollaremos una ROM para ser utilizada en un Galaxy SII y basada en TouchWiz aunque, como ya os indicamos anteriormente, procuraremos ser lo suficientemente genéricos como para que pueda tomarse de referencia para el desarrollo de casi cualquier tipo de ROM, con la salvedad de que algunas de las basadas en AOSP pueden desarrollarse a partir del código fuente o de la compilación oficial, recomendándose esta última opción inicialmente.

Captura de la web de SamMobile

Preparando el entorno

Para el desarrollo de nuestra ROM utilizaremos un ordenador personal provisto de la versión 11.04 de Ubuntu, un sistema operativo que al igual que Android se basa en Unix, y en el cual ejecutaremos la aplicación Android Kitchen, desarrollada por dsixda, reconocido desarrollador y moderador del foro XDA-Developers y que permite cocinar ROMs para más de 60 modelos diferentes.

Los usuarios de Windows pueden utilizar también esta aplicación, para lo cual deben instalar cygwin, una aplicación que permite simular un entorno Unix sobre el sistema operativo de Microsoft.

La instalación del Android Kitchen es sencilla y tan sólo requiere de la descompresión del archivo zip que contiene todos los scripts y configuraciones en el directorio de nuestra elección, si bien será necesario para que todo el conjunto funcione correctamente que hayamos instalado el android-sdk con anterioridad.

La instalación del software de cocinado creará los siguientes elementos en el directorio raíz del programa:

  • original_update: Directorio en el que debemos almacenar la ROM base.
  • scripts y tools: Carpetas que contienen el código fuente del programa y las herramientas auxiliares.
  • menu: Script de inicio del programa, que debe ejecutarse para acceder a sus funcionalidades.
  • README: Archivo con información relevante sobre la aplicación.

Descarga de la ROM base

En cuanto a la ROM que usaremos de base y que, como habíamos indicado se basará más arriba, se basará en el desarrollo oficial de Samsung, la descargaremos de SamMobile.com, el sitio oficial de descarga de ROMs de dispositivos Samsung.

Menú principal del Android Kitchen

Una vez descargada la ROM base, que en nuestro caso es simplemente un archivo comprimido (en formato zip o rar, según el caso), deberemos extraer el contenido relevante de la misma (archivos factoryfs.img, cache.img y zimage) en el directorio original_update, tras lo cual podremos acceder al Android Kitchen e iniciar el cocinado de nuestra ROM.

En caso que el archivo descargado de SamMobile.com fuera en formato zip, lo más probable es que su contenido incluyera un archivo de tipo tar o tar.md5, que es el que realmente contiene la ROM de la que hay que extraer los archivos indicados en el párrafo superior.

Empezar el proceso

El archivo factoryfs.img contiene la imagen de nuestra ROM base, pero en un formato que no es fácilmente modificable, por lo que procederemos a obtener los archivos que contiene, para lo ejecutaremos el Android Kitchen y seleccionar la opción 1, que desempaquetará los archivos en un directorio temporal incluyendo, si así lo especificamos, el CSC de la ROM, que se encuentra en el archivo cache.img.

Seguidamente añadiremos el root a la ROM, seleccionando la opción 2 y pulsando seguidamente la tecla f, que añadirá el binario su y la aplicación SuperUser.apk de ChainsDD.

La opción 3 nos permitirá añadir el programa busybox, que resulta de especial relevancia para aplicaciones privilegiadas y que deberíamos incluir siempre.

Captura de pantalla del Android Kitchen

Usaremos la opción 8 para definir el nombre de nuestra ROM, que aparecerá cuando el usuario acceda a ConfiguraciónAcerca del teléfono.

La opción 0 desplegará un menú con opciones avanzadas, entre las que destaca la opción número 11, que realiza el deodex de las aplicaciones de nuestra ROM, lo que nos permitirá, posteriormente, aplicarles temas.

Deberemos seleccionar la opción f (deodex las apps en las carpetas system y framework) en el submenú correspondiente, no sin antes seleccionar la opción v para indicar que se trata de una ROM basada en Ice Cream Sandwitch (API número 14).

Finalizado el proceso, que se prolongará durante unos minutos debido a que el sistema debe procesar más de 100 aplicaciones, hemos obtenido como resultado una ROM básica customizable, que encontraremos en el directorio base del Android Kitchen, y que podemos empezar a modificar; aunque eso será en la próxima sesión.

Esperamos que el tema sea de vuestro agrado y os invitamos a realizar tantas consultas como deseéis, para lo que podéis usar los comentarios más abajo o el hilo oficial del curso de desarrollo de ROMs en ForoMoviles.

6 comentarios

  1. Rober, Muchas gracias por este trabajo, que ayuda a quienes como yo, no tenemos tanto conocimiento de Android.-
    Es un trabajo excelente.-
    He seguido el tutorial y solo espero que no tardes en publicar la siguiente parte.-
    Gracias de nuevo.-
    Un saludo.
    Paco fdez.

  2. Excelente tutorial gracias
    Solo tenia una duda con respecto a “deodex” y “CSC ” que se descomprime talvez una definición de que son

  3. Hola, primero que todo gracias por el tutorial.

    Le comento la siguiente duda a ver si usted u otra persona puede ayudarme.

    Me he bajado el firmware español para mi GT-S5360 desde sammobile, he extraido el zip y me salen dos archivos uno XXXX.tar.md5 y otro SS_DL.dll. El caso es que no consigo extraer de ninguna manera los ficheros del XXXX.tar.md5. He probado quitándole la extensión md5, usando winrar, usando 7-zip, he googleado y siempre encuentro las mismas respuestas, que es lo que yo ya he probado.

    El fichero no está corrupto ya que ayer mismo restauré el movil a la version de fábrica usando ese mismo fichero y ODIN.

    Gracias de antemano.

Dejar respuesta

Please enter your comment!
Please enter your name here