나는 한 adb
, 실행 및 장치 모드 디버깅을 내 시스템에 연결되어
인 텐트 시작을 사용하여 앱을 제거하고 싶습니다. adb shell am start <INTENT>
사용하여 제거 adb uninstall com.company.apppackage
하고 싶지 않으며 사용하여도 제거 하고 싶지 않습니다.adb shell pm uninstall com.company.apppackage
android.intent.action.DELETE
사용자가 프롬프트를보고 프로그램을 제거 할 수 있도록 특정 패키지에 대한 조치를 의도적으로 보내려면 어떻게 해야합니까?
답변
다음 명령을 사용하여 adb에서 수행 할 수 있습니다.
adb shell am start -a android.intent.action.DELETE -d package:<your app package>
답변
cmd에서이 명령을 사용하십시오.
adb 쉘 오후 제거 -k com.packagename
예를 들면 다음과 같습니다.
adb shell pm uninstall -k com.fedmich.pagexray
-k
플래그 앱이 제거 되더라도 주위의 캐시 및 데이터 디렉토리를 유지하기 위해 패키지 관리자를 알려줍니다. 완전히 제거하려면을 지정하지 마십시오 -k
.
답변
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}
여기서 목표에 충분한 조치, 데이터, 플래그 및 구성 요소를 볼 수 있습니다.
답변
위의 답변은 작동하지만 컴퓨터에 여러 장치가 연결된 경우 다음 명령을 사용하여 장치 중 하나에서 앱을 제거 할 수 있습니다.
adb -s <device-serial> shell pm uninstall <app-package-name>
장치 일련 번호를 찾으려면 다음 명령을 사용하십시오.
adb devices -l
연결된 장치 목록이 나타납니다. 왼쪽 열에는 장치 일련 번호가 표시됩니다.
답변
필자의 경우 adb shell pm list packages
먼저 Android 장치 또는 에뮬레이터에 설치된 패키지 / 앱이 무엇인지 확인한 다음 원하는 패키지 / 앱을 찾으면 adb shell pm uninstall -k com.package.name
.
답변
나는 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