Ce n'est pas aussi simple que de répertorier les paquets. Voici une exception (code Bash) sur la façon dont mon outil Adebar le fait (pour toutes les applications d'un appareil, en envoyant les résultats dans un fichier sous la forme d'un fichier spool). pm disable
dans la façon dont votre question le cite), à trouver dans lib/scriptgen.lib
:
local comps
local myline
scriptname="${OUTDIR}/deadReceivers.sh"
echo "#!${BASH\_LOCATION}" > "${scriptname}"
echo -e "\\n#\\n# Disabled components for ${DEVICE\_NAME} as of $(date '+%Y-%m-%d %H:%M')\\n#" >> "${scriptname}"
for pkg in $(adb ${ADBOPTS} shell "pm list packages 2>/dev/null"); do
pkg=${pkg//\[$'\\t\\r\\n'\]}
pkg=${pkg##\*:}
\[\[ "${pkg}" = "android" \]\] && continue
comps=$(adb ${ADBOPTS} shell "dumpsys package ${pkg}" | grep -E -A99999 "disabledComponents:" |grep -E -B99999 "enabledComponents:")
if \[\[ -n "${comps}" \]\]; then
echo >> "${scriptname}"
echo "# ${pkg}" >> "${scriptname}"
for myline in $comps; do
myline=${myline//\[$'\\t\\r\\n'\]}
\[\[ "${myline}" = "disabledComponents:" || "${myline}" = "enabledComponents:" \]\] && continue
echo "adb ${ADBOPTS} shell \\"pm disable ${pkg}/${myline}\\"" >> "${scriptname}"
done
fi
done
En bref, vous devez analyser la section "disabledComponents" de la sortie de l'application dumpsys package <package_name>
("comps" dans le fragment de code ci-dessus). Comme vous pouvez le voir, ce segment est suivi par une liste de activé composants, au cas où vous voudriez savoir où les trouver.