설정의 App Info에 들어가면, 앱을 활성화/비활성화시키는 버튼가 있습니다. 이 버튼을 누르면 앱은 활성화/비활성화되어 동작하거나 동작 안할 수 있습니다.

그런데, 일반적으로 시스템 앱은 이 메뉴가 제공되지 않습니다. 하지만, ADB를 사용하면 시스템 앱도 활성화/비활성화 시킬 수 있습니다.

1. ADB로 앱 비활성화

아래 명령어는 일반 사용자(Owner 사용자)에 설치된 package name 앱을 비활성화 시키는 명령어입니다.

  • --user <user id> 옵션으로 특정 유저 설정 (User 0은 Owner User의 ID)

결과로 Success가 보이면 성공한 것이고, 실패하면 에러 메시지가 출력됩니다.

$ adb shell pm disable-user --user 0 com.example.sample
Success

2. ADB로 앱 활성화

아래 명령어는 일반 사용자(Owner 사용자)에 설치된 package name 앱을 활성화 시키는 명령어입니다.

  • --user <user id> 옵션으로 특정 유저 설정 (User 0은 Owner User의 ID)
$ adb shell pm enable --user 0 com.example.sample
Success

3. 앱이 활성화/비활성화 되었는지 확인하는 방법

adb shell dumpsys package <package name>을 입력했을 때, 패키지의 정보가 출력되는데, User 0에서 enabled=1으로 되어있으면 User 0에 설치된 패키지의 상태가 현재 활성화되었다는 의미입니다. 비활성화의 경우 아래와 같이 enabled 값이 2/3/4 중에 하나로 되어있는지 보시면 됩니다. (만약 User 0이 아닌, 다른 유저라면, 그 User의 enabled 값을 비교하시면 됩니다.)

  • enabled=0 : default로, 활성화라고 생각하면 됨
  • enabled=1 : 활성화
  • enabled=2 or 3 or 4 : 비활성화
$ adb shell dumpsys package com.example.app

Packages:
  Package [com.example.app] (3d1fcc2):
    userId=10121
    ....
    User 0: ceDataInode=122910 installed=true hidden=false suspended=false distractionFlags=0 stopped=false notLaunched=false enabled=1 instant=false virtual=false