Androidパッケージのアンインストールダイアログを表示するadbシェルコマンド


126

adb実行していて、デバイスがデバッグモードでシステムに接続されています。

インテント起動を使用してアプリをアンインストールしたい adb shell am start <INTENT>

を使ってアンインストールしたくないしadb uninstall com.company.apppackage、使ってもアンインストールしたくないadb shell pm uninstall com.company.apppackage

android.intent.action.DELETE特定のパッケージのアクションを含むインテントを送信して、ユーザーがプロンプトを表示してプログラムをアンインストールできるようにするにはどうすればよいですか?

回答:


178

次のコマンドを使用してadbから実行できます。

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

2
-dパッケージ:<アプリパッケージ>の意味を教えてください。ドキュメントはありますか?
Rinkal Bhanderi 2012年

11
-dはデータを意味します。-aはアクションを意味します。アクションを「削除」、データを「パッケージ:アプリパッケージ」としてインテントを起動しています。これにより、パッケージのアンインストールを担当するアクティビティが開始され、データで提供されるパッケージをアンインストールしようとします。ドキュメントは、「adb shell am」コマンドを使用して見つけることができます。
pcans 2012年

いいえ、アプリにアクティブ化されたDevicePolicyManagerが含まれている場合は、最初に手動で無効にする必要があります。
pcans 2013年

上記のコマンドは、電話に「このアプリを削除」確認ダイアログを表示します。adb shell pm uninstall -k com.packagename代わりに使用してください。
ViliusK 2016年

1
これはシステムアプリでは機能しません。プロンプトダイアログは表示されますが、アプリはアンインストールされません。
IgorGanapolsky

218

このコマンドをcmdで使用します。

adb shell pm uninstall -k com.packagename

例えば:

adb shell pm uninstall -k com.fedmich.pagexray

この-kフラグは、アプリが削除されても、キャッシュとデータディレクトリを保持するようにパッケージマネージャーに指示します。クリーンアンインストールが必要な場合は、を指定しないでください-k


8
私はこの答えが好きです。これを使用すると、削除取り消しの確認ダイアログボックスが表示されないためです。
joctee 2013年

2
@joctee、私もそうですが、質問では、インテントを使用してアンインストールしたくないと具体的に述べています。
OrhanC1 2013年

@Lohoris、それを機能させました.. nevereverの答えの「+」を削除してください
fedmich

32
@Johnny_D -kフラグは、アプリが削除されても、キャッシュとデータディレクトリを保持するようにパッケージマネージャーに指示します。クリーンアンインストールが必要な場合は、-kを指定しないでください。
Yojimbo 2014

2
このコマンドを使用しようとすると、失敗メッセージが表示され続けます。
IgorGanapolsky

12

ADBを使用すると、次の3つのコマンドのいずれかを使用できます。

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"

PACKAGEを、インストールされているユーザーアプリのパッケージ名に置き換えます。コマンドが正常に機能するには、アプリがデバイス管理者であってはなりません。これらのコマンドはすべて、アプリを削除するためにユーザーの確認を必要とします。

上記のコマンドの詳細は、を使用してamの使用法を確認することで確認できますadb shell am

Elixir 2を使用してこれらのコマンドに関する情報を入手しました(同等のアプリを使用してください)。パッケージインストーラーアプリ(アプリのインストールと削除中に表示されるGUI)のアクティビティと関連するインテントを表示するために使用しました。どうぞ。

私が使用した別の方法は、最終的な確認が表示されるまでGUIを使用してアプリをアンインストールしようとしたことです。確認しませんでしたが、コマンドを実行します

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

特に、バックグラウンドで渡された意図の詳細がわかりました。例:

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

ここで、アクション、データ、フラグ、およびコンポーネントを確認できます-目標に十分です。


質問が古くなっていることを理解しているので、私の回答はあまり関連性がないかもしれません。しかし、それは今日大多数のユーザーが使用しているAndroidバージョンに完全に関連しています。
Firelord、2015

6

上記の回答は機能しますが、コンピューターに複数のデバイスが接続されている場合は、次のコマンドを使用して、そのうちの1つからアプリを削除できます。

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

デバイスのシリアルを確認する場合は、次のコマンドを使用します。

adb devices -l

接続されているデバイスのリストが表示されます。左の列はデバイスのシリアルを示しています。


3

私の場合、adb shell pm list packages最初にAndroidデバイスまたはエミュレーターにインストールされているパッケージ/アプリを確認し、次に目的のパッケージ/アプリを見つけたら、を実行しadb shell pm uninstall -k com.package.nameます。


3

私はあなたdeveloper modeがあなたのAndroidデバイスで有効にし、あなたがあなたのデバイスに接続されていて、シェルアクセス(adb shell)を持っていると仮定します。

これが完了したら、このコマンドでアプリケーションをアンインストールできますpm uninstall --user 0 <package.name>0はルートIDです。これにより、デバイスをあまりルート化する必要がなくなります。

これが私がHuawei P110 liteでどのように実行したかの例です

# 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 0根は非常に便利であるとして、削除を実行する
bw_üezi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.