Відповіді:
Titanium Backup тощо просто використовуйте вбудований Package Manager (pm)
для заморожування програми. pm
має функцію запобігання запуску програм і їх появі в Launcher. Щоб використовувати його, Titanium Backup і т.д. виконують таку команду:
вечір відключити {ім'я пакета}
Ви можете заморозити програми самостійно, не використовуючи спеціальний додаток для заморозки. Просто використовуйте вищевказану команду в термінальному емуляторі або ADB Shell
.
Наприклад, якщо ви хочете заморозити Stock Web Browser
, відкрийте Terminal Emulator
та переключіться на root за допомогою su
команди. Потім виконати # pm disable com.android.browser
.
Це повернеться #Package com.android.browser new state: disabled
. Готово!
Перезапустіть запуск (деякі пристрої можуть потребувати перезавантаження), щоб побачити піктограму програми.
Для розморожування додатки, просто замініть disable
з enable
в команді.
pm disable
говорять лише про "убитого", тоді процес запускається знову. kill -STOP pid - краще. Ви можете бачити, які зупинені, у ps
виході.
Я дізнався, як pm disable
працює:
Якщо ви запускаєте cat /system/bin/pm
, він дає:
# 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 "$@"
Отже, мабуть, це те саме, що і PackageManager, яким ми користуємося в Java, він називає його - просто в кореневому контексті, до якого жоден користувацький додаток не може безпосередньо отримати доступ.
МОЖЕТЕ перевірити, чи щось застигло, використовуючи
getPackageManager().getApplicationEnabledSetting( the package name ) ==
getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)
У системах Unix файли мають 3 авторизації: читати, записувати та виконувати.
(Для 3 категорій людей: власник файлу [зазвичай його створювач], група людей та всі інші, але це поза темою).
Якщо ви видалите авторизацію виконання файлу, він більше не може бути запущений (виконаний).