← Teoría

Práctica 40: Android-x86 — un sistema operativo móvil en tu VirtualBox

Bloque: Instalación de SO no habituales (sesión 4 de 4)
Duración estimada: 5 horas (1 sesión completa)
Modalidad: trabajo individual
Requisitos previos: prácticas 06 y 07 (saber crear VMs)
Herramientas: VirtualBox 7.x, ISO de Android-x86 9.0-r2 64-bit (gratis, ~900 MB), Android Platform Tools (gratis, ~10 MB), conexión a internet
De qué va esta práctica: Android es el sistema operativo más usado del mundo. Lo llevas en el bolsillo, está en miles de millones de móviles, en muchas TVs, en relojes, en coches y hasta en cajeros. Pero es Linux por dentro. En esta sesión vas a instalar Android-x86, una versión adaptada para arquitectura PC, en una VM de VirtualBox. Lo vas a configurar, le vas a instalar aplicaciones, lo vas a conectar a tu Windows anfitrión por ADB (Android Debug Bridge, la herramienta que usan los técnicos para depurar móviles) y lo vas a comparar con un SO de escritorio para entender qué hace especial a un sistema operativo móvil.
Red del aula: la VM va en adaptador puente contra 192.168.8.0/24. Android cogerá IP por DHCP del aula. Esa IP es la que usarás luego desde Windows para conectarte por ADB.

Objetivos de la práctica

  • Conocer la arquitectura interna de Android: kernel Linux + librerías + AOSP + capa de apps Java/Kotlin.
  • Entender la diferencia entre AOSP (Android Open Source Project, lo que cualquiera puede usar) y GMS (Google Mobile Services: Play Store, Maps, etc., que Google licencia).
  • Distinguir las distintas formas de ejecutar Android sin un móvil: Android-x86 nativo, Bliss/Prime OS, AVD del SDK, Genymotion, Waydroid.
  • Configurar correctamente una VM de VirtualBox para Android-x86 (controlador SATA, hardware acelerado, audio, USB, red).
  • Instalar Android-x86 en disco virtual con GRUB.
  • Hacer el primer arranque: idioma, omitir cuenta de Google, ver el launcher.
  • Cargar e instalar un APK sin Play Store usando F-Droid.
  • Activar las opciones de desarrollador y la depuración USB sobre red.
  • Conectar adb desde tu Windows a la VM y manejar Android por línea de comandos (paquetes, logs, sistema de archivos).
  • Comparar Android con Windows/Linux: filosofía, modelo de permisos, multitarea, ciclo de vida de apps.
  • Diagnosticar problemas típicos: pantalla negra al arrancar, sin internet, ratón pegado, no se ven los APKs cargados.
  • Documentar todo en una ficha técnica.

Parte 0 — Conceptos previos (60 min)

0.1 — Qué es Android exactamente

Android es un sistema operativo móvil construido sobre un kernel Linux modificado. Lo creó Andy Rubin en una startup llamada Android Inc. en 2003. Google la compró en 2005, y en 2008 salió el primer móvil con Android (HTC Dream). Hoy lo desarrolla Google bajo el paraguas de la Open Handset Alliance.

Aunque cuando dices "Android" piensas en el móvil de Samsung, Xiaomi o Google, lo cierto es que Android se usa en:

  • Smartphones y tablets (lo evidente).
  • Wear OS: relojes inteligentes.
  • Android TV / Google TV: televisores y reproductores.
  • Android Automotive: salpicaderos (Volvo, Polestar, Renault).
  • Android Things (descontinuado, pero existió): IoT.
  • Kindle Fire de Amazon: Android sin GMS.

0.2 — La pila de capas de Android

De abajo arriba:

+---------------------------------------+
|  Apps (Java/Kotlin, lo que tú ves)    |
+---------------------------------------+
|  Java API Framework                   |    activity, location, sensores, UI...
+---------------------------------------+
|  Librerías nativas + ART runtime      |    SQLite, OpenGL, Vulkan, ART (la JVM)
+---------------------------------------+
|  Hardware Abstraction Layer (HAL)     |    cámara, audio, bluetooth, GPS
+---------------------------------------+
|  Kernel Linux modificado              |    drivers + binder + wakelocks
+---------------------------------------+

El kernel es Linux, sí, pero con parches específicos de Android (el más famoso: Binder, el mecanismo de IPC, y los wakelocks para gestión de energía). Eso significa que no puedes coger un kernel Linux genérico y usarlo tal cual en un Android (aunque hoy día muchos parches ya están aguas arriba en el kernel mainline).

0.3 — AOSP vs GMS

AOSPGMS (Google Mobile Services)
Qué esEl SO base: kernel, framework, apps mínimasCapa de servicios y apps de Google encima
LicenciaOpen source (Apache 2)Propietaria, Google la licencia a fabricantes
IncluyePhone, Messages, Calculator, settingsPlay Store, Maps, Gmail, Chrome, push notifications, geolocalización A-GPS, Play Services
EjemplosLineageOS, /e/OS, Kindle Fire, Huawei post-2019Móviles "normales" de Samsung, Xiaomi, Google Pixel
Cuando Huawei se quedó sin GMS por las sanciones de EE.UU. en 2019, sus móviles se quedaron sin Play Store y sin Maps de la noche a la mañana. Eso te da una pista de cuánto depende el Android "normal" de GMS, aunque AOSP en sí siga siendo libre.

Android-x86 es AOSP puro: no trae Play Store. Lo veremos.

0.4 — Formas de ejecutar Android sin un móvil físico

OpciónCómoCuándo usarla
Android-x86SO completo instalado en disco, arranca como un PC normalCuriosidad, revivir un netbook, esta práctica
Bliss OS / Prime OSForks modernos de Android-x86Si quieres una versión Android más reciente
AVD (Android Virtual Device)Emulador oficial del SDK de AndroidDesarrollo de apps, pruebas en distintas versiones de Android sin cambiar de móvil
GenymotionEmulador comercial basado en VirtualBoxEmpresas que necesitan automatización de tests
WaydroidAndroid corriendo como contenedor en un Linux anfitriónTener apps Android en un Linux de escritorio
Windows Subsystem for AndroidMicrosoft empaquetó AOSP para Windows 11 (descontinuado en 2025)Histórico

0.5 — Qué es ADB y por qué lo vas a usar

ADB (Android Debug Bridge) es la herramienta que usan los desarrolladores y técnicos para comunicarse con un dispositivo Android desde un PC. Permite, entre otras cosas:

  • Instalar APKs sin pasar por el móvil (adb install).
  • Ver los logs del sistema en vivo (adb logcat).
  • Lanzar una shell remota en el dispositivo (adb shell).
  • Copiar archivos en los dos sentidos (adb push / pull).
  • Reiniciar al modo recovery (adb reboot recovery).

Cualquier técnico de móvil lo usa todos los días. Vamos a manejarlo contra una VM en vez de contra un móvil real, pero la mecánica es idéntica.

¿Por qué dirías que Android, siendo Linux por dentro, no se considera "una distro Linux más" sino un mundo aparte?

Parte 1 — Preparar la VM (45 min)

1.1 — Descargar Android-x86

Vete a https://www.android-x86.org/download. Elige:

  • android-x86_64-9.0-r2.iso (recomendado) o la versión 9.0-r2 más reciente. ~900 MB.
  • Espejo: FOSSHUB o OSDN.
Existe la 8.1, la 9.0 y un release-candidate más nuevo. La 9.0-r2 es la versión estable y la que usan casi todos los tutoriales. Lo más nuevo (Bliss OS, Android 11/12) suele dar problemas de gráficos en VirtualBox.

1.2 — Descargar Platform Tools (ADB) en Windows

Desde Windows, vete a https://developer.android.com/tools/releases/platform-tools y descarga el ZIP "SDK Platform Tools for Windows". Descomprímelo en C:\platform-tools\. Dentro están adb.exe y fastboot.exe. Para tenerlo a mano:

setx PATH "%PATH%;C:\platform-tools"

Cierra y abre una nueva PowerShell. Comprueba:

adb version

1.3 — Crear la VM en VirtualBox

ParámetroValor
NombreAndroid-x86-Lab
TipoLinux
VersiónOther Linux (64-bit)
RAM2048 MB
CPUs2 vCPU
Disco8 GB VDI dinámico

1.4 — Ajustes críticos antes de arrancar

Sistema → Procesador

  • Marca Habilitar PAE/NX.

Pantalla

  • Memoria de vídeo: 128 MB.
  • Controlador gráfico: VBoxSVGA (o VBoxVGA si SVGA falla; NO uses VMSVGA con Android-x86).
  • NO marques aceleración 3D si tu PC del aula no tiene GPU dedicada — Android se quedará en pantalla negra.

Almacenamiento

  • Asegúrate de que el controlador del disco duro es SATA, no IDE.
  • Añade la ISO de Android-x86 en el lector de DVD.

Audio

  • Controlador: Intel HD Audio.

Red

  • Adaptador 1: Adaptador puente (Bridged), seleccionando tu tarjeta de red del aula.
  • Tipo: PCnet-FAST III. Es el que mejor reconoce Android-x86 9.0-r2.
Android-x86 pedirá IP por DHCP al arrancar y recibirá una IP del aula en 192.168.8.x. La vas a necesitar más tarde para conectarte con ADB desde Windows.

USB

  • Marcar Habilitar controlador USB → USB 1.1 (Android-x86 9 no maneja bien USB 3.0).

Parte 2 — Instalar Android-x86 (45 min)

2.1 — Arrancar y elegir Installation

Arranca la VM con la ISO. En el menú azul de GRUB, baja a "Installation - Install Android-x86 to harddisk" y pulsa Enter.

2.2 — Particionar con cfdisk

  1. "Choose Partition" → Create/Modify partitions.
  2. Pregunta "Do you want to use GPT?" → No (más simple con MBR clásico).
  3. Entras en cfdisk. New → Primary → tamaño total → BootableWrite → escribe "yes" → Quit.
  4. Vuelves al instalador. Selecciona sda1.
  5. Filesystem: ext4 → Yes (format) → Yes (install GRUB) → No a EFI GRUB2 → Yes a "Install /system directory as read-write" (importante para poder modificar el sistema).
  6. Espera la copia (5-10 min).
  7. Cuando termine: Reboot. Antes, en VirtualBox quita la ISO del lector de DVD.
Si te equivocas y marcas "system as read-only", luego no podrás instalar root apps. No es crítico para esta práctica pero conviene marcarlo como read-write.

Parte 3 — Primer arranque y configuración (30 min)

3.1 — Arrancar Android instalado

En el GRUB elige la primera opción ("Android-x86 9.0-r2"). Tarda bastante: ten paciencia, sobre todo en el splash con la palabra ANDROID.

3.2 — Setup inicial

  1. Idioma: Español.
  2. Red WiFi: pulsa "Use cellular network for setup" o "Skip" (estás en NAT, ya hay internet pero no WiFi).
  3. Verifica que internet funciona: si tarda mucho en "Comprobando conexión", paciencia.
  4. Servicios de Google: NO tienes Google Apps; usa "Skip". Si te ofrece "Set up for personal use", elige eso.
  5. Cuenta Google: Skip. Android-x86 viene sin Play Store.
  6. Bloqueo de pantalla: elige "Skip" → "Skip anyway" (no necesitamos PIN en una VM).
  7. Acepta términos y entra al launcher.

3.3 — Acostumbrarse al control de ratón

Android-x86 traduce los clicks del ratón a "toques en la pantalla". Cosas a tener en cuenta:

  • Click izquierdo = tap.
  • Click izquierdo mantenido y arrastrar = long-press / swipe.
  • Rueda del ratón = scroll.
  • Click derecho = botón "atrás" físico (muy útil — equivale al botón de retroceso).
  • Tecla Esc = botón atrás.
  • Tecla Windows/Super = botón inicio (Home).
  • Tecla Tab = cambia de app entre las recientes.
Para abrir el menú de opciones de una app (los tres puntitos), usa long-press con click izquierdo. No hay una tecla universal.

Parte 4 — Instalar APKs sin Play Store (45 min)

4.1 — F-Droid (alternativa libre a Play Store)

Abre el navegador (Chromium viene preinstalado) y entra a https://f-droid.org. Descarga el APK del F-Droid client.

4.2 — Permitir orígenes desconocidos

La primera vez que intentes instalar un APK descargado, Android te dirá que no se permiten. Vete a Ajustes → Aplicaciones y notificaciones → Avanzado → Acceso especial a apps → Instalar apps desconocidas → Chromium → Permitir.

Vuelve a la descarga y abre el .apk. Instalar → Abrir.

4.3 — Instalar dos apps desde F-Droid

Desde F-Droid descarga e instala:

  • Aurora Store (un cliente alternativo a la Play Store, sin necesidad de cuenta Google).
  • VLC (reproductor multimedia).

Comprueba que ambas abren.

Parte 5 — ADB desde Windows hacia la VM (60 min)

5.1 — Activar opciones de desarrollador

  1. Ajustes → Sistema → Acerca del teléfono.
  2. Pulsa 7 veces en "Número de compilación". Te aparece "Ya eres desarrollador".
  3. Vuelve atrás → ahora hay un nuevo menú "Opciones para desarrolladores".
  4. Entra y activa: Depuración USB.
  5. Busca "Depuración inalámbrica" o "ADB sobre red". Si no aparece (depende de la versión), continúa al paso siguiente.

5.2 — Activar ADB sobre TCP/IP

En Android-x86 hay una shell que se llama terminal emulator en algunas builds, o bien hay que activar TCP por adb desde un shell con permisos:

Lo más sencillo: desde el GRUB arranca "Android-x86 9.0-r2 (Debug nocheck)" o desde el menú de arranque elige Debug mode. Te deja en una shell de root antes de iniciar Android. Ejecuta:

setprop service.adb.tcp.port 5555
stop adbd
start adbd
exit

Android arranca como siempre y ahora el demonio ADB escucha en el puerto 5555 de la VM. Apunta la IP que tiene Android dentro del aula: en el propio Android, abre Ajustes → Red e internet → WiFi/Ethernet → propiedades, o consulta el router del aula. Estará en 192.168.8.x.

Desde una PowerShell de Windows:

adb connect 192.168.8.XX:5555
adb devices

(Sustituye 192.168.8.XX por la IP real de tu Android.) Debes ver tu dispositivo listado como 192.168.8.XX:5555 device.

¿Cómo saber la IP del Android desde el propio Android? Ajustes → Sistema → Acerca del teléfono → Estado → Dirección IP. O abre el navegador y busca "cuál es mi IP" — verás la pública, no te sirve. Lo más fiable: desde el GRUB arranca en modo Debug y haz netcfg o ip a antes de iniciar Android.

5.3 — Comandos ADB que tienes que probar

Desde una PowerShell del anfitrión Windows:

adb devices                          # confirma la conexión
adb shell                            # entras en una shell del Android
# dentro de la shell
ls /                                 # mira la jerarquía
ls /system/app                       # apps de sistema
ls /data/app                         # apps de usuario instaladas
cat /proc/cpuinfo                    # confirmas que el kernel es Linux
exit

adb shell pm list packages | head    # paquetes instalados
adb shell getprop ro.build.version.release    # versión Android
adb shell screencap -p /sdcard/captura.png    # captura
adb pull /sdcard/captura.png .                # te la traes a Windows

adb logcat | findstr /i error        # ver errores en vivo

5.4 — Instalar un APK por ADB

Descarga un APK pequeño en tu Windows (por ejemplo, alguno de F-Droid descargado desde su web a tu PC) y desde la PowerShell:

adb install C:\Downloads\miapp.apk

Te aparece instalada en el Android.

¿En qué situaciones del trabajo de un técnico de soporte sería útil tener ADB para conectar con un móvil de un usuario?

Parte 6 — Comparativa con SO de escritorio (30 min)

Reflexiona y rellena:

AspectoWindows / Linux escritorioAndroid
Cómo se cierra una aplicaciónBotón X, Alt+F4, mato proceso
Modelo de permisosUna app puede leer casi todo tu disco
Instalar software.exe / .msi / apt / dnf / pacman
Multitarea realSí, todas las apps siguen corriendo
Acceso a hardwareDirecto, con permisos de SO
Cómo se actualiza el SOWindows Update / apt upgrade
Sistema de archivos visible al usuarioSí, Explorador de archivos

Parte 7 — Diagnóstico (30 min)

ProblemaDiagnóstico / solución
La VM arranca pero solo veo el logo ANDROID y nunca llega al setup.
Pantalla negra completa al iniciar.
Android arranca pero no tiene internet.
El ratón no responde dentro de Android.
adb connect 192.168.8.XX:5555 da "cannot connect".
Pistas:
  1. Probablemente Android está intentando llegar a Google Servers y se queda esperando timeout. Espera 5-10 min, o si no, reinicia con la opción "Debug mode" del GRUB y mira los logs.
  2. Has activado aceleración 3D sin GPU dedicada, o el controlador gráfico es VMSVGA. Cambia a VBoxSVGA y desmarca 3D.
  3. El tipo de adaptador es Intel y Android-x86 no lo detecta bien. Cámbialo a PCnet-FAST III.
  4. El controlador de ratón a veces se queda enganchado. Pulsa el botón Host (Ctrl derecho por defecto) y vuelve a hacer click dentro.
  5. Confirma la IP exacta del Android (no des por hecho la .XX). Desde el propio Android: Ajustes → Estado → Dirección IP. Y comprueba que Android está arrancado del todo (la pantalla del launcher) antes de hacer adb connect. Si te ha cambiado la IP entre sesiones, vuelve a ejecutar los setprop / stop adbd / start adbd en Debug mode.

Ficha técnica

VM

Apps instaladas (a través de F-Droid, Aurora, o ADB)

ADB

Reto opcional

Instala Termux desde F-Droid. Termux es un emulador de terminal con un mini-Linux (paquetes como apt, ssh, python, vim) corriendo dentro de Android. Es una de las apps más impresionantes del ecosistema: literalmente tienes un Linux funcional sobre Android. Instala openssh en Termux (pkg install openssh) y conéctate por SSH desde Windows con: ssh -p 8022 [email protected] (la IP de tu Android en la red bridged del aula). Como estás en bridged, no necesitas redirigir puertos.

Autoevaluación

Marca lo conseguido

HitoHecho
VM creada con todos los ajustes específicos para Android-x86
ISO arrancando y modo "Installation" elegido
Disco particionado y formateado ext4, GRUB instalado
Android arranca desde disco (sin ISO)
Setup inicial completado (saltando cuenta Google)
F-Droid descargado e instalado
Al menos 2 apps instaladas desde F-Droid / Aurora
Opciones de desarrollador activadas
ADB conecta desde Windows a la VM por TCP
Captura de pantalla traída con adb pull
APK instalado por adb install
Tabla comparativa con Windows/Linux rellena
Ficha técnica completa
Reto: Termux + SSH conectados

Después de toda la sesión: cita una cosa que te ha sorprendido positivamente de Android visto "por dentro" y una limitación que ahora entiendes mejor.