Para empezar

Desinstalar una app preinstalada sin acceso privilegiado

· 3 min de lectura

Este es el comando central de todo lo que hacemos aquí:

adb shell pm uninstall --user 0 com.ejemplo.paquete

Si responde Success, la aplicación ha desaparecido del televisor.

Qué hace realmente ese comando

Conviene desmenuzarlo, porque cada parte importa:

La partición de sistema no se toca; solo se retira la aplicación del usuario actual Partición de sistema (firmware de fábrica) intacta Usuario 0 (lo que tú ves) retirada

Sin --user 0, el comando fallaría en una app de sistema: Android no permite borrar del firmware. Con --user 0, lo que ocurre es más modesto y mucho más seguro: la aplicación deja de estar disponible para ti, pero el archivo original sigue intacto en la partición de sistema, que no se modifica en ningún momento.

De ahí salen tres consecuencias prácticas:

  1. Se puede deshacer con un comando.
  2. Un restablecimiento de fábrica lo devuelve todo a su estado original.
  3. No has tocado el firmware, así que no hay nada que pueda "quedarse a medias".

Deshacerlo

adb shell cmd package install-existing com.ejemplo.paquete

install-existing significa "instala la que ya está ahí". No descarga nada. Reinstala la copia de fábrica que nunca se fue.

En este sitio no publicamos ninguna ficha sin haber comprobado que esta vuelta atrás funciona en ese modelo. Es una regla que nos hemos puesto y que no saltamos.

La alternativa más suave: desactivar

Si prefieres no desinstalar, puedes desactivar:

adb shell pm disable-user --user 0 com.ejemplo.paquete

La aplicación se queda instalada pero no se ejecuta ni aparece. Para volver:

adb shell pm enable com.ejemplo.paquete

Cuándo usar cada una: desactivar es más conservador y buena idea para probar si algo se rompe. Desinstalar libera algo de espacio de datos y es lo que normalmente quieres para publicidad y telemetría.

Errores que te vas a encontrar

Failure [DELETE_FAILED_INTERNAL_ERROR] Casi siempre significa que el nombre del paquete está mal escrito. Compruébalo con pm list packages.

Failure [not installed for 0] Ya estaba fuera. No pasa nada.

Success pero la app sigue apareciendo Reinicia el televisor. Algunos lanzadores cachean la lista.

Antes de lanzarte

Dos reglas que ahorran disgustos:

Y sobre todo: mira antes si tu modelo está en el directorio. La diferencia entre un paquete inofensivo y uno que te deja sin mando depende del modelo, y es justo lo que estamos catalogando.

Todo lo de aquí se aplica a un aparato de tu propiedad, y toda desinstalación es reversible. Los límites de este proyecto: Qué hacemos y qué no