Respuestas:
Titanium Backup, etc., solo usa in-built Package Manager (pm)
para congelar una aplicación. pm
tiene una función para evitar que las aplicaciones se ejecuten y aparezcan en el Iniciador. Para usarlo, Titanium Backup, etc., ejecute el siguiente comando:
pm deshabilitar {package_name}
Puede congelar aplicaciones usted mismo sin usar una aplicación de congelador dedicada. Simplemente use el comando anterior en Terminal Emulator o ADB Shell
.
Por ejemplo, si desea congelar Stock Web Browser
, abra Terminal Emulator
y cambie a root usando el su
comando. Entonces, ejecuta # pm disable com.android.browser
.
Se va a volver #Package com.android.browser new state: disabled
. ¡Hecho!
Reinicie su Iniciador (algunos dispositivos pueden requerir reiniciar) para ver el ícono de la aplicación desaparecido.
Para descongelar la aplicación, simplemente reemplácela disable
con enable
en el comando.
pm disable
solo dice "muerto", luego el proceso comienza de nuevo inmediatamente. kill -STOP pid es mejor. Puede ver cuáles están detenidos, en la ps
salida.
Encontré cómo pm disable
funciona:
Si corres cat /system/bin/pm
, te da:
# 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 "$@"
Entonces, aparentemente es lo mismo que el PackageManager que usamos desde Java, lo llama, solo en un contexto raíz al que ninguna aplicación de usuario puede acceder directamente.
PUEDE verificar si algo está congelado, utilizando
getPackageManager().getApplicationEnabledSetting( the package name ) ==
getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)
En los sistemas Unix, los archivos tienen 3 autorizaciones: leer, escribir y ejecutar.
(Para 3 categorías de personas: el propietario del archivo [generalmente su creador], un grupo de personas y todos los demás, pero está fuera del tema).
Si elimina la autorización de ejecución del archivo, ya no se puede iniciar (ejecutar).