ADB üzerinden sistem uygulamalarını etkinleştirme ve devre dışı bırakma


49

Bir sistem uygulamasını etkinleştirmek / devre dışı bırakmak için herhangi bir adb komutu var mı?

Teşekkürler

Yanıtlar:


67

Evet. Komut pm disable <package name>. Bunu yapabilmek için root olmanız gerekir:

Kabuğu açın ve kök olsun:

PC> adb shell
shell@hammerhead:/ $ su

Tüm hesaplanan uygulamaları listele, "hesap makinesine" göre filtrele:

root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2

Uygulamayı devre dışı bırak:

root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled

Tüm devre dışı uygulamaları listele:

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:/ #

Kayda değer diğer bazı şeyler:

  1. Testlerimde, bu şekilde devre dışı bırakılan uygulamalar Ayarlar> Uygulamalar listesinden tamamen kayboluyor. "Disabled" sekmesinde bile görünmüyorlar.
  2. İle uygulamaları yeniden etkinleştirebilirsiniz pm enable <package name>. Aslında, bu benim deneyimlerime göre onları yeniden etkinleştirmenin tek yolu gibi görünüyor .

Devre dışı bırakırken seçilen uygulamanın gizlenmesini önlemek mümkün müdür?
android geliştiricisi

1
@androiddeveloper No. Uygulamayı kullanıcı arayüzünden de dahil olmak üzere tamamen gizlemek, arkasındaki fikirdür .
Izzy

@ Izzy görüyorum. Aksini söylemek mümkün değil, saklanmadan, sadece saklanmanın anlamı?
android geliştiricisi,

Teorik olarak evet sanırım; ama bunun nasıl yapılacağı hakkında hiçbir fikrim yok. Yüklendiğinde hiçbir yerde görünmeyen mağazalarda bazı "uygulamalar" vardır (örneğin, bazı diğer uygulamalarda yalnızca ek ayarlar sağladıkları ya da belirli hizmetler için "hesap yöneticileri" gibi bazı "görünmez hizmetler" sundukları) bir şekilde; ama bunun uygulamanın Manifestveya benzeri bir şeyde yapılmasından korkuyorum (Android dev değilim, bu yüzden söyleyemem).
Izzy

Uygulamayı Google Play Store sayfasından etkinleştirmek mümkündür.
Bilgi Ekranı

7

@Eldarerathis tarafından verilen cevaba ek olarak, belirli bir kullanıcı için bir uygulamayı devre dışı bırakabilirsiniz. Bu yöntemi, bazı uygulamaları kullanıcı ayarları ekranında listelenmeyen kısıtlı bir kullanıcıdan kaldırmak için kullandım. Bütün bir komutları adb shell. Değişiklik yapmak için kök erişimi gerekir.

Öncelikle, kullanıcının kimliğini alın:

$ pm list users
Users:
  UserInfo{0:Alice:13} running
  UserInfo{11:Bob:18} running

Sonra

$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user

Yeniden etkinleştirmek için

# pm enable --user 11 com.cyanogenmod.filemanager

Bu örnekte, Alice dosya yöneticisini kullanabilir ancak Bob kullanamaz.

Bunun hideyerine benzer bir şey yapabilirsiniz disable. Hangisinin en iyi olduğundan emin değilim, ama bu cevabı gör . Tersi hideolan unhide(bir yeniden başlatma etkisi için gerekli olabilir unhide).

İle paketleri listeleyebilirsiniz pm list pacakges --user 11. -eEtkin paketleri listelemek için veya -dengelli paketlerini görmek istiyorsanız verin . Gizli paketler için filtre yok gibi görünüyor.

FWIW, yukarıda bir Amazon Ateşi'nde (KFFOWI) CM 12.1 ile Lollipop'ta denedim.


3

Bu, uygulamanın bir sistem uygulaması mı yoksa üçüncü taraf uygulaması mı (kullanıcı tarafından yüklenmiş) olursa olsun çalışmalıdır.


İlgili uygulamanın paket adını almak için uygulamanızın paket adını belirleme konusundaki cevabımı görün ve bu komutları çalıştırmak için kabuğunu kullanın ( kök erişimi gerekir ):

adb kabuğu
su
pm disable PACKAGE #, uygulamayı devre dışı bırakır ve Ayarlar -> Uygulamalar bölümünde gizler 
pm hide PAKET # alternatif; Android Lolipop ve üstü için
cmd paketi askıya al PAKET # alternatif; Paket Başlatıcı ve Ayarlar uygulamasında görünmeye devam eder ancak kullanılamaz; Cihaz Yönetimi'nin bir özelliği

PACKAGE Uygulamanın paket adını ifade eder.

Uygulamayı yeniden etkinleştirmek için değiştirmek devre dışı ile etkinleştirmek , gizlemek ile unhide ve askıya ile unsuspend bahsedilen komuta ve kök ayrıcalığı ile çalıştırmak.

Eğer Android KitKat veya üstü bir sürüm kullanıyorsanız ve root erişiminiz yoksa , bu komutu çalıştırmak için PC'deki kullanın:

adb kabuk pm blok Android KitKat için PAKET # #
adb shell pm hide PAKET # # yalnızca Android Lollipop için
adb shell pm disable-user PACKAGE # pm öğeye alternatif; Android Lollipop ve üstü için; bu, yalnızca bir uygulamanın Ayarlar uygulaması aracılığıyla devre dışı bırakılması gibi çalışır

Uygulamayı eski durumuna getirmek için:

adb kabuk pm Android KitKat için PAKET # # engelini kaldırmak
adb kabuk pm unhide Android Lollipop için PAKETİ # ve sadece daha önce `pm hide` kullandıysanız
adb kabuk pm Android Lollipop ve üstü için PAKET # etkinleştirin

Değişiklikler hemen gerçekleşecek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.