Respostas:
O Titanium Backup etc apenas usa o built-in Package Manager (pm)
para congelar um aplicativo. pm
tem um recurso para impedir que aplicativos sejam executados e apareçam no Launcher. Para usá-lo, o Titanium Backup etc execute o seguinte comando:
pm desativar {nome_pacote}
Você pode congelar aplicativos sozinho sem usar um aplicativo congelador dedicado. Basta usar o comando acima no Emulador de Terminal ou ADB Shell
.
Por exemplo, se você deseja congelar Stock Web Browser
, abra Terminal Emulator
e mude para root usando o su
comando Então, execute # pm disable com.android.browser
.
Vai voltar #Package com.android.browser new state: disabled
. Feito!
Reinicie o Launcher (alguns dispositivos podem exigir reinicialização) para ver o ícone do aplicativo desaparecido.
Para descongelar o aplicativo, basta substituir disable
por enable
no comando
pm disable
apenas diz "matado", e o processo inicia novamente imediatamente. kill -STOP pid é melhor. Você pode ver quais estão parados na ps
saída.
Eu descobri como pm disable
funciona:
Se você executar cat /system/bin/pm
, ele fornecerá:
# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
Então, aparentemente, é o mesmo que o PackageManager que usamos do Java, está chamando - apenas em um contexto raiz que nenhum aplicativo de usuário pode acessar diretamente.
Você pode verificar se algo está congelado, usando
getPackageManager().getApplicationEnabledSetting( the package name ) ==
getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)
Nos sistemas Unix, os arquivos têm três autorizações: leitura, gravação e execução.
(Para três categorias de pessoas: o proprietário do arquivo [geralmente seu criador], um grupo de pessoas e todos os outros, mas está fora do assunto).
Se você remover a autorização de execução do arquivo, ele não poderá mais ser iniciado (executado).