Seu Android não precisa ter acesso root para desativar verdadeiramente um aplicativo, se você tiver a versão 4.4.x ou superior. Tudo o que você precisa éadbconfiguração na depuração de PC e USB ativada em um dispositivo não enraizado ou em um aplicativo de emulador de terminal para um dispositivo enraizado (você também pode usar adb).
Se você verificar o uso do Package Manger ( pm
), verá
bloco pm [--user USER_ID] PACKAGE_OR_COMPONENT ")
pm desbloquear [--user USER_ID] PACKAGE_OR_COMPONENT ")
Para o Lollipop, seria
pm hide [--user USER_ID] PACKAGE_OR_COMPONENT ")
pm exibir [- usuário USER_ID] PACKAGE_OR_COMPONENT ")
Para bloquear ou ocultar um pacote (é seguro), basta
pm block PACKAGE # for KitKat
pm hide PACKAGE # for Lollipop
Para desbloquear ou reexibir o pacote, faça
pm unblock PACKAGE #for KitKat
pm unhide PACKAGE # for Lollipop
PACKAGE
→ nome do pacote de um aplicativo. Para saber o nome do pacote de um aplicativo:
Anexe o adb shell
comando before very para executá-los no PC.
A função por trás do hide tem o seguinte comentário dentro do código-fonte
Coloca o pacote em um estado oculto, que é quase como um estado desinstalado, tornando o pacote indisponível, mas não remove os dados ou o arquivo do pacote real. O aplicativo pode ser oculto, redefinindo o estado oculto ou instalando-o
Comentários semelhantes são feitos para o bloco aqui .
Para verificar a reivindicação, você pode usar alguns serviços do sistema, como meminfo
, procstats
e activity
usando a ferramenta dumpsys , ou mesmo listar todos os processos usando ps
. Você não encontrará uma presença ativa do aplicativo bloqueado / oculto.
O mesmo vale para muitos aplicativos do sistema desabilitados usando a GUI ou pm disable
não para todos os aplicativos, pois mesmo um aplicativo desabilitado pode receber transmissões pelas quais se registrou, o que só pode ser feito se for carregado na memória 1 . No entanto, um aplicativo desativado não pode agir por conta própria, nem pode ser executado por qualquer outro aplicativo.
Argumentei algumas das diferenças entre ocultar / bloquear e desativar na minha pergunta pm hide VS pm disable - a crise de identidade . Ele fornece apenas informações suplementares a esta resposta para que você possa ignorá-la.
EDITAR:
Parece que a técnica não funciona para todos os aplicativos no Android KitKat. Nesse caso, simplesmente revogue a permissão de leitura do APK do aplicativo ou remova a extensão .APK do nome do arquivo do aplicativo (sugerido por Jaskaranbir uma vez), seguido por uma reinicialização suave / completa. É o mesmo que excluir um aplicativo do sistema, com a única diferença de que todos os arquivos permaneceriam em seu lugar.
Ambas as etapas podem ser executadas usando qualquer aplicativo gerenciador de arquivos raiz. O caminho da linha de comando é:
adb shell su -c 'chmod 000 /data/app/PACKAGE*' # 000 means no read-write-executable permission to user,group and others.
adb shell su -c 'mv /data/app/PACKAGE* /data/app/PACKAGE' # doing renaming by moving the file
adb reboot
1: Falta de evidência técnica para apoiar o fato