debloat_firetv.md
Fire TV Debloat: guía práctica para Fire TV Stick con ADB
Antes y después
| Antes: launcher original de Fire TV | Después: Projectivy Launcher |
|---|---|
Experiencia en tres equipos reales · Pruebas del 21–22 de octubre de 2026 · Guía revisada el 23 de octubre de 2026
Esta guía explica cómo quitar aplicaciones que no utilizas, simplificar el inicio y configurar un bloqueo selectivo de red. Incluye lo que funcionó, los comandos que Fire OS rechazó y cómo recuperar la configuración.
Créditos
El punto de partida fue la guía de JLCareglio sobre personalización de Fire TV mediante ADB. Gracias a su autor por reunir el procedimiento inicial. Este documento recoge las adaptaciones y resultados de nuestras pruebas; las correcciones y conclusiones aquí expuestas corresponden a esta revisión.
Las herramientas utilizadas son Projectivy Launcher, de spocky y NetGuard, de Marcel Bokhorst/M66B.
1. En qué equipos se probó
Se trabajó con tres unidades Fire TV Stick, todas con identificador AFTSS, dispositivo sheldon y Android 9/API 28.
| Unidad | Fire OS / compilación | Resultado después de reiniciar |
|---|---|---|
| A | 7.7.1.7 / PS7717.5741N | Projectivy y NetGuard arrancaron. En una prueba posterior de limpieza, Troubleshooting volvió a habilitarse. |
| B | 7.7.1.7 / PS7717.5741N | Projectivy y NetGuard arrancaron. Music volvió a habilitarse y hubo que desactivarla otra vez. |
| C | 7.7.1.6 / PS7716.5666N | Projectivy, NetGuard y las 13 aplicaciones de Amazon desactivadas conservaron su estado en el reinicio comprobado. |
En la unidad A, el menú de información mostraba Fire TV Stick HD, primera generación. Para las otras dos se conservó la identificación técnica. Amazon asigna AFTSS tanto al Stick HD de 2024 como al Stick Lite de 2020; ese código por sí solo no identifica de forma única la versión comercial. Consulta la tabla oficial de identificación de Amazon.
Alcance de estas pruebas: Fire OS 7 en esos equipos. No se verificó este procedimiento en Stick 4K, 4K Max, Cube, televisores integrados, Fire OS 8 ni dispositivos con Vega OS.
Versiones usadas: Projectivy 4.72 y NetGuard 2.337. Otras versiones pueden cambiar los menús o el comportamiento.
Qué se consiguió
- Un inicio con las aplicaciones elegidas por el propietario.
- Desinstalación de aplicaciones de usuario y desactivación de aplicaciones opcionales de Amazon.
- Projectivy y la VPN local de NetGuard activos después del reinicio comprobado en cada unidad.
- Aproximadamente 1.7 GB y 1.5 GB recuperados en las dos limpiezas más amplias. También se retiraron numerosas apps de terceros: esas cifras no corresponden únicamente a quitar apps de Amazon.
No se midieron mejoras de velocidad, RAM o consumo. La comprobación de apps cubrió su apertura, no una prueba completa de reproducción. Tampoco se demostró que el procedimiento elimine todos los bloqueos de instalación de APK o impida permanentemente cualquier actualización.
2. Preparar ADB y guardar el estado inicial
Necesitas un ordenador, el Fire TV en la misma red y Android SDK Platform-Tools. Los comandos siguientes suponen que adb está disponible en la terminal; en PowerShell puedes usar ./adb.exe desde su carpeta.
En el Fire TV:
- Abre Configuración → Mi Fire TV → Acerca de / Información.
- Si no aparecen las opciones de desarrollador, pulsa siete veces sobre el nombre del dispositivo.
- Activa Opciones para desarrolladores → Depuración ADB.
- Consulta la IP en Acerca de / Información → Red.
Estas rutas pueden variar. Amazon documenta la conexión de Fire TV mediante ADB.
En todos los ejemplos, sustituye IP_DEL_FIRE_TV por la dirección de tu aparato. Mantén -s IP_DEL_FIRE_TV:5555 para evitar actuar sobre otro equipo conectado.
adb connect IP_DEL_FIRE_TV:5555 adb devices -l
Acepta el aviso de depuración en la televisión. Si aparece unauthorized, falta esa autorización; si figura offline, espera a que termine de arrancar y vuelve a conectar.
Comprueba la identidad y el espacio inicial:
adb -s IP_DEL_FIRE_TV:5555 shell getprop ro.product.model adb -s IP_DEL_FIRE_TV:5555 shell getprop ro.product.device adb -s IP_DEL_FIRE_TV:5555 shell getprop ro.build.display.id adb -s IP_DEL_FIRE_TV:5555 shell getprop ro.build.version.sdk adb -s IP_DEL_FIRE_TV:5555 shell df -h /data
Guarda estos archivos en el ordenador, dentro de una carpeta propia para ese aparato:
adb -s IP_DEL_FIRE_TV:5555 shell pm list packages -f > paquetes-antes.txt adb -s IP_DEL_FIRE_TV:5555 shell pm list packages -d > desactivadas-antes.txt adb -s IP_DEL_FIRE_TV:5555 shell settings get secure enabled_accessibility_services > accesibilidad-antes.txt adb -s IP_DEL_FIRE_TV:5555 shell settings get secure accessibility_enabled > accesibilidad-estado-antes.txt adb -s IP_DEL_FIRE_TV:5555 shell settings get secure always_on_vpn_app > vpn-antes.txt adb -s IP_DEL_FIRE_TV:5555 shell dumpsys deviceidle whitelist > bateria-antes.txt
Es un inventario y una referencia para revertir ajustes, no un respaldo de sesiones, contraseñas o datos privados de las apps. Decide qué aplicaciones vas a conservar antes de desinstalar: podrías necesitar volver a iniciar sesión al reinstalarlas. Guarda estos archivos localmente; no hace falta publicarlos.
3. Instalar y configurar Projectivy
Descarga la APK desde las releases oficiales de Projectivy. La versión usada en estas pruebas fue 4.72. En los ejemplos, el archivo descargado se llama Projectivy.apk.
adb -s IP_DEL_FIRE_TV:5555 install -r Projectivy.apk adb -s IP_DEL_FIRE_TV:5555 shell am start -W -n com.spocky.projengmenu/.ui.home.MainActivity
Completa el asistente en la televisión. Las notificaciones y estadísticas opcionales pueden dejarse desactivadas; así se hizo en las pruebas más recientes.
Accesibilidad sin borrar servicios que ya utilizas
Primero consulta accesibilidad-antes.txt. Un comando que sobrescriba toda esa lista puede desactivar otros servicios de accesibilidad.
Para añadir Projectivy conservando los existentes, entra en la consola del Fire TV:
adb -s IP_DEL_FIRE_TV:5555 shell
Pega este bloque dentro de esa consola. Sus variables existen solo durante esta conexión:
svc_actuales=$(settings get secure enabled_accessibility_services)
svc_projectivy='com.spocky.projengmenu/.services.ProjectivyAccessibilityService'
case "$svc_actuales" in
''|null) svc_actuales="$svc_projectivy" ;;
*)
case ":$svc_actuales:" in
*":$svc_projectivy:"*) ;;
*) svc_actuales="$svc_actuales:$svc_projectivy" ;;
esac
;;
esac
settings put secure enabled_accessibility_services "$svc_actuales"
settings put secure accessibility_enabled 1
exitDe vuelta en la terminal del ordenador, estos ajustes formaron parte de la configuración que funcionó:
adb -s IP_DEL_FIRE_TV:5555 shell appops set com.spocky.projengmenu SYSTEM_ALERT_WINDOW allow adb -s IP_DEL_FIRE_TV:5555 shell appops set com.spocky.projengmenu GET_USAGE_STATS allow adb -s IP_DEL_FIRE_TV:5555 shell dumpsys deviceidle whitelist +com.spocky.projengmenu adb -s IP_DEL_FIRE_TV:5555 shell dumpsys accessibility
En el último resultado debe aparecer el servicio de Projectivy activo. Estos ajustes se probaron en conjunto; no se aisló cuáles eran indispensables en cada aparato. Si una versión rechaza una operación, conserva el error y comprueba el funcionamiento antes de añadir más permisos.
En Ajustes de Projectivy → General, activa Reemplazar el launcher actual. Pulsa Inicio y espera unos ocho segundos: en nuestras pruebas Amazon aparecía primero y Projectivy llegaba unos cinco segundos después. El desarrollador describe ese retardo en la incidencia 338 de Projectivy.
Por qué Inicio sigue pasando por el launcher de Amazon
Con este procedimiento no conseguimos sustituir por completo el launcher del sistema en los Fire TV probados. El mando sí tiene botón Inicio (Home), pero Amazon lo documenta sin un KeyEvent disponible para las aplicaciones: es un evento del sistema que vuelve a la pantalla de inicio y no se puede interceptar como una tecla normal. Consulta la referencia oficial de los botones del mando.
En nuestras pruebas, Fire OS seguía abriendo el launcher de Amazon al pulsar Inicio y el servicio de accesibilidad de Projectivy llevaba después a su propia pantalla. Por eso podía verse el inicio original durante unos cinco segundos. La opción Reemplazar el launcher actual ofrece esa redirección; no demuestra que Projectivy haya pasado a ser el launcher del sistema. Incluso set-home-activity devolvió Success sin cambiar el launcher que resolvía HOME en las pruebas realizadas.
Conserva el launcher de Amazon (com.amazon.tv.launcher). Sigue siendo una vía para funciones y ajustes del sistema. Esta conclusión describe el método y las versiones probadas; no establece que todos los Fire TV y todas las versiones de Fire OS tengan exactamente las mismas limitaciones.
4. Elegir qué aplicaciones retirar
Hay tres operaciones diferentes:
| Operación | Efecto |
|---|---|
| Ocultar en Projectivy | Quita el acceso del menú; no desinstala ni impide ejecutar la app. |
| Desactivar con ADB | Inhabilita el paquete para el usuario. Conserva sus archivos y normalmente sus datos. |
| Desinstalar para el usuario | Retira la instalación para ese usuario; puede borrar datos. En apps de sistema, el APK de fábrica puede seguir existiendo. |
Consulta primero:
adb -s IP_DEL_FIRE_TV:5555 shell pm list packages -3 adb -s IP_DEL_FIRE_TV:5555 shell pm list packages -s
La lista -3 no es una lista de basura: contiene aplicaciones instaladas por el usuario. Conserva las que utilices y revisa cada nombre de paquete.
Aplicaciones opcionales que se probaron
La siguiente tabla es un catálogo de candidatas, no una lista para borrar completa. Retirar una elimina o desactiva su función: por ejemplo, conserva Photos si ves tus fotos allí, Silk si necesitas navegar o Prime Video si lo utilizas.
| Aplicación | Paquete |
|---|---|
| Amazon Music | com.amazon.bueller.music |
| Amazon Live Shopping | com.amazon.shoptv.firetv.client |
| Compras de Amazon | com.amazon.shoptv.client |
| Amazon Kids / FreeTime | com.amazon.tahoe |
| Amazon miniTV | com.amazon.minitv.android.app |
| Amazon Photos | com.amazon.bueller.photos |
| FireTV Troubleshooting | com.amazon.firetv.troubleshooting |
| News | com.amazon.hedwig |
| Music & More | com.amazon.audiohome |
| Amazon Game Center | com.amazon.gamehub |
| Amazon Luna | com.amazon.spiderpork |
| Prime Video | com.amazon.firebat |
| Navegador Silk | com.amazon.cloud9 |
Comprueba que el paquete existe en tu equipo y que corresponde a la app que quieres retirar. En los comandos siguientes, sustituye NOMBRE_DEL_PAQUETE por una sola aplicación elegida.
Para probar primero la desactivación reversible:
adb -s IP_DEL_FIRE_TV:5555 shell pm disable-user --user 0 NOMBRE_DEL_PAQUETE adb -s IP_DEL_FIRE_TV:5555 shell pm list packages -d
El resultado esperado es disabled-user y la presencia del paquete en la lista de desactivadas. Desactivar no libera el espacio del APK de sistema.
Si decides desinstalarla para el usuario principal, asumiendo la pérdida de sus datos:
adb -s IP_DEL_FIRE_TV:5555 shell pm uninstall --user 0 NOMBRE_DEL_PAQUETE adb -s IP_DEL_FIRE_TV:5555 shell pm list packages NOMBRE_DEL_PAQUETE adb -s IP_DEL_FIRE_TV:5555 shell dumpsys package NOMBRE_DEL_PAQUETE
pm list packages filtra por coincidencia de texto; busca el nombre exacto. En dumpsys, revisa la sección User 0, especialmente installed y enabled.
No des por hecho que Success equivale a eliminación completa. En algunas apps actualizadas de Amazon, tras desinstalar seguía existiendo una versión de fábrica o el paquete volvía a estar presente. Cuando ocurrió, se desactivó ese paquete y se comprobó de nuevo.
En las dos limpiezas amplias, Live Shopping, miniTV, Troubleshooting, News y Music & More rechazaron la desinstalación con DELETE_FAILED_INTERNAL_ERROR. La alternativa que funcionó fue desactivarlas, con las excepciones de persistencia descritas al principio.
Componentes que hay que conservar
Esta experiencia no validó retirar Ajustes, entrada del mando, red, Bluetooth, instalador, proveedores de datos o WebView. Conserva, entre otros:
com.amazon.tv.launcher,com.amazon.tv.settings.v2,com.amazon.device.settings.com.amazon.fireinputdevices,com.android.providers.settings.com.android.packageinstaller,com.android.systemui,com.android.bluetooth.com.amazon.webview.chromiumy los servicios de conectividad y reproducción.
Esta lista tampoco cubre todos los componentes esenciales. Si no sabes qué hace un paquete, conserva su estado hasta identificarlo. Un nombre que incluya amazon no basta para decidir que es prescindible.
5. Dejar un inicio sencillo
En Projectivy → Ajustes → Editar categorías, cambia Visible para las categorías que quieras ocultar. En nuestras pruebas se ocultaron Aplicaciones Móviles y varias filas de herramientas, dejando una fila con las apps elegidas y el engranaje de Ajustes.
Comprueba dónde está cada aplicación antes de ocultar su categoría: una app para móviles puede estar en Aplicaciones Móviles. También puedes usar las opciones de Projectivy para ocultar accesos concretos. Esto permite limpiar el menú cuando Fire OS impide retirar un paquete.
6. NetGuard: bloqueo de red opcional
Este paso sirve para controlar la red de paquetes concretos. Bloquear las actualizaciones del sistema también puede impedir recibir correcciones de seguridad. Decide si quieres ese comportamiento.
NetGuard utiliza una VPN local para filtrar tráfico. No envía por ello tus datos a un servidor VPN remoto. Android permite una sola app usando ese servicio VPN a la vez, por lo que otra VPN puede sustituir a NetGuard. Su documentación también advierte de intervalos sin filtrado al principio del arranque; que la VPN aparezca conectada después no demuestra que haya filtrado desde el primer instante. Consulta la documentación del proyecto.
Descarga desde las releases oficiales de NetGuard. Se probó 2.337; en el ejemplo el archivo se llama NetGuard.apk.
adb -s IP_DEL_FIRE_TV:5555 install -r NetGuard.apk adb -s IP_DEL_FIRE_TV:5555 shell dumpsys deviceidle whitelist +eu.faircode.netguard adb -s IP_DEL_FIRE_TV:5555 shell am start -W -n eu.faircode.netguard/.ActivityMain
En NetGuard:
- Completa el aviso inicial.
- En Valores predeterminados, deja desactivado el bloqueo general de Wi-Fi y red móvil: las apps tendrán acceso salvo las que bloquees expresamente.
- En Opciones avanzadas, activa Administrar aplicaciones de sistema.
- Busca cada paquete por su nombre exacto y marca sus controles de bloqueo de Wi-Fi y red móvil.
| Actualizador | Paquete |
|---|---|
| OTA del sistema | com.amazon.device.software.ota |
| Complemento OTA | com.amazon.device.software.ota.override |
| EasyUpgrade | com.amazon.tv.easyupgrade |
| Actualizador forzoso | com.amazon.tv.forcedotaupdater.v2 |
Los dos paquetes OTA compartían UID en nuestros equipos: cambiar la regla de uno modificaba la del otro. Verifica el estado antes de pulsar el segundo para no deshacer el bloqueo. Los UID variaban entre aparatos; selecciona paquetes por nombre, no copies números de otra unidad.
También se aplicaron reglas a com.amazon.adep y com.amazon.securitysyncclient, siguiendo la propuesta original. No se comprobó que esas reglas desbloqueen APK ni se aisló su efecto. Trátalas como una opción experimental, registra su estado y revierte si afecta funciones que utilizas. Conserva el acceso a la tienda si necesitas descargar o actualizar aplicaciones.
- Activa el interruptor principal de NetGuard y acepta la solicitud de VPN local.
- En los equipos probados se configuró la persistencia con:
adb -s IP_DEL_FIRE_TV:5555 shell settings put secure always_on_vpn_app eu.faircode.netguard adb -s IP_DEL_FIRE_TV:5555 shell settings get secure always_on_vpn_app adb -s IP_DEL_FIRE_TV:5555 shell dumpsys connectivity
Si ya utilizabas una VPN siempre activa, este ajuste la sustituye: conserva su valor anterior y decide cuál vas a utilizar. Es un ajuste de sistema probado en estas versiones, no una garantía para todas las versiones de Fire OS.
Busca una red VPN en estado CONNECTED/CONNECTED. Con el modo selectivo usado aquí, la salida mostraba los UID bloqueados y EstablishingAppUid de NetGuard. Comprueba sus identidades con pm list packages -U o dumpsys package.
Límite de la comprobación: se verificaron las reglas, la VPN y su regreso después de reiniciar. La búsqueda de actualizaciones llegó a quedarse en «Revisando…» sin resultado definitivo. No se demostró que fuera imposible descargar cualquier actualización futura, ni que desaparecieran actualizaciones descargadas previamente, ni la recuperación tras cualquier cierre del proceso.
7. Reiniciar y verificar de verdad
Antes de reiniciar, confirma que funcionan Inicio, Ajustes y las apps que conservaste. Si Fire OS indica una actualización ya pendiente de instalar, el firewall no garantiza impedir que se aplique al reiniciar.
adb -s IP_DEL_FIRE_TV:5555 reboot
Espera el arranque y vuelve a conectar:
adb connect IP_DEL_FIRE_TV:5555 adb -s IP_DEL_FIRE_TV:5555 shell getprop sys.boot_completed adb -s IP_DEL_FIRE_TV:5555 shell getprop ro.build.display.id adb -s IP_DEL_FIRE_TV:5555 shell pm list packages -d adb -s IP_DEL_FIRE_TV:5555 shell settings get secure enabled_accessibility_services adb -s IP_DEL_FIRE_TV:5555 shell settings get secure always_on_vpn_app adb -s IP_DEL_FIRE_TV:5555 shell dumpsys accessibility adb -s IP_DEL_FIRE_TV:5555 shell dumpsys connectivity adb -s IP_DEL_FIRE_TV:5555 shell df -h /data
sys.boot_completed debe devolver 1. Comprueba en la televisión:
- Projectivy se abre y el botón Inicio vuelve a él después del retardo.
- Ajustes, mando y Wi-Fi siguen funcionando.
- Las apps conservadas abren; reproduce algo para comprobar también audio y video.
- Las apps desactivadas mantienen su estado y NetGuard vuelve a estar conectado, si lo configuraste.
Si una app reaparece: anota paquete y versión, comprueba si sigue instalada o se ha rehabilitado y decide entre volver a desactivarla u ocultar su acceso. Nos ocurrió con Music y Troubleshooting. Un solo reinicio correcto no garantiza que nunca reaparezca.
8. Cómo volver atrás
Aplicaciones
Para habilitar una app desactivada:
adb -s IP_DEL_FIRE_TV:5555 shell pm enable --user 0 NOMBRE_DEL_PAQUETE
Si se retiró para el usuario pero el paquete todavía existe en el sistema:
adb -s IP_DEL_FIRE_TV:5555 shell cmd package install-existing --user 0 NOMBRE_DEL_PAQUETE adb -s IP_DEL_FIRE_TV:5555 shell pm enable --user 0 NOMBRE_DEL_PAQUETE
Si responde que el paquete no existe, reinstálalo desde su fuente oficial. Estos comandos no recuperan datos que ya se hayan borrado. La documentación de ADB y Package Manager describe las operaciones de gestión de paquetes; las restricciones de Amazon se añaden sobre ellas.
Projectivy
Desactiva Reemplazar el launcher actual desde Projectivy y comprueba Inicio. Si quieres retirar también su accesibilidad, devuelve enabled_accessibility_services y accessibility_enabled a los valores que guardaste, conservando cualquier servicio que hayas añadido después.
Cuando no había servicios previos y no has añadido otros, puedes eliminar la entrada de Projectivy y devolver accessibility_enabled a su valor inicial. No borres toda la lista de accesibilidad en otro caso. Las exclusiones de batería añadidas pueden retirarse con dumpsys deviceidle whitelist -com.spocky.projengmenu, salvo que ya existieran antes.
NetGuard
Apaga el interruptor de NetGuard. Si no tenías una VPN siempre activa antes de esta guía, elimina la selección que acabas de añadir:
adb -s IP_DEL_FIRE_TV:5555 shell settings delete secure always_on_vpn_app adb -s IP_DEL_FIRE_TV:5555 shell dumpsys deviceidle whitelist -eu.faircode.netguard
Si existía otra VPN o una exclusión anterior, restaura esos valores y su configuración. Si el servicio vuelve a iniciarse al apagarlo, elimina primero la selección de VPN siempre activa y vuelve a apagarlo. Comprueba el resultado en Ajustes y dumpsys connectivity.
El restablecimiento de fábrica borra datos y exige configurar de nuevo el dispositivo; no es una reversión sin pérdidas.
9. Correcciones y alternativas comprobadas
| Punto revisado | Resultado de nuestras pruebas |
|---|---|
Alternativa adicional probada: set-home-activity | Devolvió Success, pero Amazon siguió resolviendo HOME. Funcionó el reemplazo por accesibilidad. Este comando fue una exploración propia. |
always_on_vpn_app en global | Se utilizó secure y se comprobó la VPN después de reiniciar. |
| Desactivar o borrar datos del actualizador OTA | Fire OS rechazó ambas operaciones por tratarse de un paquete protegido. |
| Usar el servicio de accesibilidad como listener de notificaciones | Son servicios distintos. No se necesitó conceder acceso a notificaciones para el resultado descrito. |
| Otorgar permisos sin revisar la versión | Las declaraciones cambian. No se deben conceder permisos que la app no solicita; por ejemplo, la versión examinada no declaraba WRITE_EXTERNAL_STORAGE. |
| Limpieza masiva y eliminación de apps personales | Se revisaron paquetes individualmente; no se validó desactivar Ajustes, entrada, red o WebView. |
El resultado más reproducible fue una interfaz más sencilla y menos aplicaciones instaladas o habilitadas. El bloqueo de actualizaciones y la persistencia de las desactivaciones deben comprobarse en cada aparato y versión.
Compartir resultados de otros equipos
Si pruebas el procedimiento, comparte modelo técnico, versión de Fire OS, versiones de las herramientas y qué se mantuvo tras reiniciar. Para un comando que falle, incluye su error exacto. Evita publicar números de serie, cuentas, IP de tu red, claves o inventarios completos con datos personales.