Respostas:
Sim. O comando é pm disable <package name>
. Você deve ser root para fazer isso:
Abra o shell e obtenha o root:
PC> adb shell
shell@hammerhead:/ $ su
Liste todos os aplicativos ativados, filtre por "calculadora":
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Desativar aplicativo:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Listar todos os aplicativos desativados:
root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #
Algumas outras coisas dignas de nota:
pm enable <package name>
. De fato, esta parece ser a única maneira de reativá-los, na minha experiência.Manifest
ou algo parecido (não sou desenvolvedor de Android, não sei dizer).
Além da resposta de @eldarerathis, você pode desativar um aplicativo para um usuário específico. Usei esse método para remover alguns aplicativos de um usuário restrito que não estavam listados na tela de configurações do usuário. Todos os comandos de um adb shell
. É necessário acesso raiz para fazer alterações.
Primeiro, obtenha o ID do usuário:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
Então
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Para reativar
# pm enable --user 11 com.cyanogenmod.filemanager
Neste exemplo, Alice pode usar o gerenciador de arquivos, mas Bob não.
Você pode fazer algo semelhante ao hide
invés de disable
. Não sei ao certo qual é o melhor, mas veja esta resposta . O inverso de hide
é unhide
(pode ser necessário reiniciar unhide
).
Você pode listar pacotes com pm list pacakges --user 11
. Dê -e
para listar pacotes ativados ou -d
se você deseja ver os desativados. Parece não haver filtro para pacotes ocultos.
FWIW, tentei o acima no Lollipop com CM 12.1 em um Amazon Fire (KFFOWI).
Isso deve funcionar independentemente de o aplicativo ser um sistema ou um aplicativo de terceiros (usuário instalado).
Veja minha resposta em Determine o nome do pacote do seu aplicativo para obter o nome do pacote do aplicativo em questão e use o shell adb para executar estes comandos ( requer acesso root ):
shell adb su pm desativar PACKAGE # desativa o aplicativo e o oculta em Configurações -> Aplicativos pm hide PACOTE # alternativa; para Android Lollipop e superior pacote cmd suspende PACKAGE # Alternative; o pacote permanece visível no aplicativo Iniciador e configurações, mas não pode ser usado; um recurso da Administração de Dispositivos
PACKAGE
refere-se ao nome do pacote do aplicativo
Para restabelecer o aplicativo, substitua disable com permitir , esconder com unhide , e suspender com UNSUSPEND no comando dito e executá-lo com privilégios de root.
Se você possui o Android KitKat ou superior e não possui acesso root , use adb no PC para executar este comando:
bloco adb pm pm PACKAGE # para Android KitKat adb shell pm hide PACKAGE # para Android Lollipop apenas shell adb pm desativar o usuário PACKAGE # alternativa ao `pm hide`; para Android Lollipop e superior; isso funciona como desativar um aplicativo por meio do aplicativo Configurações
Para restabelecer o aplicativo:
adb shell pm desbloqueie PACKAGE # para Android KitKat adb shell pm unhide PACKAGE # para Android Lollipop e somente se você tiver usado `pm hide` anteriormente adb shell pm enable PACKAGE # para Android Lollipop e superior
As mudanças ocorreriam imediatamente.