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:
pmes el gestor de paquetes de Android.uninstallretira una aplicación.--user 0es la parte decisiva. Le dice que la retire solo del usuario principal, no del sistema.
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:
- Se puede deshacer con un comando.
- Un restablecimiento de fábrica lo devuelve todo a su estado original.
- 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:
- De uno en uno. Si quitas quince paquetes de golpe y algo se rompe, no sabrás cuál fue.
- Prueba el mando después de cada uno. Es lo primero que se nota y lo más molesto de recuperar.
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.