La tele no arrancaba: cuatro gigas y el servicio de canales
ContenidoContents
Ayer por la noche, en casa de mi madre, la Smart TV no arrancaba.
Es una JVC, con placa Vestel Cosmos y Android TV. El disco interno tiene 4,2 GB. Estaba al 100 %, y con el disco así el sistema no termina de encender. El aviso de disco lleno tapaba el resto.
Cómo entré
En el menú no había depuración inalámbrica. La depuración USB sí. En estas teles, con eso basta: el puerto 5555 queda abierto en la IP de la tele, y desde el Mac se entra por la red. El USB de la tele es para pendrives, no para depurar.
En la tele, con el Mac en el mismo Wi‑Fi:
- Ajustes → Preferencias del dispositivo → Información.
- En Compilación del SO de Android TV, pulsar OK siete veces, hasta el aviso de que ya eres desarrollador. La versión del kernel y la versión de software no sirven para esto.
- Volver a Preferencias del dispositivo → Opciones de desarrollador → activar Depuración USB.
- La IP está en Ajustes → Red e Internet, dentro de la red conectada.
Esa noche la tele era 192.168.1.136.
1adb connect 192.168.1.136:5555
En la pantalla sale ¿Permitir la depuración USB?. Marqué permitir siempre desde este equipo y acepté. Si la tele se apaga antes de que Android arranque, el aviso no sale: no hay a quién preguntar.
Qué lo llenaba
1adb -s 192.168.1.136:5555 shell 'df -h /data'
4,2 GB, al 100 %. dumpsys diskstats reparte ese espacio por paquete. Casi todo era un solo nombre: com.mediatek.tv.service, unos 2,8 GB de datos. Es el servicio de canales, de MediaTek. No era Netflix, ni YouTube, ni la cuenta de Google.
Vaciar la caché del sistema (pm trim-caches) soltó unos 100 MB. pm clear com.mediatek.tv.service respondió que había ido bien y el disco siguió lleno. El proceso tenía los archivos abiertos. Mientras sigue en marcha, borrar los datos no suelta el espacio.
Lo paré, lo maté, borré y reinicié:
1adb -s 192.168.1.136:5555 shell '
2pm disable-user --user 0 com.mediatek.tv.service
3pid=$(pidof com.mediatek.tv.service)
4kill -9 $pid
5pm clear com.mediatek.tv.service
6pm enable com.mediatek.tv.service
7'
8adb -s 192.168.1.136:5555 reboot
Al volver, df enseñaba unos 2,8 GB libres de 4,2 GB. El aviso de disco lleno desaparece. La tele puede pedir que se vuelvan a buscar los canales. Las sesiones de las aplicaciones siguen.
Lo que quité después
Con sitio para arrancar, miré el resto. Quité aplicaciones que esa tele no necesitaba para verse. pm uninstall --user 0 las esconde para el usuario de la tele y deja el paquete de sistema en su sitio:
1adb -s 192.168.1.136:5555 shell '
2for p in \
3 com.google.android.play.games \
4 com.google.android.videos \
5 com.google.android.marvin.talkback \
6 com.google.android.youtube.tvmusic \
7 com.google.android.apps.nbu.smartconnect.tv \
8 com.cltv.fast
9do
10 pm uninstall --user 0 $p
11done
12'
Eso es Juegos de Play, Películas de Google, TalkBack, YouTube Music, Smart Connect y la app de canales FAST. El disco apenas se movió: de 1,4 GB ocupados a 1,2 GB. El hueco grande ya lo había dejado el servicio de canales.
En esa tele tampoco hacían falta Netflix, Prime Video ni YouTube. Esas tres sí pesan, porque la actualización vive en el disco de datos. Hace falta quitar la actualización y, además, esconder el paquete:
1adb -s 192.168.1.136:5555 shell '
2for p in \
3 com.netflix.ninja \
4 com.amazon.amazonvideo.livingroom \
5 com.google.android.youtube.tv
6do
7 pm uninstall $p
8 pm uninstall --user 0 $p
9done
10df -h /data
11'
Quedaron 3,2 GB libres de 4,2 GB. Si más adelante hacen falta, se vuelven a instalar desde Play Store.
Para que no se llene sola
El disco es pequeño. Cada actualización de una aplicación se guarda ahí, y es lo que lo había llenado hasta que la tele dejó de arrancar. Las actualizaciones del sistema, en esta JVC, casi no llegan, y cuando llegan caben. Las de las aplicaciones, no.
En Play Store: Ajustes → Actualizar aplicaciones automáticamente → No actualizar aplicaciones automáticamente.
La apagué con el botón de la tele, esperé unos quince segundos y la volví a encender. Arrancó sin el aviso.