Android - adbコマンドでSystemアプリの削除、インストール

adbコマンドでSystem appを削除したり、インストールする方法を紹介します。

システムアプリ uninstall: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のように、他のユーザー空間が生成されます。

システムアプリ install: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
codechachaCopyright ©2019 codechacha