Rebelión en la granja — investigación y laboratorio de dispositivos
Investigación sobre granjas de dispositivos y automatización completa para levantar un laboratorio Android sobre un chasis de blades Debian. Conclusión que ordena el repositorio: el cuello de botella nunca fue el cómputo sino la identidad. Desde que la atestación de dispositivo pasó de estadística a criptográfica, un servidor no puede hacerse pasar por un teléfono — le falta una clave grabada en fábrica que ningún software produce. Contenido: - 01_investigacion/ — capa de identidad (verificación telefónica, eSIM, reputación de IP, atestación por hardware, correlación entre cuentas), mercado y players, stack técnico, marco legal en la UE - 02_device_lab/ansible/ — Ansible para 16 blades: preflight de solo lectura que identifica el hardware por DMI, despliegue de redroid en Docker y control de flota por adb. Solo ansible.builtin, sin colecciones externas - docs/ — requisitos, costes y repaso de seguridad con 11 hallazgos - 03_charla/ — guion para HackMadrid / Hackmeeting València Estado: la automatización está escrita pero SIN ejecutar contra hardware. YAML validado, plantillas renderizadas en ambos modos de red y fleet.sh comprobado con bash -n. El modelo de blade sigue sin confirmar.
This commit is contained in:
commit
74bfbe9437
42 changed files with 2989 additions and 0 deletions
151
README.md
Normal file
151
README.md
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
# Rebelión en la granja
|
||||
|
||||
Investigación y laboratorio sobre **granjas de dispositivos**: qué son realmente, quién las
|
||||
fabrica, qué se puede montar con hardware propio y qué no, y por qué la partida técnica ya está
|
||||
decidida.
|
||||
|
||||
Incluye la automatización completa para levantar un **laboratorio de dispositivos Android** sobre
|
||||
un chasis de blades Debian — legal, reutilizable y sin un solo móvil físico.
|
||||
|
||||
Arrancado el 2026-08-07 a raíz de dos webs del sector:
|
||||
[phonefarmbox.com](https://www.phonefarmbox.com/) y [genfarmer.com](https://genfarmer.com/).
|
||||
|
||||
---
|
||||
|
||||
## La conclusión, por delante
|
||||
|
||||
> **El cuello de botella nunca fue el cómputo. Fue la identidad.**
|
||||
>
|
||||
> Desde que la atestación de dispositivo pasó de ser estadística a ser **criptográfica**, un
|
||||
> servidor no puede hacerse pasar por un teléfono: le falta una clave grabada en fábrica que
|
||||
> ningún software produce. Por eso el mercado vende cajas con teléfonos físicos de 400 $ en lugar
|
||||
> de software para tu rack.
|
||||
>
|
||||
> Lo que queda es un problema de SIMs, de reputación de IP y de correlación entre cuentas. Y ahí es
|
||||
> exactamente donde pega la policía.
|
||||
|
||||
El desarrollo está en **[01_investigacion/capa_identidad.md](01_investigacion/capa_identidad.md)**,
|
||||
que es el documento central del repositorio.
|
||||
|
||||
---
|
||||
|
||||
## Qué hay aquí
|
||||
|
||||
### 📄 [docs/](docs/) — léelo antes de encender nada
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| [requisitos.md](docs/requisitos.md) | Eléctrico, físico, hardware, red, tiempo. Con checklist de bloqueantes |
|
||||
| [costes.md](docs/costes.md) | La luz es el coste real: ~340 €/mes 24/7, ~56 €/mes por ventanas |
|
||||
| [seguridad.md](docs/seguridad.md) | 11 hallazgos, uno crítico. Incluye los que introduce este propio código |
|
||||
|
||||
### 🔍 [01_investigacion/](01_investigacion/) — el análisis
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| [capa_identidad.md](01_investigacion/capa_identidad.md) | **El documento central.** Verificación telefónica, por qué la eSIM no vale, reputación de IP, atestación por hardware y la correlación entre cuentas |
|
||||
| [mercado_y_players.md](01_investigacion/mercado_y_players.md) | Los tres negocios bajo el mismo nombre, quién juega en Europa, TikTok vs Instagram |
|
||||
| [stack_tecnico.md](01_investigacion/stack_tecnico.md) | redroid, Cuttlefish, Waydroid, GADS — y por qué el rack no resuelve el caso social |
|
||||
| [legal_ue.md](01_investigacion/legal_ue.md) | DSA, Operación SIMCARTEL, riesgo penal en España |
|
||||
| [fuentes.md](01_investigacion/fuentes.md) | Enlaces |
|
||||
|
||||
### 🔧 [02_device_lab/](02_device_lab/) — el laboratorio
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| [ansible/](02_device_lab/ansible/) | **La automatización completa**: preflight, despliegue de los 16 blades y control de flota |
|
||||
| [hardware_m1000e.md](02_device_lab/hardware_m1000e.md) | El chasis, sus límites y la palanca (RAM) |
|
||||
| [README.md](02_device_lab/README.md) | Montaje de un solo nodo, a mano, para entender las piezas |
|
||||
|
||||
### 🎤 [03_charla/](03_charla/) — divulgación
|
||||
|
||||
Guion de 6 puntos para HackMadrid / Hackmeeting València.
|
||||
|
||||
---
|
||||
|
||||
## Especificaciones
|
||||
|
||||
### Arquitectura
|
||||
|
||||
```
|
||||
Dell PowerEdge M1000e — chasis de blades, 16 slots (8 arriba + 8 abajo)
|
||||
│
|
||||
├── blade-01 ................ COORDINADOR
|
||||
│ └── adb + fleet único punto de control de toda la flota
|
||||
│
|
||||
└── blade-02 .. blade-16 .... NODOS DE CARGA (15)
|
||||
└── Debian 12 pelado
|
||||
└── Docker
|
||||
└── N × redroid Android 13 en contenedor
|
||||
|
||||
8 GB/blade → 3 instancias → ~45 Android
|
||||
32 GB/blade → 14 instancias → ~210 Android
|
||||
```
|
||||
|
||||
**No hay móviles físicos.** Cada "dispositivo" es un contenedor
|
||||
[redroid](https://github.com/remote-android/redroid-doc): Android real sobre el kernel del blade.
|
||||
|
||||
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 Android entera.
|
||||
|
||||
### Stack
|
||||
|
||||
| Capa | Tecnología |
|
||||
|---|---|
|
||||
| Hardware | Dell PowerEdge M1000e, 16 blades, 8 GB/blade |
|
||||
| SO | Debian 12 bookworm |
|
||||
| Kernel | `binder_linux` con devices `binder,hwbinder,vndbinder` (Debian no trae binderfs) |
|
||||
| Contenedores | Docker CE + Compose v2 |
|
||||
| Android | redroid 13 (memfd, sin ashmem) |
|
||||
| Orquestación | Ansible — solo `ansible.builtin`, sin colecciones externas |
|
||||
| Control | adb sobre TCP + `fleet` |
|
||||
| Red | `portmap` (NAT) o `macvlan` (IP real de LAN por el switch FlexIO) |
|
||||
|
||||
### Números
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Capacidad | ~45 Android (~210 con la RAM ampliada) |
|
||||
| Consumo | 2,6–3,6 kW · 70–85 dB · 179 kg · 10U |
|
||||
| Coste 24/7 | ~340 €/mes (~4.100 €/año) |
|
||||
| Coste por ventanas de 4 h/día | ~56 €/mes |
|
||||
| Coste por dispositivo | 7,6 €/mes → **1,7 €/mes** con la RAM ampliada |
|
||||
|
||||
---
|
||||
|
||||
## Arranque rápido
|
||||
|
||||
```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 # pon las IPs reales
|
||||
|
||||
ansible-playbook playbooks/preflight.yml # SOLO LECTURA — no toca nada
|
||||
ansible-playbook site.yml # monta la granja
|
||||
ansible-playbook playbooks/status.yml
|
||||
```
|
||||
|
||||
**Empieza por el preflight siempre.** Te dice qué blades hay dentro del chasis leyéndolo del DMI,
|
||||
si esas CPUs pueden con Android x86_64, y cuántas instancias caben. Antes de gastar un minuto.
|
||||
|
||||
**Y antes de encender el chasis**, el inventario trae un bloque de **piloto de un nodo** para
|
||||
probar el pipeline entero en un sobremesa, por 20 €/mes y sin ruido.
|
||||
|
||||
Guía de trabajo y siguientes pasos: **[GUIA.md](GUIA.md)**.
|
||||
|
||||
---
|
||||
|
||||
## Aviso
|
||||
|
||||
Este repositorio documenta cómo funcionan las granjas de dispositivos y **por qué fracasan** contra
|
||||
las plataformas. La automatización que contiene levanta un laboratorio de QA para probar apps
|
||||
propias.
|
||||
|
||||
No contiene, ni va a contener, operativa de alta masiva de cuentas: proveedores de SIM, evasión de
|
||||
fingerprint o maduración de cuentas. Eso es fraude de identidad a escala, en la UE está bajo
|
||||
persecución activa, y además **no funcionaría** con este hardware por lo que se explica en
|
||||
[capa_identidad.md](01_investigacion/capa_identidad.md).
|
||||
|
||||
Contexto legal: [legal_ue.md](01_investigacion/legal_ue.md).
|
||||
Loading…
Add table
Add a link
Reference in a new issue