Android paket kaldırma iletişim kutusunun görünmesini sağlamak için adb shell komutu


126

Ben var adb, koşu ve cihaz modu ayıklama benim sistemine bağlıdır

Uygulamayı şunu kullanarak niyetle başlatmayı kullanarak kaldırmak istiyorum adb shell am start <INTENT>

Kullanarak kaldırmak adb uninstall com.company.apppackageistemiyorum ve bunu kullanarak bile yapmak istemiyorumadb shell pm uninstall com.company.apppackage

android.intent.action.DELETEKullanıcının istemi görmesine ve programı kaldırmasına izin veren belirli bir paket için eylem içeren bir niyet gönderebilir miyim ?

Yanıtlar:


178

Bu komutu kullanarak adb'den yapabilirsiniz:

adb shell am start -a android.intent.action.DELETE -d package:<your app package>

2
-d paketinin ne anlama geldiğini söyler misiniz? <uygulama paketiniz> ne anlama geliyor? herhangi bir belge var mı?
Rinkal Bhanderi

11
-d veri anlamına gelir. -a eylem anlamına gelir. İşlemi "Sil" ve verileri "paket: uygulama paketiniz" olarak içeren bir Amaç başlatıyorsunuz. Bu, paketleri kaldırmaktan sorumlu etkinliği başlatacak ve verilerde sağlanan paketi kaldırmaya çalışacaktır. Belgeler "adb shell am" komutu kullanılarak bulunabilir.
pcans

Hayır, uygulamanız etkinleştirilmiş bir DevicePolicyManager içeriyorsa, önce onu manuel olarak devre dışı bırakmanız gerekir.
pcans

Yukarıdaki komut, telefonda Bu Uygulamayı Sil onay iletişim kutusunu gösterir. adb shell pm uninstall -k com.packagenameBunun yerine kullanın .
ViliusK

1
Bu, sistem uygulamaları için işe yaramaz. Komut istemi iletişim kutusu açılır, ancak uygulama kaldırılmaz.
IgorGanapolsky

218

Bu komutu cmd'de kullanın:

adb shell pm uninstall -k com.packagename

Örneğin:

adb shell pm uninstall -k com.fedmich.pagexray

-kBayrak uygulaması kaldırıldığında bile, etrafında önbellek ve veri dizinleri tutmak için paket yöneticisini söyler. Temiz bir kaldırma istiyorsanız, belirtmeyin -k.


8
Bu cevabı daha çok beğendim. Çünkü, bununla, geri alma onay iletişim kutusunu almayacaksınız.
joctee

2
@joctee, Ben de öyle ama soru özellikle bir amaç kullanarak kaldırmak istemediklerini söyledi.
OrhanC1

@Lohoris, Çalışmasını sağladınız .. neverever'ın cevabındaki "+" işaretini kaldırdığınızdan emin olun
fedmich

32
@Johnny_D -k bayrağı paket yöneticisine, uygulama kaldırılsa bile önbelleği ve veri dizinlerini etrafta tutmasını söyler. Temiz bir kaldırma istiyorsanız, -k belirtmeyin.
Yojimbo

2
Bu komutu kullanmaya çalışırken Hata mesajları almaya devam ediyorum .
IgorGanapolsky

12

ADB'yi kullanarak aşağıdaki üç komuttan herhangi birini kullanabilirsiniz:

adb shell am start -a android.intent.action.UNINSTALL_PACKAGE -d "package:PACKAGE"
adb shell am start -n com.android.packageinstaller/.UninstallerActivity -d "package:PACKAGE"
adb shell am start -a android.intent.action.DELETE -d "package:PACKAGE"

PAKETİ, yüklü kullanıcı uygulamasının paket adıyla değiştirin. Komutun başarılı bir şekilde çalışması için uygulamanın bir cihaz yöneticisi olmaması gerekir. Bu komutların tümü, uygulamanın kaldırılması için kullanıcının onayını gerektirir.

Detaylar komut kontrol ederek bilinen edilebileceğini söyledi AM kullanarak 'ın kullanımını adb shell am.

Elixir 2 kullanarak bu komutlar hakkında bilgi aldım (eşdeğer herhangi bir uygulamayı kullanın). Bunu, Paket Yükleyici uygulamasının (uygulamaların yüklenmesi ve kaldırılması sırasında gördüğünüz GUI) etkinliklerini ve ilgili amaçları göstermek için kullandım. İşte gidiyorsun.

Kullandığım alternatif yol şuydu: Nihai onay gösterilene kadar GUI kullanarak uygulamayı kaldırmaya çalıştım. Onaylamadım ama komutu uyguladım

adb shell dumpsys activity recents   # for Android 4.4 and above
adb shell dumpsys activity activities # for Android 4.2.1

Diğer şeylerin yanı sıra, bana arka planda aktarılan niyetin yararlı ayrıntılarını gösterdi. Misal:

intent={act=android.intent.action.DELETE dat=package:com.bartat.android.elixir#com.bartat.android.elixir.MainActivity flg=0x10800000 cmp=com.android.packageinstaller/.UninstallerActivity}

Burada, hedef için yeterli olan eylemi, verileri, bayrağı ve bileşeni görebilirsiniz.


Sorunun eski olduğunu anlıyorum, bu yüzden cevabım pek alakalı olmayabilir. Ancak günümüzde kullanıcıların çoğu tarafından kullanılan Android sürümleriyle tamamen ilgilidir.
Firelord

6

Yukarıdaki cevaplar işe yarasa da, bilgisayarınıza bağlı birden fazla cihazınız olması durumunda, uygulamayı bunlardan birinden kaldırmak için aşağıdaki komut kullanılabilir:

adb -s <device-serial> shell pm uninstall <app-package-name>

Cihaz serisini bulmak istiyorsanız, aşağıdaki komutu kullanın:

adb devices -l

Bu size bağlı cihazların bir listesini verecektir. Sol sütun, cihaz dizilerini gösterir.


3

Benim durumumda, adb shell pm list packagesönce Android cihazımda veya emülatörümde yüklü paketlerin / uygulamaların neler olduğunu görmek için bir yapıyorum , ardından istenen paketi / uygulamayı bulduktan sonra bir adb shell pm uninstall -k com.package.name.


3

developer modeAndroid cihazınızda etkinleştirdiğinizi ve cihazınıza bağlı olduğunuzu ve kabuk erişimine sahip olduğunuzu varsayıyorum ( adb shell).

Bu yapıldıktan sonra bu komutla uygulamayı kaldırabilirsiniz pm uninstall --user 0 <package.name>. 0 kök kimliğidir - bu şekilde cihazınızı çok fazla köklendirmenize gerek yoktur.

İşte Huawei P110 lite cihazımda nasıl yaptığımın bir örneği

# gain shell access
$ adb shell

# check who you are
$ whoami
shell

# obtain user id
$ id
uid=2000(shell) gid=2000(shell)

# list packages
$ pm list packages | grep google                                                                                                                                                         
package:com.google.android.youtube
package:com.google.android.ext.services
package:com.google.android.googlequicksearchbox
package:com.google.android.onetimeinitializer
package:com.google.android.ext.shared
package:com.google.android.apps.docs.editors.sheets
package:com.google.android.configupdater
package:com.google.android.marvin.talkback
package:com.google.android.apps.tachyon
package:com.google.android.instantapps.supervisor
package:com.google.android.setupwizard
package:com.google.android.music
package:com.google.android.apps.docs
package:com.google.android.apps.maps
package:com.google.android.webview
package:com.google.android.syncadapters.contacts
package:com.google.android.packageinstaller
package:com.google.android.gm
package:com.google.android.gms
package:com.google.android.gsf
package:com.google.android.tts
package:com.google.android.partnersetup
package:com.google.android.videos
package:com.google.android.feedback
package:com.google.android.printservice.recommendation
package:com.google.android.apps.photos
package:com.google.android.syncadapters.calendar
package:com.google.android.gsf.login
package:com.google.android.backuptransport
package:com.google.android.inputmethod.latin

# uninstall gmail app
pm uninstall --user 0 com.google.android.gms

--user 0kök olarak silme işlemini gerçekleştirmek çok kullanışlıdır
bw_üezi
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.