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 package : <앱 패키지>의 의미를 알려줄 수 있습니까? 어떤 문서가 있습니까?
Rinkal Bhanderi

11
-d는 데이터를 의미합니다. -a는 행동을 의미합니다. 조치가 "삭제"이고 데이터가 "패키지 : 앱 패키지"인 인 텐트를 시작합니다. 그러면 패키지 제거를 담당하는 활동이 시작되고 데이터에 제공된 패키지를 제거하려고합니다. "adb shell am"명령을 사용하여 설명서를 찾을 수 있습니다.
pcans

아니요, 앱에 활성화 된 DevicePolicyManager가 포함 된 경우 먼저 수동으로 비활성화해야합니다.
pcans

위의 명령은 전화기에서이 앱 삭제 확인 대화 상자를 보여줍니다. adb shell pm uninstall -k com.packagename대신 사용하십시오 .
ViliusK

1
시스템 앱에서는 작동하지 않습니다. 프롬프트 대화 상자가 나타나지만 앱은 제거되지 않습니다.
IgorGanapolsky

218

cmd에서이 명령을 사용하십시오.

adb 쉘 오후 제거 -k com.packagename

예를 들면 다음과 같습니다.

adb shell pm uninstall -k com.fedmich.pagexray

-k플래그 앱이 제거 되더라도 주위의 캐시 및 데이터 디렉토리를 유지하기 위해 패키지 관리자를 알려줍니다. 완전히 제거하려면을 지정하지 마십시오 -k.


8
이 답변이 더 좋습니다. 이 옵션을 사용하면 삭제 취소 확인 대화 상자가 표시되지 않습니다.
joctee 2016 년

2
@ joctee, 나도 그래도 질문은 그들이 의도를 사용하여 제거하고 싶지 않다고 구체적으로 말했습니다.
OrhanC1

@Lohoris, 유무가 만든이 ... 메이크업은 당신이 neverever의 대답에 "+"제거 작업
fedmich

32
@Johnny_D -k 플래그는 패키지 관리자에게 앱이 제거 된 경우에도 캐시 및 데이터 디렉토리를 유지하도록 지시합니다. 완전히 제거하려면 -k를 지정하지 마십시오.
Yojimbo

2
이 명령을 사용하려고 할 때 계속 실패 메시지가 나타납니다.
IgorGanapolsky

12

ADB를 사용하면 다음 세 가지 명령 중 하나를 사용할 수 있습니다.

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

6

위의 답변은 작동하지만 컴퓨터에 여러 장치가 연결된 경우 다음 명령을 사용하여 장치 중 하나에서 앱을 제거 할 수 있습니다.

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당신이 당신의 안드로이드 장치에서 활성화 하고 장치에 연결되어 있고 쉘 액세스 권한이 있다고 가정합니다 ( adb shell).

이 작업이 완료되면이 명령으로 응용 프로그램을 제거 할 수 있습니다 pm uninstall --user 0 <package.name>. 0은 루트 ID입니다. 이렇게하면 기기를 너무 루트 할 필요가 없습니다.

다음은 Huawei P110 라이트에서 수행 한 방법의 예입니다.

# 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.