Desinstalar uma aplicação pré-instalada sem acesso privilegiado
· 2 min de leitura
É o comando central de tudo o que fazemos aqui:
adb shell pm uninstall --user 0 com.exemplo.pacote
Se responder Success, a aplicação desapareceu da televisão.
O que esse comando faz na realidade
pmé o gestor de pacotes do Android.uninstallremove uma aplicação.--user 0é a parte decisiva: remove-a apenas do utilizador principal, não do sistema.
Sem --user 0, o comando falharia numa aplicação de sistema: o Android não
permite apagar do firmware. Com --user 0, o ficheiro original continua
intacto na partição de sistema, que nunca é modificada.
Três consequências práticas:
- Pode-se desfazer com um comando.
- Uma reposição de fábrica devolve tudo ao estado original.
- Não tocou no firmware, por isso nada pode ficar a meio.
Desfazer
adb shell cmd package install-existing com.exemplo.pacote
Não descarrega nada. Reinstala a cópia de fábrica.
A alternativa mais suave: desativar
adb shell pm disable-user --user 0 com.exemplo.pacote
A aplicação continua instalada mas não se executa. Para voltar atrás:
adb shell pm enable com.exemplo.pacote
Erros que vai encontrar
Failure [DELETE_FAILED_INTERNAL_ERROR] — quase sempre um nome de pacote mal
escrito.
Failure [not installed for 0] — já estava fora.
Success mas a aplicação continua lá — reinicie a televisão.
Antes de avançar
- Um de cada vez. Quinze de uma vez e não vai saber qual partiu o quê.
- Teste o comando à distância depois de cada um. É a primeira coisa que se nota e a mais chata de recuperar.