Android - adbコマンドでapkのインストール、削除、

adbコマンドでapkファイルのインストール、削除、方法を紹介します。

adb install APK_FILE

次のコマンドは、PC上の YouTube.apkファイルをデバイスにインストールします。

$ adb install YouTube.apk
Performing Streamed Install
Success

デバイスのapkのインストール

次のコマンドは、デバイスの /data/local/tmp/YouTube.apkをインストールします。

$ adb shell pm install /data/local/tmp/YouTube.apk
Success

このコマンドで /sdcard/YouTube.apkのファイルをインストールしようとすると、次のようにアクセス権の問題で失敗します。

$ adb shell pm install /sdcard/YouTube.apk
avc:  denied  { read } for  scontext=u:r:system_server:s0 tcontext=u:object_r:fuse:s0 tclass=file permissive=0
System server has no access to read file context u:object_r:fuse:s0 (from path /sdcard/YouTube.apk, context u:r:system_server:s0)
Error: Unable to open file: /sdcard/YouTube.apk
Consider using a file under /data/local/tmp/
Error: Can't open file: /sdcard/YouTube.apk

/data/local/tmp/パスの下のapkはadb shellからアクセス可能です。

デバイスに保存されたapkをインストールするには、 /data/local/tmpにapkを移動させたの背後に設置する必要があります。

adb uninstall PACKAGE_NAME

次のコマンドは、デバイスにインストールされたパッケージ com.google.android.youtubeを削除します。

$ adb uninstall com.google.android.youtube
Success

パッケージ名を確認

adb uninstallコマンドでパッケージを削除するには、package nameを知っている必要があります。

次のコマンドは、デバイスにインストールされたすべてのパッケージの名前を出力します。アプリ名とパッケージ名が似てあれば、ここで見つけることができます。

$ adb shell pm list packages

package:com.google.android.networkstack.tethering
package:com.android.cts.priv.ctsshim
package:com.google.android.youtube
package:com.android.internal.display.cutout.emulation.corner
package:com.google.android.ext.services
package:com.android.internal.display.cutout.emulation.double
package:com.android.providers.telephony
package:com.android.dynsystem
package:com.android.theme.icon.pebble
...

パッケージ名がアプリの名前と似ていない場合は、上記の方法でパッケージ名を探すのは容易ではありません。

こういうときは、アプリを起動させて、下記のようなログキャットコマンドで実行されるアプリのActivity名と同様のpackage nameを推測することができます。

$ adb shell logcat -b events | grep wm_on_re
07-11 14:44:34.246   923   923 I wm_on_resume_called: [152199755,com.android.settings.FallbackHome,RESUME_ACTIVITY]
07-11 14:44:37.114  1045  1045 I wm_on_resume_called: [218164884,com.google.android.apps.nexuslauncher.NexusLauncherActivity,RESUME_ACTIVITY]
07-11 14:49:55.441  4941  4941 I wm_on_resume_called: [224219331,com.google.android.apps.youtube.app.WatchWhileActivity,RESUME_ACTIVITY]
codechachaCopyright ©2019 codechacha