Android端末でよく使うadbのコマンドとそのコマンドの入力例について覚書。
Android端末にインストールされているパッケージの一覧やインストールされているアプリのアクティビティ名、apkファイルをPCにダウンロードしてAndroid端末にアプリをインストールするコマンドなどを覚書。
Androidのadbコマンドについて
Android端末をUSBケーブルでPCに繋いでadbコマンドで色々操作できるようにするためには、あらかじめPCにadbコマンドを使用できる環境を用意しておく必要があります。
adbコマンドの実行環境の構築方法の詳細については別の記事にまとめてあります。
adbコマンドの実行環境の準備ができていない場合は以下の記事を参考に環境を構築してください。

よく使うadbコマンドとその入力例
よく使うadbコマンドとコマンドの入力例を以下に記載します。
デバイス接続の確認
まずはPCと繋いだAndroid端末がきちんと認識されているか確認するためのadbコマンド。
adb devices
実行結果として"List of devices attached"という表示と接続したAndroid端末を示す識別番号が表示されればOK。
インストールされているアプリケーション(パッケージ)一覧の出力
Android端末にインストールされているパッケージの一覧を出力するadbコマンド。
adb shell pm list package
上記コマンドを実行するとインストールされているパッケージがダーッと表示されてあまり便利じゃないので、実行結果をテキストフィルに保存するようにしたほうが良いです。
インストールされているパッケージ一覧をテキストファイルに出力させる場合のコマンド入力例。
adb shell pm list package > c:¥temp¥package_list.txt
コマンド実行画面には何も表示されませんが、c:\tempフォルダに"package_list.txt"というファイルが作成され、そのファイルにコマンド実行結果が出力されています。
設定で無効化できないアプリケーション(パッケージ)の無効化
設定メニューから"無効化"できないアプリケーションでもadbコマンドで無効化することができます。
無効化については自己責任でお願いします。
場合によっては端末の動作に支障をきたしますので無効化をする際は、よく調べて無効化しても問題ないことを確認した上で行ってください。
adb shell pm block パッケージ名
パッケージ名は上記に紹介したパッケージ一覧で確認することができます。
下記のコマンド入力例では、"Google+"アプリを無効化しています。
adb shell pm block com.htc.socialnetwork.googleplus
コマンド実行後、"Package com.htc.socialnetwork.googleplus new blocked state: true"というメッセージが表示されます。
"blocked state:"が"True"になっていれば無効化されているということになります。
無効化したアプリケーションを有効化するには以下のコマンドを使います。
adb shell pm unblock パッケージ名
無効化した"com.htc.socialnetwork.googleplus"を有効化するコマンドの入力例は以下のとおりです。
adb shell pm unblock com.htc.socialnetwork.googleplus
"blocked state:"が"False"になったことを確認してください。
アプリケーションのパッケージ名を調べる
無効化したいアプリケーションの名前はわかってもそのアプリケーションのパッケージ名がわからないとコマンドが実行できません。
以下は少しマニアックですがアプリケーションのパッケージ名を調べる方法です。
まずAndroid端末で無効化したいアプリケーションを起動する。
アプリケーションを起動したら以下のadbコマンドを実行する。
adb logcat -b events -d | find "am_create_activity"
以下のようにアプリケーションのactivityログが画面に表示される。
例えば、こんな感じ。
I/am_create_activity( 698): [0,1120345512,4,com.android.browser/.BrowserActivit
y,android.intent.action.MAIN,NULL,NULL,270532608]
I/am_create_activity( 698): [0,1125664184,5,jp.cocone.ccnmsg/.activity.CoverAct
ivity,android.intent.action.MAIN,NULL,NULL,270532608]
I/am_create_activity( 698): [0,1125369520,5,jp.cocone.ccnmsg/.activity.main.Mai
nScreenWithPager,NULL,NULL,NULL,67108864]
ログは古いものから順に表示されるので、表示されたログの一番最後の行が今実行したアプリケーションになる。
例えば上記のログであれば、"jp.cocone.ccnmsg"が先ほど起動したパッケージ名を調べたいアプリのパッケージ名となる。
パッケージ名として正しいかどうかは、パッケージの一覧を出力するコマンドを実行してログから抜き出したパッケージ名が存在するか確認すれば良い。
使っているAndroid端末によっては[設定] > [アプリ情報]から目的のアプリをタップすると画面にパッケージ名が表示される場合もあるので一度確認してください。
アプリケーションのアンインストール
Android端末にインストールされているアプリケーションをアンインストールするadbコマンド。
adb uninstall パッケージ名
以下はオムロンの日本語入力アプリ「Wnn Keyboard Lab」を削除した際のコマンド入力例。
adb uninstall jp.co.omronsoft.wnnlab
アプリケーションのアンインストールが正常に完了すると「Success」とメッセージが表示されます。
ちなみに"-k"オプションを付けて実行するとアンインストールしたアプリケーションを再インストールした際に設定を引き継ぐことができるように設定情報を残した状態でアンインストールすることができます。
コマンドの入力例としてはこんな感じです。
adb uninstall -k jp.co.omronsoft.wnnlab
アプリケーションによってはこのコマンドを実行してもアンインストールできない(権限が与えられていないため)場合があります。
例えばキャリアのEメールアプリなどがそうです。
このコマンドを使ってキャリアがプリインストールしている無駄なアプリをアンインストールしようとしても多分あまりアンインストールできるアプリはないと思います。
Android端末をroot化すればroot権限を取得できるのでどんなアプリケーションもアンインストールできますが、root化にはリスクが伴いますので、無効化さえできればいいかなと思います。
アプリケーションのインストール
PCからadbコマンドでAndroid端末にアプリケーションをインストールする場合はあらかじめPC側にインストールしたいアプリケーションの".apk"ファイルを用意しておく必要があります。
実行コマンドは、以下の通り。
adb install apkファイル名(フルパス指定)
例えば、PCのc:\tempフォルダにインストールしたいアプリケーションのapkファイルが保存されている場合のコマンドの入力例は以下のとおりです。
adb install c:¥temp¥xxx.apk
ファイルを使用したアプリケーションのインストールは、たいていはGoogle playで管理されていない"野良アプリ"をインストールする場合や端末がGoogle playに何らかの理由でアクセス出来ない場合くらいだと思うのであまり使用することはないかもしれません。
Android端末のバックアップを取る
Android端末のバックアップを取る場合のadbコマンドです。
adb backup -all
バックアップコマンドのオプションについて
バックアップコマンドにはいくつかのオプションが有ります。
オプション | 内容 |
---|---|
-apk | apkファイルを含めてバックアップする。 |
-noapk | apkファイルを含めずにバックアップする。 |
-shared | SDカードも含めてバックアップする。 |
-noshared | バックアップにSDカードを含めない。 |
-all | 全てのアプリケーションをバックアップ対象とする。 |
-system | バックアップにシステムファイルを含める |
-nosystem | バックアップにシステムファイルを含めない。 |
他にもオプションは有りますが、とりあえずはこれくらい知っておけばいいかなと思います。
私がバックアップコマンドでバックアップを取る際は、「全てのアプリケーションを含む(apkファイルは含めない)、SDカードはバックアップ対象としない、systemファイルも含めない」という指定でバックアップを取るので、実際のコマンド入力例は以下のようになります。
adb backup -f 日付yyyymmdd_端末名.bak -noapk -noshared -all -nosystem
このコマンドを実行するとAndroid端末側でバックアップをするかどうかを確認するメッセージが表示されるので[データをバックアップ]をタップしてください。
暗号化パスワードについては、バックアップを暗号化したい場合はパスワードを入力してから[データをバックアップ]をタップしてください。
adbのバックアップコマンドですが、全てのアプリケーションを含めてバックアップするオプションを指定してもリストアした際にきちんと戻ってくれないものがありました。
正直端末のフルバックアップを取るにはadbコマンドのバックアップは少し不安です。
本当であればroot化してTitaniumを使うのが良いのですが、root化はリスクが伴うのでadbコマンドで我慢しています。
Android端末をバックアップからリストアする
バックアップファイルからAndroid端末にリストアする場合は以下のコマンドを実行します。
adb restore バックアップファイル名(フルパス)
リストアについては、バックアップした時の状態に全て戻るわけではないようです。
Android端末のリブート
Android端末を再起動する場合のコマンドです。
adb reboot
bootloaderを起動する
Android端末のbootloaderを起動する場合のコマンドです。
adb shell reboot bootloader
Android端末が再起動され、bootloaderメニュー画面が起動します。
adbコマンドとその入力例のまとめ
自分がよく使うadbコマンドと過去に使ったことのあるコマンドについて覚書きしました。
adbの実行環境を作るのに少し手間がかかりますが、端末からでは無効にできないアプリの無効化などができたりもしますので知っておくと良いかと思います。
コメント