ADB를 통한 시스템 앱 활성화 및 비활성화


49

시스템 앱을 활성화 / 비활성화하는 adb 명령이 있습니까?

감사

답변:


67

예. 명령은 pm disable <package name>입니다. 이렇게하려면 루트 여야합니다.

쉘을 열고 루트를 얻으십시오.

PC> adb shell
shell@hammerhead:/ $ su

활성화 된 모든 앱을 나열하고 "계산기"별로 필터링 :

root@hammerhead:/ # pm list packages -e | grep 'calculator'
package:com.android.calculator2

앱 비활성화 :

root@hammerhead:/ # pm disable com.android.calculator2
Package com.android.calculator2 new state: disabled

비활성화 된 모든 앱 나열 :

root@hammerhead:/ # pm list packages -d
package:com.android.calculator2
package:com.google.android.apps.inputmethod.hindi
package:jp.co.omronsoft.iwnnime.ml
package:com.google.android.inputmethod.pinyin
package:com.google.android.inputmethod.korean
package:com.google.earth
root@hammerhead:/ #

주목할만한 다른 것들 :

  1. 필자의 테스트에서 이러한 방식으로 비활성화 된 앱은 설정> 앱 목록에서 완전히 사라집니다. "사용 안함"탭에 표시되지 않는 것 같습니다
  2. 로 앱을 다시 활성화 할 수 있습니다 pm enable <package name>. 사실, 이것은 내 경험에 따라 다시 활성화 하는 유일한 방법 인 것 같습니다 .

사용 중지 할 때 선택한 앱을 숨기는 것을 피할 수 있습니까?
안드로이드 개발자

1
@androiddeveloper 아니요 . UI를 포함 하여 앱을 완전히 숨기는 것이 전체 아이디어입니다.
Izzy

@Izzy 알겠습니다. 비활성화하지 않고 숨기는 것을 의미하는 반대의 일을 할 수 있습니까?
안드로이드 개발자

이론적으로 그렇습니다. 하지만 어떻게해야할지 모르겠습니다. 상점에 설치 될 때 아무 곳에도 나타나지 않는 "앱"이 있습니다 (예 : 다른 앱에서 추가 설정 만 제공하거나 특정 서비스에 대해 "계정 관리자"와 같은 "보이지 않는 서비스"를 제공하는 등). 어쩐지; 그러나 나는 그것이 앱 Manifest이나 그와 비슷한 일을해야한다고 두려워합니다 (Android 개발자가 아니므로 말할 수 없습니다).
Izzy

Playstore 페이지에서 앱을 활성화 할 수 있습니다.
정보 화면

7

@eldarerathis의 답변 외에도 특정 사용자에 대한 앱을 비활성화 할 수 있습니다. 이 방법을 사용하여 사용자 설정 화면에 나열되지 않은 제한된 사용자로부터 일부 앱을 제거했습니다. 모두가에서 명령 adb shell. 변경하려면 루트 액세스 권한이 필요합니다.

먼저, 사용자의 아이디를 얻습니다 :

$ pm list users
Users:
  UserInfo{0:Alice:13} running
  UserInfo{11:Bob:18} running

그때

$ pm disable --user 11 com.cyanogenmod.filemanager
Package com.cyanogenmod.filemanager new state: disabled-user

다시 활성화하려면

# pm enable --user 11 com.cyanogenmod.filemanager

이 예에서 Alice는 파일 관리자를 사용할 수 있지만 Bob은 사용할 수 없습니다.

hide대신 비슷한 작업을 수행 할 수 있습니다 disable. 어느 것이 가장 좋은지 잘 모르겠지만 이 답변을 참조하십시오 . 의 반대는 hide입니다 unhide(재부팅이 필요할 수 있음 unhide).

로 패키지를 나열 할 수 있습니다 pm list pacakges --user 11. 부여 -e목록 활성화 패키지 또는 -d당신은 장애인 사람을보고 싶어합니다. 숨겨진 패키지에 대한 필터가없는 것 같습니다.

FWIW, 나는 Amazon Fire (KFFOWI)에서 CM 12.1로 Lollipop에서 위를 시도했습니다.


3

앱이 시스템 앱이든 타사 앱 (사용자 설치)이든 관계없이 작동합니다.


관련 앱의 패키지 이름을 얻으 려면 앱의 패키지 이름 결정 에서 내 대답을 참조 하고 을 사용하여 이러한 명령을 실행하십시오 ( 루트 액세스 필요 ).

adb 쉘
수
pm disable PACKAGE #은 앱을 비활성화하고 설정-> 응용 프로그램에서 숨 깁니다. 
pm hide PACKAGE # 대안; Android Lollipop 이상
cmd package는 PACKAGE # 대안을 일시 중단합니다. 패키지는 실행기 및 설정 앱에 계속 표시되지만 사용할 수는 없습니다. 장치 관리 기능

PACKAGE 앱의 패키지 이름을 나타냅니다

응용 프로그램을 복원하려면 대체 비활성화활성화 , 숨기기숨기기 취소정지정지 해제 상기 명령 및 루트 권한으로 실행합니다.

Android KitKat 이상이고 루트 액세스 권한이없는 경우 PC에서 를 사용 하여이 명령을 실행하십시오.

Android KitKat 용 adb shell pm block 패키지 #
adb shell pm hide 패키지 # Android Lollipop 전용
adb shell pm disable-user PACKAGE #`pm hide`의 대안; 안드로이드 롤리팝 이상; 이것은 설정 앱을 통해 앱을 비활성화하는 것과 같습니다.

앱을 복원하려면 :

adb shell pm, Android KitKat 용 패키지 # 차단 해제
adb shell pm Android Lollipop 용 패키지 번호 숨기기 해제 및 이전에 'pm hide'를 사용한 경우에만
adb shell pm은 Android Lollipop 이상에서 패키지 번호를 활성화합니다.

변경은 즉시 이루어집니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.