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:

  1. Abre Configuración → Mi Fire TV → Acerca de / Información.
  2. Si no aparecen las opciones de desarrollador, pulsa siete veces sobre el nombre del dispositivo.
  3. Activa Opciones para desarrolladores → Depuración ADB.
  4. 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
exit

De 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.chromium y 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:

  1. Completa el aviso inicial.
  2. 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.
  3. En Opciones avanzadas, activa Administrar aplicaciones de sistema.
  4. 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.

  1. Activa el interruptor principal de NetGuard y acepta la solicitud de VPN local.
  2. 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.

参与讨论