Percebi que aplicativos (como o Google Contacts Sync) que foram desativados usando o gerenciador de aplicativos Android (KitKat) ainda aparecem como em execução ao usar as ferramentas do observador de processos. Isso é verdade mesmo após a reinicialização do dispositivo.
Por que os aplicativos desativados ainda estão em execução? Existe uma maneira eficaz (e segura) de realmente desabilitá-los?
Soluções que requerem privilégios de root são aceitáveis.
(Observe que, no exemplo específico acima, você pode dizer ao Android para não sincronizar seus contatos, mas ele ainda executa o processo de sincronização de contatos do Google. Mas não vamos nos debruçar sobre esse exemplo ... é apenas um exemplo.)
applications
4.4-kitkat
task-management
disable-app
RockPaperLizard
fonte
fonte
block/hide
), o que me faz pensar no que está causando o carregamento do aplicativo agora. Outra questão é que, enquanto estava carregado na memória, é possível observar sua ausência superficial por falta de plano de fundo, temas, barra de status e muito mais. Talvez uma nova questão possa ser elaborada a partir disso..apk
dados para trás" - para que o aplicativo fique "completamente não registrado e invisível para tudo, exceto o gerenciador de arquivos", para que outros aplicativos não possam mais chamar suas intenções da maneira que puderem encontre-os.Respostas:
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áPara o Lollipop, seria
Para bloquear ou ocultar um pacote (é seguro), basta
Para desbloquear ou reexibir o pacote, faça
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
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
eactivity
usando a ferramenta dumpsys , ou mesmo listar todos os processos usandops
. 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ória1 . 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 é:
1: Falta de evidência técnica para apoiar o fato
fonte
pm block/hide
deixá-lo intocado.adb shell su -c "chmod 111 /system/app/SystemUI.apk"
,. 111 significa definir apenas permissões executáveis para proprietário, grupo e outros. Reinicialize e o aplicativo estará ausente no sistema. Você também pode configurá-lo000
.