Descubrí cómo funciona pm disable
:
Si ejecutas cat /system/bin/pm
, obtienes:
# Script para iniciar "pm" en el dispositivo, que tiene un shell muy rudimentario
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"
Por lo tanto, aparentemente es lo mismo que el PackageManager que utilizamos desde Java, simplemente lo está llamando - solo en un contexto root al que ninguna app de usuario puede acceder directamente.
PUEDES verificar si algo está congelado, utilizando
getPackageManager().getApplicationEnabledSetting( el nombre del paquete ) ==
getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)