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
adbdesde 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
| AOSP | GMS (Google Mobile Services) | |
|---|---|---|
| Qué es | El SO base: kernel, framework, apps mínimas | Capa de servicios y apps de Google encima |
| Licencia | Open source (Apache 2) | Propietaria, Google la licencia a fabricantes |
| Incluye | Phone, Messages, Calculator, settings | Play Store, Maps, Gmail, Chrome, push notifications, geolocalización A-GPS, Play Services |
| Ejemplos | LineageOS, /e/OS, Kindle Fire, Huawei post-2019 | Móviles "normales" de Samsung, Xiaomi, Google Pixel |
Android-x86 es AOSP puro: no trae Play Store. Lo veremos.
0.4 — Formas de ejecutar Android sin un móvil físico
| Opción | Cómo | Cuándo usarla |
|---|---|---|
| Android-x86 | SO completo instalado en disco, arranca como un PC normal | Curiosidad, revivir un netbook, esta práctica |
| Bliss OS / Prime OS | Forks modernos de Android-x86 | Si quieres una versión Android más reciente |
| AVD (Android Virtual Device) | Emulador oficial del SDK de Android | Desarrollo de apps, pruebas en distintas versiones de Android sin cambiar de móvil |
| Genymotion | Emulador comercial basado en VirtualBox | Empresas que necesitan automatización de tests |
| Waydroid | Android corriendo como contenedor en un Linux anfitrión | Tener apps Android en un Linux de escritorio |
| Windows Subsystem for Android | Microsoft 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.
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ámetro | Valor |
|---|---|
| Nombre | Android-x86-Lab |
| Tipo | Linux |
| Versión | Other Linux (64-bit) |
| RAM | 2048 MB |
| CPUs | 2 vCPU |
| Disco | 8 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.
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
- "Choose Partition" → Create/Modify partitions.
- Pregunta "Do you want to use GPT?" → No (más simple con MBR clásico).
- Entras en cfdisk. New → Primary → tamaño total → Bootable → Write → escribe "yes" → Quit.
- Vuelves al instalador. Selecciona
sda1. - 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).
- Espera la copia (5-10 min).
- Cuando termine: Reboot. Antes, en VirtualBox quita la ISO del lector de DVD.
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
- Idioma: Español.
- Red WiFi: pulsa "Use cellular network for setup" o "Skip" (estás en NAT, ya hay internet pero no WiFi).
- Verifica que internet funciona: si tarda mucho en "Comprobando conexión", paciencia.
- Servicios de Google: NO tienes Google Apps; usa "Skip". Si te ofrece "Set up for personal use", elige eso.
- Cuenta Google: Skip. Android-x86 viene sin Play Store.
- Bloqueo de pantalla: elige "Skip" → "Skip anyway" (no necesitamos PIN en una VM).
- 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.
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
- Ajustes → Sistema → Acerca del teléfono.
- Pulsa 7 veces en "Número de compilación". Te aparece "Ya eres desarrollador".
- Vuelve atrás → ahora hay un nuevo menú "Opciones para desarrolladores".
- Entra y activa: Depuración USB.
- 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.
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:
| Aspecto | Windows / Linux escritorio | Android |
|---|---|---|
| Cómo se cierra una aplicación | Botón X, Alt+F4, mato proceso | |
| Modelo de permisos | Una app puede leer casi todo tu disco | |
| Instalar software | .exe / .msi / apt / dnf / pacman | |
| Multitarea real | Sí, todas las apps siguen corriendo | |
| Acceso a hardware | Directo, con permisos de SO | |
| Cómo se actualiza el SO | Windows Update / apt upgrade | |
| Sistema de archivos visible al usuario | Sí, Explorador de archivos |
Parte 7 — Diagnóstico (30 min)
| Problema | Diagnó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". |
- 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.
- Has activado aceleración 3D sin GPU dedicada, o el controlador gráfico es VMSVGA. Cambia a VBoxSVGA y desmarca 3D.
- El tipo de adaptador es Intel y Android-x86 no lo detecta bien. Cámbialo a PCnet-FAST III.
- 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.
- 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 lossetprop/stop adbd/start adbden Debug mode.
Ficha técnica
VM
Apps instaladas (a través de F-Droid, Aurora, o ADB)
ADB
Reto opcional
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
| Hito | Hecho |
|---|---|
| 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.