stuntech.dev

Notas · · actualizada

Revivir tu tele con tu propio skin.

Las teles "inteligentes" envejecen mal: el inicio de fábrica se llena de anuncios y recomendaciones, y se come la memoria que necesitan las apps. La salida es cambiarle el inicio por uno propio y ligero, que abra directo las plataformas, las entradas HDMI y los ajustes. Nada más.

Inicio propio en Android TV: ocho plataformas de streaming en una cuadrícula
Inicio propio en Android TV

El skin es tuyo

No es un sistema nuevo: es la app que hace de inicio. Las apps, las cuentas, la tienda y el casting siguen siendo los de la tele. Lo que cambia es lo que ves al prenderla, y eso puede ser lo que quieras:

Nosotros usamos nuestra propia UI ligera, llamada GVos. Sacrificamos diseños elaborados, wallpapers y transiciones a cambio de estar viendo contenido en segundos.

Dónde corre hoy

Los números

Medidos en los equipos de casa, con el inicio de fábrica y después. En MiB.

LG webOS 5

Memoria libre más del doble

De fábrica194.7
Skin propio418.7

Memoria del inicio 62 % menos

De fábrica116.9
Skin propio44.6

Mediana de cinco muestras, después de reiniciar.

LG webOS 6

Memoria libre +110 MiB

De fábrica320.6
Skin propio430.8

Memoria del inicio 68 % menos

De fábrica155.7
Skin propio50.4

Cinco muestras por estado, mismas apps. El inicio de LG sigue precargado aparte.

Android TV

Memoria libre +108 MiB, aun con cuatro apps abiertas

De fábrica732.7
Skin propio841.1

Memoria del inicio 6.3 veces menos

De fábrica152.1
Skin propio24.0

Lecturas únicas por ADB.

Fire TV Stick

Memoria libre +51 MiB

De fábrica349.6
Una sola app400.3

Memoria del inicio de Amazon la mitad; no se puede quitar

De fábrica100.0
Una sola app49.4

Lecturas únicas, con pantallas distintas al frente.

Google TV Streamer

Memoria libre +492 MiB

De fábrica1598.2
Skin propio2090.4

Memoria del inicio de Google 5.3 veces menos

De fábrica223.7
Skin propio42.4

Lecturas únicas por ADB. El después, a los 2 min de reiniciar; el antes, a los 11.

Qué cambia al usarla

Lo que aprendimos, sistema por sistema

Todo esto se hizo con agentes de código trabajando sobre las teles reales. Lo que anotaron en el camino:

ListoLG webOS

Inicio propio en una LG con webOS: plataformas de streaming y acceso a entradas
El mismo diseño en LG webOS
  1. Skin, Home y root son capas distintas. El skin se diseña y se prueba como una app normal, sin root. Que la tele encienda en él y que Home lo abra sí necesitó root (Homebrew Channel).

  2. webOS 5 y webOS 6 no se parecen. En una, el inicio se cambia con una preferencia del sistema. En la otra esa preferencia no existe y hubo que redirigir la ruta que abre el inicio de LG. Lo que sirvió en una tele no se copia a la otra.

  3. La LG trae un navegador viejo. Su motor es Chromium 68. Un menú hecho con CSS moderno (inset: 0) quedó fuera de la pantalla y parecía que la tele se había congelado. Se diseña para el motor real, no para el de tu computadora.

  4. "Terminó bien" no es "funcionó". Un comando puede salir sin error y no haber hecho nada: hay que leer la respuesta real. Y Ajustes se abre encima del inicio, así que si sólo preguntas qué app está al frente, parece que no abrió.

  5. El hash correcto de los bytes equivocados. Al respaldar la memoria de la tele, el lector de 32 bits repetía el principio del disco al pasar de 2 GiB. El hash coincidía en los dos lados porque ambos recibían los mismos bytes equivocados. Hay que comprobar que de verdad se leen las posiciones altas.

  6. Root no frena las actualizaciones. Se apagan aparte: la opción automática y los servidores de actualización de LG. Si no, una actualización puede deshacer todo.

ListoAndroid TV

Segunda página del inicio en Android TV: TV en vivo, HDMI 1 a 4, Play Store y USB
Segunda página: TV en vivo y entradas HDMI
  1. No hace falta root. El inicio es una preferencia del sistema: se instala la app y se fija como Home por ADB. Pero hay que comprobar que de verdad cambió: algunos Google TV responden "Success" sin cambiar nada.

  2. El inicio de Google tiene un suplente. Al apagarlo, su asistente de configuración se queda con el botón Home. Se apagan juntos, y al final.

  3. Cuidado con el Wi-Fi. Si la red se guardó durante la primera configuración, le pertenece a ese asistente: al apagarlo, la tele olvida la red y te quedas sin conexión. Hay que volver a unirla desde Ajustes antes.

  4. No todo lo que parece basura lo es. Hay paquetes que atienden el botón Input, el Bluetooth del control o Chromecast. Y las apps de fábrica no se abren nunca: algunas activan un modo difícil de revertir.

  5. El firmware revive lo que apagaste. El asistente de voz volvió solo después de reiniciar. Hay que comparar la lista de paquetes apagados después de cada reinicio.

  6. Una cuadrícula vacía no siempre es un error. Desde Android 11 la app tiene que declarar qué apps quiere ver; sin eso, la lista sale vacía y nada avisa.

  7. Medir sin engañarse. Forzar la compilación de las apps no mejoró de forma pareja: unas abrieron más rápido y otras más lento. Lo que sí se nota es volver a una app que sigue en memoria: entre 0.1 y 0.5 segundos.

Una sola appFire TV Stick

Al encender el Fire TV Stick: encender, 1.2 segundos de inicio de Amazon y luego directo a la app
Fire TV Stick 4K (2018), Fire OS 6.7, sin root
  1. Si no puedes quitar el inicio, sal de él. Una app sin interfaz vigila cuándo el inicio de Amazon toma el foco y abre la app al instante. Ajustes y el menú de mantener Home no disparan el salto.

  2. El registro del sistema sí se puede leer. Con el permiso de leer el registro concedido por ADB, la app sabe qué pantalla está al frente. Fue la única puerta abierta: la accesibilidad de terceros está cerrada.

  3. El aviso de "ya encendí" llega tarde. El aviso normal llegó 27 segundos después del arranque. Escuchando el más temprano, el que llega antes de desbloquear, el inicio de Amazon se ve sólo 1.2 segundos.

  4. Home retiene las aperturas 5 segundos. Después de Home, Android detiene las aperturas de apps normales; sólo una app del sistema se lo salta. Esos 5 segundos no se pueden quitar sin root.

  5. Un coordinador que parecía basura no lo era. Al apagarlo, la app del celular dejó de encontrar el Fire Stick y el control de la tele dejó de funcionar. Se volvió a prender; el casting también se queda.

  6. Espera antes de reiniciar. El sistema respondió "enabled", pero con un reinicio inmediato el paquete seguía apagado: Android guarda el estado unos segundos después. Con 20 segundos de espera, sí quedó.

  7. Cuidado con el sandbox del agente. Si ADB arranca dentro del sandbox, la conexión a la tele falla con "No route to host" aunque el puerto responda. Hay que iniciarlo fuera.

ListoGoogle TV Streamer 4K

  1. El inicio sólo cambia apagando el asistente de configuración. Fijar otro Home responde "Success" y no cambia nada. Se apagan el asistente, el inicio de Google y su protector, en ese orden. Y nunca oprimas Home con el asistente activo: su pantalla de recuperación tumba el sistema cada 47 segundos.

  2. Chromecast vive dentro del asistente. Sus credenciales están ahí, así que al apagarlo el casting deja de funcionar después de cada reinicio. La reparación toma 20 segundos: prenderlo, esperar a que el receptor cargue su llave y volver a apagarlo. Probado mandando YouTube desde el celular.

  3. El control de Google no respondía. Ni en la configuración inicial ni después de restablecer de fábrica. Funcionó al activar CEC en la tele: con el control de la tele se manejó el streamer y desde ahí se emparejó el de Google.

  4. Android apaga la depuración inalámbrica. En cada reinicio y en cada cambio de red. El skin la vuelve a encender en cuanto hay Wi-Fi, con un permiso concedido una sola vez: tras reiniciar, la conexión volvió sola en 41 segundos.

  5. Aquí el asistente de voz no regresa. En Android TV el firmware lo revivía al reiniciar; en el streamer siguió apagado. Por eso se compara después de cada reinicio y no se da por hecho.

  6. 4 GB de RAM y sistema de 32 bits. El emulador de 64 bits no corre aquí. El de Play Store llegó con 49 núcleos de consolas ya instalados: no hubo que descargar nada.

  7. Guardar sin pensar. El juego se guarda solo al cerrarlo y cada 10 segundos. Mantener Select 2 segundos cierra, guarda y regresa a la página de juegos. Salir con Home, en cambio, lo deja en pausa sin guardar.

  8. Un emulador falso encontró el error. Antes de tocar el streamer, una app con el mismo nombre que el emulador anotaba lo que recibía. Así salió que las carpetas que crea ADB quedan sin permiso de lectura: el skin no veía las portadas y el emulador no habría leído los juegos.

SigueSamsung Tizen

  1. Nada de lo anterior se copia tal cual. Los paquetes de webOS y las apps de Android no corren en Tizen. Lo que sí viaja es el diseño del skin y el método: inventariar, respaldar, medir y probar cada cosa en la tele real.

Lo que todavía no medimos: cuadros por segundo y cuánto tarda en empezar un video. La memoria cambia según las apps que estén abiertas. Si tu Fire TV dice "Vega" en Acerca de, lo del Fire Stick no aplica: es otro sistema. Gracias a Homebrew Channel y cleanyourtv, que hicieron posible el camino.