Ejecutar e Instalar Android en VirtualBox
El otro día leí el interesante artículo de linuxitoCómo instalar Android en una máquina virtual QEMU/KVM y me alentó a probarlo. Para hacerlo, preferí utilizar VirtualBox, ya que tengo todas mis máquinas virtuales ahí, y me pareció bueno publicar mi experiencia, como complemento a la de linuxito.

No conocía la versión x86 de Android. Hasta ahora había utilizado Android desde el SDK, mediante Android Virtual Devices (AVD). Este emulador es muy completo, pero también muy pesado, y la ejecución no es muy fluida que digamos (salvo que tengas una máquina muy potente). No me pasó lo mismo con la virtualización mediante VirtualBox.


Creación de la máquina virtual

Para empezar, descarguemos la última imagen de Android para x86 desde la página del proyecto. Algo a tener en cuenta es que esta versión de Android es para tablets, por lo que algunas aplicaciones para celulares como WhatsApp no funcionarán.

La máquina virtual que creemos en VirtualBox debe tener ciertas características, dado que Android aparentemente no trae todos los drivers y tiene requerimientos mínimos. Para la configuración base de la virtual, me basé en la información de Android x86 - VirtualBoxHowTo.
Utilicemos la siguiente definición:
- Tipo: Linux
- Versión: 2.6
- Disco: 10GB deberían ser suficientes.
- Memoria: 256MB como mínimo, 512MB recomendado. Yo le pondría 1GB para que funcione bien fluído.
- Memoria de video (Pantalla -> Vídeo): 8MB
- Controlador de audio (Audio): SoundBlaster 16
- Red: Utilizar NAT o bridge. En modo bridge es necesario un servidor DHCP.
    - Tipo de adaptador: PCnet-FAST III
- Montar la imagen ISO de Android en la lectora virtual (Almacenamiento -> Controller: IDE)
 
Ejecución de prueba

Al iniciar la máquina virtual, vemos que existen varias opciones de booteo. Si quieren hacer una prueba antes de instalar, pueden ejecutar Android en modo live (primer opción).

En modo live, solamente nos solicitará que configuremos el idioma, la red WiFi, y nos preguntará sobre la localización. Como estamos en una virtual, y sólo queremos probar el sistema, dar skip a la configuración del WiFi y no tildar ninguna de las opciones de localización.

El sistema inicia en cuestión de segundos y vemos el escritorio de Android. Acá me topé con un problema. Si están utilizando la integración del mouse de VirtualBox, probablemente les suceda que no ven el puntero dentro de la máquina virtual. Esto hace casi imposible su uso. Para solucionarlo, simplemente hay que deshabilitar la integración desde VirtualBox:
Máquina -> Inhabilitar integración del ratón (Ctrl + I)

Instalación de Android

Para instalar Android en el disco virtual, debemos iniciar desde el cd y realizar los siguientes pasos:
  1. Seleccionar el modo instalación en GRUB.
  2. Una vez que se carga el sistema de instalación, aparece el gestor de particiones.


  3. En el mismo seleccionar "Create/Modify partitions", con lo cual se abre cfdisk


  4. Aquí seleccionar New -> Primary y dejar el tamaño completo del disco. Cuando la partición aparece, marcarla como booteable (opción Bootable).


  5. Luego dar a la opción Write para que se guarden los cambios. Esta opción preguntará si estamos seguros de lo que vamos a hacer, pues decir que yes!
  6. Una vez terminado esto, seleccionar Quit para salir. Esto nos retorna a la pantalla anterior, en la cual ahora podemos seleccionar la partición para instalar el sistema.


  7. Seleccionarla y formatearla con ext3.


  8. Al formatear el sistema consultará de nuevo si estamos seguros de lo que deseamos hacer, responder nuevamente que yes!
  9. Luego se nos consulta si deseamos instalar grub como boot loader. Seleccionar que si.
  10. Para finalizar, el sistema nos pregunta si deseamos hacer que /system sea un directorio de lectura+escritura. Esto permitirá mejor debugging, pero ocupará más espacio y la instalación demorará más. Dar que si, tampoco es tanto lo que pesa (ni lo que tarda).
  11. Cuando termina la copia de archivos, seleccionar reiniciar para ejecutar el nuevo sistema.


Como podrán observar, la instalación completa no demora más de 10 minutos (en mi caso no demoró ni 5).


Primer ejecución

La primer ejecución solicitará que configuremos algunas cosas:
  1. Idioma: seleccionar el que más les guste.
  2. Configuración de WiFi: seleccionar skip, usaremos la conexión física.
  3. Cuenta de Google: sin una cuenta de Google configurada no se puede hacer mucho en Android, pero pueden pasar este paso sin configurar una.
  4. Enviar información de localización a Google: en este paso se nos consulta si deseamos información de localización "anonimamente" a Google. Al no tener GPS en la máquina virtual, no hace diferencia dejar tildadas o no las opciones.
  5. Nombre: la tablet necesita un nombre para personalizar aplicaciones. Pongan lo que gusten.

Configuraciones básicas

Al usar un rato Android en la virtual, encontré algunos problemas. El primero que encontré es que al abrir alguna aplicación, se rota la pantalla y no puedo retornar a la posición original. Como se imaginarán, usar el sistema rotado 90º no es nada cómodo! Esto se puede solucionar fácilmente deshabilitando el auto-rotate:
Aplicaciones -> Settings -> Accessibility -> Destildar Auto-rotate scree
Otro problema es que cuando se apaga la pantalla para ahorrar energía, no puedo recuperar el control. Para evitar esto deshabilité el modo sleep:
Aplicaciones -> Settings -> Display -> Sleep -> Never Timeout

Comentarios finales

Usar la versión de Android x86 en VirtualBox u otras máquinas virtuales es muy simple y anda mucho mejor que usar AVD. Sin embargo AVD es mucho más completo que esta versión, dado que trae múltiples versiones de Android para múltiples dispositivos.
Hay que tener en cuenta que si no configuran una cuenta Google, no podrán instalar nada... prácticas monopólicas? naaaa

Probar aplicaciones en el ambiente virtualizado es mucho mejor que andar instalando porquerías en una tablet o un celular directamente. Esto nos permitirá conocer Android más a fondo, dado que no tendremos miedo de romper un caro aparato. También nos servirá para testear como se ven y ejecutan aplicaciones web.

En resumen, jueguen con este Android, que para eso está :)