Câu trả lời:
Đúng. Lệnh là pm disable <package name>
. Bạn phải root để làm điều này:
Mở shell và lấy root:
PC> adb shell
shell@hammerhead:/ $ su
Liệt kê tất cả các ứng dụng được kích hoạt, lọc theo "máy tính":
root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2
Vô hiệu hóa ứng dụng:
root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled
Liệt kê tất cả các ứng dụng bị vô hiệu hóa:
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:/ #
Một số điều đáng chú ý khác:
pm enable <package name>
. Trên thực tế, đây dường như là cách duy nhất để kích hoạt lại chúng, theo kinh nghiệm của tôi.Manifest
hoặc tương tự (Tôi không phải là nhà phát triển Android, vì vậy tôi không thể nói).
Ngoài câu trả lời của @eldarerathis, bạn có thể vô hiệu hóa một ứng dụng cho một người dùng cụ thể. Tôi đã sử dụng phương pháp này để xóa một số ứng dụng khỏi người dùng bị hạn chế không được liệt kê trên màn hình cài đặt người dùng. Tất cả các lệnh từ một adb shell
. Truy cập root là cần thiết để thực hiện thay đổi.
Đầu tiên, lấy id của người dùng:
$ pm list users
Users:
UserInfo{0:Alice:13} running
UserInfo{11:Bob:18} running
Sau đó
$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user
Để kích hoạt lại
# pm enable --user 11 com.cyanogenmod.filemanager
Trong ví dụ này, Alice có thể sử dụng trình quản lý tệp nhưng Bob thì không.
Bạn có thể làm một điều tương tự với hide
thay vì disable
. Tôi không chắc cái nào tốt nhất, nhưng hãy xem câu trả lời này . Nghịch đảo hide
là unhide
(có thể cần phải khởi động lại để có hiệu lực unhide
).
Bạn có thể liệt kê các gói với pm list pacakges --user 11
. Đưa -e
ra danh sách các gói được kích hoạt hoặc -d
nếu bạn muốn xem các gói bị vô hiệu hóa. Dường như không có bộ lọc cho các gói ẩn.
FWIW, tôi đã thử những điều trên trên Lollipop với CM 12.1 trên Amazon Fire (KFFOWI).
Điều này sẽ hoạt động bất kể ứng dụng là ứng dụng hệ thống hay ứng dụng của bên thứ ba (người dùng đã cài đặt).
Xem câu trả lời của tôi tại Xác định tên gói của ứng dụng của bạn để lấy tên gói của ứng dụng liên quan và sử dụng shell adb để thực thi các lệnh này ( yêu cầu quyền truy cập root ):
vỏ adb su pm tắt GÓI # vô hiệu hóa ứng dụng và ẩn nó trong Cài đặt -> Ứng dụng pm ẩn GÓI # thay thế; cho Android Lollipop trở lên gói cmd tạm ngưng GÓI # thay thế; gói vẫn hiển thị trong ứng dụng Launcher và Cài đặt nhưng không thể sử dụng; một tính năng của Quản trị thiết bị
PACKAGE
đề cập đến tên gói của ứng dụng
Để phục hồi các ứng dụng, thay thế vô hiệu hóa với phép , trốn với Bỏ ẩn , và đình chỉ với huỷ tạm ngừng trong lệnh nói và thực hiện nó với quyền root.
Nếu bạn đã có Android KitKat trở lên và không có quyền truy cập root , hãy sử dụng adb trong PC để thực hiện lệnh này:
adb shell pm chặn GÓI # cho Android KitKat adb shell pm ẩn GÓI # chỉ dành cho Android Lollipop adb shell pm vô hiệu hóa người dùng GÓI # thay thế cho `pm hide`; cho Android Lollipop trở lên; điều này hoạt động giống như vô hiệu hóa một ứng dụng thông qua ứng dụng Cài đặt
Để khôi phục ứng dụng:
adb shell pm bỏ chặn GÓI # cho Android KitKat adb shell pm bỏ ẩn GÓI # cho Android Lollipop và chỉ khi bạn đã sử dụng `pm hide` trước đó adb shell pm cho phép GÓI # cho Android Lollipop trở lên
Thay đổi sẽ diễn ra ngay lập tức.