tv-vibehack en 2026: Cómo Quitar los Anuncios de tu Android TV con ADB
Hola HaWkers, enciendes la TV para ver una película y lo primero que aparece es una fila de tráilers patrocinados, un banner de un streaming al que ni siquiera estás suscrito y una aplicación preinstalada del fabricante pidiendo actualización. Esa es la pantalla de inicio por defecto de buena parte de los televisores con Android TV y Google TV hoy. Esta semana, un proyecto open source llamado tv-vibehack superó las 3,1 mil estrellas en GitHub prometiendo exactamente lo contrario: "tu TV, sin los anuncios".
La pregunta que queda es: ¿se puede limpiar una TV que compraste sin root, sin cable y sin grabar un firmware nuevo, y además poder deshacerlo todo si algo sale mal? En este artículo vas a entender cómo funciona tv-vibehack por dentro, qué televisores soporta, qué riesgos reales existen y, sobre todo, qué enseña este proyecto a quien construye productos digitales.
Qué Es tv-vibehack
tv-vibehack es un kit open source, bajo licencia MIT, mantenido por el usuario Gathin23 en GitHub. Hace tres cosas, en este orden:
- Hace una copia de seguridad de la lista de paquetes instalados y de la configuración de la TV.
- Desactiva la telemetría, los servicios de anuncios, las filas de contenido patrocinado y las aplicaciones preinstaladas usando el comando
pm disable-user. Nada se desinstala. - Instala un launcher nativo de unos 250 KB (el paquete
com.gathin.tvhome) y lo define como pantalla de inicio por defecto.
El diseño del launcher está inspirado en el Apple TV: fondo negro puro, un dock con cuatro aplicaciones favoritas, una estantería superior, una cuadrícula de apps y tres botones translúcidos para Entradas, Wi-Fi y Ajustes. Fue pensado para funcionar en televisores con 1 GB de RAM, así que no tiene blur, vídeo, acceso a la red ni servicios en segundo plano.
Un detalle curioso: el propio repositorio dice que el proyecto se construyó con Claude Code, y el archivo PROMPT.md trae el prompt que pegas en un asistente de código con acceso a la terminal para que guíe la instalación en tu TV. Ese es el "vibe" del nombre.
Qué televisores funcionan
Según la documentación del proyecto, el soporte se divide así:
- Funciona: televisores con Android TV y Google TV de Xiaomi/Redmi, TCL, Hisense, Sony, OnePlus, Realme y el NVIDIA Shield. La carpeta de ejemplos enumera unos 25 modelos probados.
- Parcial: Amazon Fire TV solo recibe la parte de debloat, porque Fire OS no deja que un launcher de terceros tome el control del botón Home. Algunos firmwares de TCL para el mercado chino (Android TV 9) rechazan launchers que no estén firmados por la propia TCL.
- No funciona: Samsung (Tizen) y LG (webOS), porque no son Android.
Por Qué la Pantalla de Inicio de tu TV Se Convirtió en un Escaparate
Los anuncios en la pantalla de inicio no son nuevos. En 2019, Google confirmó un programa piloto que añadió una fila de contenido patrocinado en algunos dispositivos con Android TV, y usuarios de televisores Sony, del Mi Box 3 de Xiaomi y del NVIDIA Shield reportaron el cambio tras una actualización. En aquel momento, el soporte de Sony llegó a decir que la única forma de ocultar el canal patrocinado era crear un perfil restringido.
Desde entonces, el modelo no ha hecho más que consolidarse. Guías de marketing de 2026 describen Google TV como una red publicitaria seleccionable dentro de las campañas de vídeo de Google Ads, con unidades que aparecen en el feed de la pantalla de inicio y se reproducen sin sonido hasta que el usuario las enfoca. Es decir: la pantalla de inicio dejó de ser solo un menú y se convirtió en inventario publicitario.
Desde el punto de vista del producto, la cuenta tiene sentido para quien vende: el hardware de TV tiene márgenes ajustados, y la pantalla de inicio la ven millones de personas todos los días. Desde el punto de vista de quien la usa, el coste aparece en tiempos de carga, en el uso de memoria en dispositivos con 1 GB o 2 GB de RAM y en una sensación constante de que la TV no es del todo tuya.
De esa fricción nacen proyectos como tv-vibehack, y el hecho de que haya superado las 3 mil estrellas tan rápido muestra el tamaño de la frustración.
Cómo Funciona por Debajo: ADB por Wi-Fi
El corazón del proyecto es ADB (Android Debug Bridge), la misma herramienta que los desarrolladores Android usan para instalar apps y depurar en el móvil. En los televisores Android, cuando activas las opciones de desarrollador y la depuración, la TV empieza a escuchar conexiones ADB en la red local. En la primera conexión, muestra un diálogo pidiéndote que autorices ese ordenador.
El flujo manual para activarlo queda así en la mayoría de los televisores:
- Abre Ajustes, ve a Información y pulsa OK siete veces sobre "Compilación" para desbloquear las opciones de desarrollador.
- Activa la depuración USB (algunos televisores tienen una opción separada de depuración por red o ADB).
- Deja el ordenador en la misma red Wi-Fi que la TV.
Con eso, un comando básico de ADB ya permite hablar con la TV. Mira un ejemplo usando el adb oficial del Android SDK:
# Conecta con la TV por la red local (cambia por la IP de tu TV)
adb connect 192.168.1.50:5555
# Confirma que la TV aparece como dispositivo autorizado
adb devices
# Lista solo los paquetes del sistema, que es donde vive el bloatware
adb -s 192.168.1.50:5555 shell pm list packages -s
# Muestra qué actividad responde hoy al botón Home
adb -s 192.168.1.50:5555 shell cmd package resolve-activity \
-a android.intent.action.MAIN -c android.intent.category.HOMEUn punto interesante: tv-vibehack incluye tools/tv.py, un cliente ADB escrito en Python puro. El motivo, según el README, es que las versiones recientes de macOS pueden bloquear el binario adb de Google por la privacidad de la red local. Escribir un cliente propio elimina esa dependencia.
Debloat Reversible: Desactivar No Es Desinstalar
La decisión técnica más importante del proyecto es usar pm disable-user en lugar de pm uninstall. La diferencia parece pequeña, pero lo cambia todo:
pm uninstall --user 0elimina la app del usuario. Si la necesitas de vuelta, puede que tengas que reinstalar el APK manualmente o incluso restaurar la TV de fábrica.pm disable-user --user 0solo apaga el paquete. Sigue en el sistema y vuelve con un simplepm enable.
tv-vibehack organiza esto en listas de debloat por modelo de TV, aplicadas con tools/disable.sh y revertidas con tools/restore.sh. Puedes reproducir la misma idea con un script sencillo que registra todo antes de tocar nada:
#!/usr/bin/env bash
# Desactiva los paquetes de una lista y guarda un log para poder deshacerlo después
set -euo pipefail
TV="${TV_HOST:?defina TV_HOST com o IP da TV}:5555"
LISTA="$1" # archivo con un nombre de paquete por línea
LOG="desativados-$(date +%Y%m%d-%H%M).txt"
# Copia de seguridad completa de la lista de paquetes antes de cualquier cambio
adb -s "$TV" shell pm list packages > "backup-pacotes.txt"
while read -r pacote; do
# Ignora líneas vacías y comentarios
[[ -z "$pacote" || "$pacote" == \#* ]] && continue
if adb -s "$TV" shell pm disable-user --user 0 "$pacote" | grep -q "disabled"; then
echo "$pacote" >> "$LOG"
echo "desativado: $pacote"
else
echo "falhou (mantido como está): $pacote"
fi
done < "$LISTA"
echo "Pronto. Para desfazer: ./restaurar.sh $LOG"Y el camino de vuelta, que es lo que da seguridad para experimentar:
#!/usr/bin/env bash
# Reactiva todos los paquetes registrados en el log generado por el script anterior
set -euo pipefail
TV="${TV_HOST:?defina TV_HOST com o IP da TV}:5555"
while read -r pacote; do
adb -s "$TV" shell pm enable "$pacote" && echo "reativado: $pacote"
done < "$1"Este patrón (copia de seguridad, cambio registrado, reversión en un solo comando) es el mismo que usarías en una migración de base de datos. La TV no es más que un pequeño servidor en tu salón.
El riesgo que nadie cuenta: el bucle de la pantalla de inicio
El README del proyecto es honesto sobre lo que puede salir mal, y vale la pena leerlo antes de intentarlo. El caso más serio: si desactivas el launcher original sin ocuparte del asistente de configuración inicial, algunos dispositivos con Google TV entran en un bucle de bloqueo de la pantalla Home. En los modelos MiTV-MOOR2 y MZTU0, la solución documentada es desactivar también el paquete com.google.android.tungsten.setupwraith, que es el asistente del primer uso e intenta traer de vuelta el launcher por defecto. Usuarios en foros reportan el mismo comportamiento en televisores TCL.
Otras advertencias que enumera el proyecto:
- Una unidad de Hisense entró en el modo de recuperación de Android hasta que alguien eligió "Try again".
- En el Xiaomi Mi Box S, dejar la depuración USB activada puede cortar la alimentación de los puertos USB. Desactívala cuando termines.
- La mayoría de las listas desactiva el servicio de actualización del fabricante, así que las actualizaciones tienen que reactivarse a propósito.
- Una TV con Google TV 14 perdió el Wi-Fi tras la instalación por el mismo problema del setupwraith.
Una regla práctica: reactiva el setupwraith antes de cualquier restauración de fábrica, y nunca desactives el launcher original antes de confirmar que el nuevo responde al botón Home.
El Launcher: Cómo una App Se Convierte en la Pantalla de Inicio
Para Android, la pantalla de inicio es solo una Activity que declara un filtro de intent específico. Cuando pulsas Home en el mando, el sistema busca quién responde a la categoría HOME. En los televisores, la categoría LEANBACK_LAUNCHER también cuenta, porque es la que hace que la app aparezca en la lista de aplicaciones.
Un manifiesto mínimo de launcher para TV queda así:
<!-- AndroidManifest.xml: declara la Activity como pantalla de inicio de TV -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.exemplo.minhahome">
<!-- Indica al sistema que la app está hecha para TV y no requiere pantalla táctil -->
<uses-feature android:name="android.software.leanback" android:required="true" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<application android:label="Minha Home" android:banner="@drawable/banner">
<activity
android:name=".HomeActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!-- HOME: responde al botón Home del mando -->
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<!-- LEANBACK_LAUNCHER: aparece en la cuadrícula de apps de la TV -->
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>Después de instalar el APK, puedes definir el nuevo launcher como predeterminado desde el propio ADB:
# Instala el launcher y lo define como actividad Home predeterminada
adb -s 192.168.1.50:5555 install minhahome.apk
adb -s 192.168.1.50:5555 shell cmd package set-home-activity \
com.exemplo.minhahome/.HomeActivityPrecisamente por eso el Fire TV solo tiene soporte parcial: Fire OS ignora otros launchers en el botón Home. Y por eso algunos firmwares de TCL rechazan el APK: el fabricante empezó a exigir su propia firma para apps con la categoría HOME.
tv-vibehack, por cierto, no publica APKs listos. Compilas el launcher en tu máquina (con JDK 17 y Android SDK plataforma 34) y lo instalas directamente en la TV. Eso reduce el riesgo de que alguien distribuya un APK manipulado con el nombre del proyecto.
Qué Enseña Esto a Quien Hace Producto
Aunque nunca vayas a tocar tu TV, tv-vibehack es un buen caso de estudio sobre producto digital.
1. El usuario se da cuenta cuando la interfaz trabaja en su contra. Nadie instala un proyecto de GitHub y activa el modo desarrollador en la TV por diversión. Las más de 3 mil estrellas y 370 forks de un repositorio nuevo miden la frustración acumulada con la pantalla de inicio por defecto.
2. La reversibilidad vende confianza. El argumento central del proyecto no es "lo elimina todo", es "nada se desinstala, todo vuelve". En cualquier producto, un botón de deshacer bien hecho reduce el miedo a experimentar. Lo mismo vale para feature flags, migraciones y configuraciones de usuario.
3. La ligereza es una funcionalidad. Un launcher de 250 KB, sin servicios en segundo plano, funciona mejor en una TV de 1 GB de RAM que el launcher oficial lleno de vídeos. Muchas veces la función más pedida es la ausencia de funciones.
4. La IA se convirtió en interfaz de instalación. En lugar de un asistente gráfico, el proyecto entrega un prompt para que un agente de código guíe el proceso, pregunte el modelo de la TV y aplique la lista correcta. Es una forma nueva de distribuir herramientas técnicas para quien no quiere memorizar comandos. Hablé de otro lado de esta relación con los asistentes en el post sobre lo que un caso en Florida enseña sobre privacidad en la IA.
Este movimiento de "déjame apagar lo que no pedí" también aparece en los navegadores, como mostré en el artículo sobre el botón de Firefox para desactivar la IA y proteger la privacidad.
¿Vale la Pena Hacerlo en tu TV?
Depende de cuánto riesgo aceptes. Una lista de comprobación honesta antes de empezar:
- ¿Tu TV está en la lista de modelos probados? Si es así, la probabilidad de éxito es bastante mayor, porque alguien ya validó la lista de debloat.
- ¿Te sientes cómodo con la terminal? El camino con un asistente de IA ayuda, pero si algo se bloquea, vas a necesitar entender lo que se está ejecutando.
- ¿Tienes un plan B? Aprende a entrar en el modo de recuperación de tu modelo antes de empezar.
- ¿Usas AirPlay o duplicación de apps con DRM? El launcher no ofrece AirPlay nativo, y apps como Netflix y Apple TV+ no se duplican.
- ¿Te vas a acordar de reactivar las actualizaciones? Tener las actualizaciones de seguridad apagadas durante meses es un problema real en una TV conectada a tu red.
Si la respuesta es sí a casi todo, la ganancia es una TV más rápida, sin filas patrocinadas y con menos telemetría. Si es no, una alternativa más conservadora es solo cambiar el launcher por defecto por otro de la tienda, sin desactivar paquetes del sistema.
Perspectivas: La Pelea por la Pantalla de Inicio Apenas Comienza
La pantalla de inicio de los televisores se convirtió en uno de los espacios publicitarios más disputados de la casa, y no hay señales de que fabricantes o plataformas vayan a dar marcha atrás. Al mismo tiempo, herramientas como tv-vibehack muestran que, mientras Android TV permita ADB por la red y launchers de terceros, el usuario técnico seguirá teniendo una salida.
El riesgo para el futuro es el camino que TCL y Amazon ya tomaron: exigir la firma del fabricante para los launchers o bloquear el cambio del botón Home. Si eso se extiende, proyectos como este quedarán limitados al debloat. Para quien desarrolla producto, la lección queda clara: cuando el usuario empieza a instalar herramientas para apagar partes de tu producto, el problema no está en el usuario.
¡Vamos con todo! 🦅
📚 ¿Quieres Seguir lo Que Viene Por Delante?
Este artículo cubrió cómo tv-vibehack elimina los anuncios de Android TV con ADB y un launcher ligero, pero el ecosistema cambia cada semana y no todo se convierte en artículo aquí.
En X comparto lo que estoy probando, los bastidores de los proyectos y las novedades que aparecen antes de convertirse en post.
Sígueme Allá
💡 Contenido diario sobre desarrollo, carrera y las herramientas que realmente uso

