Cómo preparar el entorno de trabajo para cocinar para Android

De HTCMania Wiki

Contenido

Introducción

Este tutorial es el comienzo de una serie de artículos que nos ayudarán a la hora de compilar y crear nuestra ROM para dispositivos con Sistema Operativo Android. Debido a que yo me he dedicado al HTC Dream, no dispongo de la suficiente información para detallar los cambios necesarios para otros dispositivos, en cualquier caso, estos artículos nos pueden ayudar igualmente para ver la metodología, aunque luego tengamos que indagar para conseguir una ROM compilada para un dispositivo concreto.

Vamos a seguir la estructura de el blog de Johan de Koning, ya que me gusta mucho la organización y a mi me ha servido de mucho sobre todo al comienzo. Completaremos con información adicional y actualizada.

Debido a que dicho Sistema Operativo está en continuo crecimiento y sujeto a múltiples cambios, ya que es una plataforma con código abierto en la que cualquiera puede aportar mejoras, este tutorial puede quedarse obsoleto en poco tiempo. Es por ello que no se puede tomar como "norma de Fe", pero si es cierto, que es un buen comienzo a la hora de introducirse en este mundo, de modo que nos da un punto de partida para poder centrarnos en las mejoras que podemos aportar y no perder tiempo en rebuscar información por la red con respecto a "cosas básicas".

En cualquier caso, gracias a que esta wiki es abierta y cualquiera puede editar los artículos, entre todos podemos intentar mantener actualizado el tutorial y añadir nueva documentación en la medida de lo posible de modo que sea un referente en cuanto a información centralizada sobre el aspecto a tratar.

Dicho esto vamos a comenzar con el tema que nos ocupa.

¿Qué necesito?

Lo primero que nos va a hacer falta es un ordenador con Sistema Operativo "Case Sensitive". ¿Que es esto? Pues básicamente, para que nos entendamos, es un Sistema Operativo que internamente distinga entre mayúsculas y minúsculas. Es por ello que no es posible utilizar Microsoft Windows para compilar Android, nos hará falta Linux o MacOS. Yo dispongo de Ubuntu Linux 9.10, y nunca he utilizado MacOS. Es por ello que centraré mi explicación en este Sistema Operativo. También he de decir que aunque es posible la compilación en MacOS, me consta que hay gente a la que le ha dado problemas, en cualquier caso, como he contado en la introducción, si alguien utiliza MacOS, y observa diferencias, puede editar este tutorial y añadirlas directamente.

Lo segundo que necesitamos (aunque directamente para este tutorial no es estrictamente necesario), ya que supuestamente querremos probar nuestras ROM's en un dispositivo es preparar el sistema para la conexión con el dispositivo.

Y ya por último, necesitaremos conexión a internet.

Procedimiento

Paso 1: Preparando el entorno

Lo primero es actualizar el sistema para tener todo lo necesario. Necesitaremos los siguientes paquetes:

  • git-core
  • gnupg (este paquete debería estar ya instalado)
  • sun-java5-jdk (no vale simplemente con el SDK además no se debe usar java 6 por los problemas de compilación con la orden "overrides")
  • flex
  • bison
  • gperf
  • libsdl-dev
  • libesd0-dev (el último 0 es un cero :P)
  • libwxgtk2.6-dev
  • build-essential
  • zip (ya instalado)
  • curl
  • libncurses5-dev
  • zlib1g-dev
  • valgrind (este paquete es opcional)

Aquí nos encontramos el primer problema, en Ubuntu 9.10 se ha eliminado de los repositorios el sun-java5-jdk, y por tanto no está como opción, así que tenemos que añadirlo manualmente. Para ello hay 2 opciones:

Método 1: Descargar e instalar Java5 JDK desde la página de Sun Microsystems

Este método nos permite instalar Java5 JDK en un directorio a parte e introducirlo en el PATH.

Este archivo binario lo podemos dejar en la carpeta /opt/java/tools. Le cambiaremos los permisos para poder ejecutarlo abriendo una consola de sistema y escribiendo:

cd /opt/java/tools
chmod 777 jdk-1_5_0_21-linux-i586.bin

y lo ejecutaremos

./jdk-1_5_0_21-linux-i586.bin

Esto instalará el JDK en el directorio actual. Para usar las herramientas del JDK5 necesitas añadirlo al PATH antes de construir el Android Open Source Project. Para ello ejecutamos:

export PATH=/opt/java/tools/jdk1.5.0_21/bin:$PATH

Esto nos permitirá eliminar el JDK5 del PATH cuando no estemos compilando Android y usar en su lugar los ajustes estándar de Java.

Método 2: Utilizar los repositorios de Ubuntu 9.04 para obtener Java5

Este método añade los repositorios de Ubuntu Jaunty Jackalope e instalar Java5 como ajustes por defecto de Java en el sistema. Para ello, editamos el archivo /etc/apt/sources.list como root:

sudo gedit /etc/apt/sources.list

y añadimos:

deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

salvamos el archivo y cerramos el gedit. Ahora sincronizamos las fuentes ejecutando:

sudo apt-get update

e instalamos

sudo apt-get install sun-java5-jdk

En caso de que tengamos Java6 instalado, necesitamos ajustar el sistema para usar Java5 por defecto, para ello:

sudo update-alternatives --config java

Aquí seleccionamos java-1.5.0-sun y todo debería estar listo.

Paso 2: Instalar el resto de paquetes

Ubuntu Linux (32-bit x86)

Instalaremos el resto de paquetes de una sola tacada, para ello abrimos una consola y escribimos:

sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind

En la página Android Source pone que en caso de estar utilizando Ubuntu 8.10 es necesario instalar una nueva versión de libreadline ya que si no se realiza repo dará errores al obtener el código.

sudo apt-get install libreadline5-dev

Nota: En la página de Get source en la página web oficial de Android usa un nombre diferente para esta librería (lib32readline5-dev), pero esta no existe.

Ubuntu Linux (64-bit x86)

Si disponemos de esta versión necesitaremos los paquetes instalados para la versión de 32-bit además de unos paquetes adicionales, la orden completa quedaría:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev libreadline5-dev lib32z-dev valgrind

Además, Ubuntu no tiene paquetes para las librerías de X11, pero se puede solucionar mediante la siguiente orden:

sudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so

Conclusión

Con esto tenemos el sistema listo para compilar el código fuente de Android. En el siguiente artículo veremos como obtener dicho código.

Siguientes artículos

Cómo obtener el código fuente de Android

Cómo obtener las aplicaciones propietarias de Google

Cómo compilar Android

Cómo probar nuestra ROM usando el emulador

Cómo rootear una ROM

Cómo crear un update.zip

Aportaciones

Si te ha resultado útil la aportación, si quieres puedes hacer una donación.

Herramientas personales