Я заметил, что приложения (такие как Google Contacts Sync), которые были отключены с помощью стандартного менеджера приложений Android (KitKat), по-прежнему отображаются как работающие при использовании инструментов наблюдения за процессом. Это верно даже после перезагрузки устройства.
Почему отключенные приложения все еще работают? Есть ли эффективный (и безопасный) способ отключить их?
Решения, требующие привилегий суперпользователя, являются приемлемыми.
(Обратите внимание, что для приведенного выше конкретного примера вы можете указать Android не синхронизировать ваши контакты, но он по-прежнему выполняет процесс синхронизации контактов Google. Но не будем останавливаться на этом примере ... это всего лишь пример.)
applications
4.4-kitkat
task-management
disable-app
RockPaperLizard
источник
источник
block/hide
), что заставляет меня задуматься, что вызывает загрузку приложения сейчас. Другое дело, что пока он был загружен в память, вы можете наблюдать его поверхностное отсутствие по отсутствию фона, тем, строки состояния и многого другого. Возможно, из этого можно поднять новый вопрос..apk
и удалением данных» - поэтому приложение становится «полностью незарегистрированным и невидимым для всех, кроме файлового менеджера», поэтому другие приложения больше не могут вызывать его намерения, как они могут не найти их.Ответы:
Ваш Android не должен иметь root-доступ для действительно отключения приложения, если у вас версия 4.4.x или выше. Все, что тебе нужноADBнастройка в ПК и отладка по USB включена в устройстве без рута или в приложении эмулятора терминала для рутированного устройства (вы также можете использовать adb).
Если вы проверите использование Package Manger (
pm
), вы увидитеДля Lollipop это было бы
Чтобы заблокировать или скрыть пакет (это безопасно), просто выполните
Чтобы разблокировать или показать пакет, выполните
PACKAGE
→ название пакета приложения. Чтобы узнать имя пакета приложения:Добавить
adb shell
перед самой командой, чтобы выполнить их с ПК.Функция скрытия имеет следующий комментарий внутри исходного кода
Подобное комментирование сделано для блока здесь .
Для того , чтобы проверить претензии, вы можете использовать некоторые системные службы , такие как
meminfo
,procstats
и сactivity
помощью dumpsys инструмента или даже перечислить все процессы , используяps
. Вы не найдете активного присутствия заблокированного / скрытого приложения.То же самое относится ко многим системным приложениям, отключенным с помощью графического интерфейса или
pm disable
не для каждого приложения,поскольку даже отключенное приложение может получать трансляции, для которых оно зарегистрировано, что может быть сделано только в том случае, если оно загружено в память1 . Тем не менее, отключенное приложение не может действовать само по себе, как и любое другое приложение.Я обсуждал некоторые различия между скрытием / блокировкой и отключением в моем вопросе « pm hide против PM pm» - кризис идентификации . Он предоставляет только дополнительную информацию к этому ответу, поэтому вы можете пропустить его.
РЕДАКТИРОВАТЬ:
Похоже, что эта техника не работает для всех приложений на Android KitKat. В этом случае просто отмените разрешение на чтение из APK приложения или удалите расширение .APK из имени файла приложения (последнее предложено Jaskaranbir один раз), после чего выполните мягкую / полную перезагрузку. Это то же самое, что удаление приложения из системы, с той лишь разницей, что все файлы останутся на своем месте.
Оба шага могут быть выполнены с использованием любого приложения для управления корневыми файлами. Способ командной строки:
1: Отсутствие технических доказательств, подтверждающих факт
источник
pm block/hide
так что оставьте его без изменений.adb shell su -c "chmod 111 /system/app/SystemUI.apk"
. 111 означает установить только исполняемые разрешения для владельца, группы и других. Перезагрузитесь, и приложение будет отсутствовать в системе. Вы можете установить его000
также.