web-dev-qa-db-ja.com

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

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

adb Shell am start <INTENT>を使ったインテント起動でアプリをアンインストールしたい

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

特定のパッケージに対してAndroid.intent.action.DELETEアクションを指定してインテントを送信し、ユーザーにプロンプ​​トを表示させてプログラムをアンインストールする方法を教えてください。

126
Rinkal Bhanderi

あなたはこのコマンドを使ってadbからそれをすることができます:

adb Shell am start -a Android.intent.action.DELETE -d package:<your app package>
176
pcans

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

adb Shell pm uninstall -k com.packagename

例えば:

adb Shell pm uninstall -k com.fedmich.pagexray

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

215
neverever415

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をインストールしたユーザーアプリのパッケージ名に置き換えます。コマンドを正常に機能させるには、アプリをデバイス管理者にしないでください。これらのコマンドはすべて、アプリを削除するためにユーザーの確認を要求します。

上記コマンドの詳細は、adb Shell amを使用してamの用法をチェックすることで知ることができます。

Elixir 2 (同等のアプリを使う)を使ってそれらのコマンドに関する情報を得ました。私はそれを使用して、Package Installerアプリ(アプリのインストールと削除の間に表示される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}

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

12
Firelord

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

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

デバイスのシリアル番号を調べたい場合は、次のコマンドを使用してください。

adb devices -l

これにより、接続されているデバイスの一覧が表示されます。左の列はデバイスのシリアル番号を示しています。

6
sttaq

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

3
warfreak92

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

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

これは私が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
2
Lukasz Dynowski