Відповіді:
Так. Команда є pm disable <package name>
. Ви повинні мати корінь для цього:
Відкрийте оболонку та отримайте корінь:
PC> adb shell
shell@hammerhead:/ $ su
Перерахуйте всі включені програми, фільтруйте за "калькулятором":
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Вимкнути додаток:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Список усіх відключених програм:
root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #
Ще деякі речі, про які варто звернути увагу:
pm enable <package name>
. Насправді, це, здається, є єдиним способом їх відновлення, на мій досвід.Manifest
чи тому подібному (я не розробник Android, тому не можу сказати).
Надалі відповідь від @eldarerathis ви можете відключити додаток для конкретного користувача. Я використовував цей метод, щоб видалити деякі програми від обмеженого користувача, які не були вказані на екрані налаштувань користувача. Усі команди з adb shell
. Для внесення змін потрібен кореневий доступ.
По-перше, отримайте ідентифікатор користувача:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
Тоді
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Щоб знову включити
# pm enable --user 11 com.cyanogenmod.filemanager
У цьому прикладі Аліса може використовувати файловий менеджер, але Боб не може.
Ви можете зробити подібну річ hide
замість disable
. Я не впевнений, що найкраще, але дивіться цю відповідь . Зворотне hide
є unhide
(перезавантаження може знадобитися для ефекту unhide
).
Ви можете перелічити пакунки за допомогою pm list pacakges --user 11
. Надайте -e
до списку включені пакети або -d
якщо ви хочете побачити інваліди Здається, не буде фільтру для прихованих пакетів.
FWIW, я спробував вищезгадане на Lollipop з CM 12.1 на Amazon Fire (KFFOWI).
Це має працювати незалежно від того, додаток є системним додатком або стороннім додатком (встановлений користувачем).
Дивіться мою відповідь у розділі Визначення назви пакета вашого додатка, щоб отримати назву пакета відповідного додатка та використати оболонку adb для виконання цих команд ( потрібен кореневий доступ ):
оболонка adb су pm ones PACKAGE # відключає додаток і приховує його в Налаштуваннях -> Програми вечір приховати ПАКЕТ # альтернативу; для Android Lollipop та вище пакет cmd призупинив ПАКЕТ # альтернативу; пакет залишається видимим у програмі Launcher and Settings, але його не можна використовувати; особливість адміністрування пристроїв
PACKAGE
відноситься до назви пакета програми
Щоб відновити додаток, замінити відключити з включити , приховати з Показати , і призупинити з знову включити в зазначеній команди і виконати його з коренем привілеїв.
Якщо ви маєте Android KitKat або вище та не маєте кореневого доступу , використовуйте adb в ПК для виконання цієї команди:
блок блоку вечора adb PACKAGE # для Android KitKat adb shell pm сховай PACKAGE # лише для Android Lollipop adb shell pm pm-user PACKAGE # альтернатива `pm hid '; для Android Lollipop та вище; це працює так само, як відключення програми через програму Налаштування
Щоб відновити додаток:
adb shell pm unblocking PACKAGE # for Android KitKat adb shell pm unhide PACKAGE # для Android Lollipop, і лише якщо ви раніше використовували `pm hid ' вечора adb shell pm PACKAGE # для Android Lollipop та вище
Зміни відбудуться негайно.