Android - adb 명령어로 System 앱 삭제, 설치

adb 명령어로 System app을 삭제하거나 설치하는 방법을 소개합니다.

system app 삭제 : adb shell pm uninstall --user USER_ID PACKAGE

다음 명령어는 User 0에 설치된 com.google.android.youtube 패키지를 삭제합니다. --user 옵션을 생략하면 User 0으로 설정됩니다.

$ adb shell pm uninstall --user 0 com.google.android.youtube
Success

다음 명령어로 삭제가 되었는지 확인할 수 있습니다. installed=false는 삭제되었다는 의미입니다.

시스템 앱이기 때문에 Apk 파일이 삭제되지 않지만, 시스템이 삭제로 인식하도록 패키지 정보를 변경하였습니다.

$ adb shell dumpsys package com.google.android.youtube

Packages:
  Package [com.google.android.youtube] (3d1fcc2):
    userId=10121
    pkg=Package{b77ead3 com.google.android.youtube}
    codePath=/product/app/YouTube
    flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP KILL_AFTER_RESTORE RESTORE_ANY_VERSION LARGE_HEAP ]
    ....
    User 0: ceDataInode=0 installed=false hidden=false suspended=false distractionFlags=0 stopped=true notLaunched=true enabled=0 instant=false virtual=false

User 0은 System의 사용자를 의미하며, 멀티유저가 생성되면 User 10, User 11 처럼 다른 사용자 공간이 생성됩니다.

system app 설치 : adb shell pm install-existing --user USER_ID PACKAGE

다음 명령어는 User 0에 삭제된 com.google.android.youtube 패키지를 설치 상태로 변경합니다.

$ adb shell pm install-existing --user 0 com.google.android.youtube
Package com.google.android.youtube installed for user: 0

다음 명령어로 패키지가 설치되었는지 확인할 수 있습니다. installed=true는 설치된 상태라는 의미입니다.

$ adb shell dumpsys package com.google.android.youtube

Packages:
  Package [com.google.android.youtube] (3d1fcc2):
    userId=10121
    pkg=Package{b77ead3 com.google.android.youtube}
    codePath=/product/app/YouTube
    flags=[ SYSTEM HAS_CODE ALLOW_CLEAR_USER_DATA ALLOW_BACKUP KILL_AFTER_RESTORE RESTORE_ANY_VERSION LARGE_HEAP ]
    ....
    User 0: ceDataInode=0 installed=true hidden=false suspended=false distractionFlags=0 stopped=true notLaunched=true enabled=0 instant=false virtual=false
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha