# Rebelión en la granja Laboratorio de dispositivos Android sobre un chasis de blades Dell PowerEdge M1000e, más la investigación sobre granjas de dispositivos que llevó a montarlo así. Sin móviles físicos: cada dispositivo es un contenedor [redroid](https://github.com/remote-android/redroid-doc) — Android real sobre el kernel del blade. ## Arquitectura ![Arquitectura de la granja](assets/arquitectura.svg) ``` Dell PowerEdge M1000e — 16 blades (8 arriba + 8 abajo) │ ├── blade-01 ................ coordinador: adb + fleet │ └── blade-02 .. blade-16 .... nodos de carga └── Debian 12 └── Docker └── N × redroid 8 GB/blade → 3 instancias → 45 Android 32 GB/blade → 14 instancias → 210 Android ``` Debian va directo sobre el hierro. Sin Proxmox, sin VMs, sin LXC anidado: con 8 GB por blade cada capa de hipervisor se come una instancia entera. ## Hardware ![Dell PowerEdge M1000e](assets/chasis.svg) Datos del manual del propietario del M1000e (Dell, modelo BMX01, rev. A06, oct. 2019). Dos exigencias del manual condicionan el proyecto entero: las seis fuentes y los nueve ventiladores son obligatorios, se usen 3 blades o 16. No se puede arrancar el chasis a medias. Detalle en [02_device_lab/hardware_m1000e.md](02_device_lab/hardware_m1000e.md). ## Software ![Stack de software](assets/stack-software.svg) | Capa | Tecnología | |---|---| | SO | Debian 12 bookworm | | Kernel | `binder_linux` con devices `binder,hwbinder,vndbinder` (Debian no trae binderfs) | | Contenedores | Docker CE + Compose v2 | | Android | redroid 13 | | Orquestación | Ansible, solo `ansible.builtin` | | Control | adb sobre TCP + `fleet` | | Red | `portmap` (NAT) o `macvlan` (IP real de LAN por Fabric A) | ## Red ![Los dos modos de red](assets/red-modos.svg) ## Números | | | |---|---| | Capacidad | 45 Android; 210 con la RAM ampliada | | Chasis | 10U · 44,0 × 44,7 × 75,5 cm · 200,5 kg cargado | | Consumo | 2,6–3,6 kW · 70–85 dB · 6 fuentes C20 · 9 ventiladores | | Térmico | 10–35 °C en continuo | | Coste 24/7 | ~360 €/mes | | Coste por ventanas de 4 h/día | ~59 €/mes | | Coste por dispositivo | 8,0 €/mes; 1,8 €/mes con la RAM ampliada | ## Arranque ```bash git clone https://gitea.laenre.net/hacklab/REBELION_EN_LA_GRANJA.git cd REBELION_EN_LA_GRANJA/02_device_lab/ansible sudo apt install ansible cp inventory/hosts.yml.example inventory/hosts.yml # poner las IPs reales ansible-playbook playbooks/preflight.yml # solo lectura, no toca nada ansible-playbook site.yml ansible-playbook playbooks/status.yml ``` El preflight va primero. Identifica el modelo de blade leyéndolo del DMI, comprueba si esas CPUs sirven para Android x86_64 y calcula cuántas instancias caben. Para probar sin encender el chasis, el inventario incluye un bloque de piloto de un nodo que levanta todo el pipeline en un sobremesa. ## Contenido | | | |---|---| | [GUIA.md](GUIA.md) | Estado, qué está verificado y qué no, siguientes pasos | | [docs/requisitos.md](docs/requisitos.md) | Eléctrico, físico, red, tiempo. Checklist de bloqueantes | | [docs/costes.md](docs/costes.md) | Consumo y coste por escenario | | [docs/seguridad.md](docs/seguridad.md) | 11 hallazgos, uno crítico | | [docs/usabilidad.md](docs/usabilidad.md) | Cómo se opera la flota | | [02_device_lab/ansible/](02_device_lab/ansible/) | La automatización | | [02_device_lab/hardware_m1000e.md](02_device_lab/hardware_m1000e.md) | El chasis según el manual | | [01_investigacion/](01_investigacion/) | Mercado, stack, capa de identidad, marco legal | ## Por qué esto no sirve para plataformas sociales La atestación de dispositivo dejó de ser estadística y pasó a ser criptográfica. Un Android certificado lleva una clave privada grabada en el TEE de fábrica, con cadena de certificados hasta una raíz de Google. Un contenedor no la tiene, y el nivel de integridad respaldado por hardware verifica una firma, no una apariencia: no hay imitación que valga. Los niveles que solo inspeccionan propiedades sí se falsean por software, pero con recursos que caducan y nunca a escala — el matiz por niveles está en [01_investigacion/capa_identidad.md](01_investigacion/capa_identidad.md). Por eso el mercado vende teléfonos físicos de 400 $ en lugar de software para racks, y por eso este laboratorio sirve para probar apps propias y no para otra cosa. Este repositorio no contiene operativa de alta masiva de cuentas. Contexto legal en [01_investigacion/legal_ue.md](01_investigacion/legal_ue.md).