Android開発ツールadb便利すぎ

Android開発ツールadb便利すぎ

2 特徴

  • Androidの開発環境に含まれているツール
  • パッケージ管理や、バックアップ、ファイル転送、パッケージの転送、パッケージインストール、アンインストール、シェルの起動ナドナド色々できちゃいます。超便利!

3 インストール方法

3.1 UbuntuとかDebian

  • 以下のコマンドでインストール可能
sudo apt install adb
  • Android Studioをインストールしても含まれます

3.2 Windowsユーザー

  • Andorid Sdudioをインストールして、adb.exeをファイル検索で探してください。
  • 絶対パスで命令実行したくない場合、adb.exeの入っているディレクトリにパスを通す

4 事前準備

  • Android側の設定画面でusbデバッグを有効に設定する必要があります
  • 設定ツールをひらいて → システム → 詳細設定 → 開発者向けオプション → USBデバッグをオンに変更

5 スクリーンショット画像の一括転送

  • 以下の内容の copyScreenshots.sh を作成
#!/bin/bash
#adb shell find /sdcard/Movies/Screencasts/ -iname "*.mp4" | while read X
adb shell find /sdcard/Pictures/Screenshots/ -iname "Screenshot*"  -type f | while read X
do
  echo "adb pull \"$X\""
done
  • 以下のコマンドを実行
bash ./copyScreenshots.sh | bash
  • 以下のようにtmp.shを生成してから、エディタで内容を確認、必要なら修正して、実行するのでもOK
bash ./copyScreenshots.sh > tmp.sh
vi tmp.sh
bash ./tmp.sh

6 動画の一括転送

  • 以下の内容の copyMovies.sh を作成
#!/bin/bash
adb shell find /sdcard/Movies/Screencasts/ -iname "*.mp4" | while read X
do
  echo "adb pull \"$X\""
done
  • 以下のコマンドを実行
bash ./copyMovies.sh | bash
  • 以下のようにtmp.shを生成してから、エディタで内容を確認、必要なら修正して、実行するのでもOK
bash ./copyMovies.sh > tmp.sh
vi tmp.sh
bash ./tmp.sh

7 バックアップ

7.1 フルバックアップ

  • 私は以下のコマンドで実行してます
  • umidigi-f1-play-20190502.002.full.bk がバックアップファイルの名前、これは好きな名前にしてください
  • Android側の設定画面でusbデバッグを有効に設定する必要があります
adb backup -apk -shared -all -f umidigi-f1-play-20190502.002.full.bk
  • USB接続した時にUSBデバッグを承認するか確認画面がでるので、OKをタップ
  • 上の命令を入れると、Android側でパスワードいれて、バックアップするをタップすると操作開始
  • バックアップ終わるまでに操作しないようにしないと、私の場合途中で中断してる感じしました

7.2 アプリデータのバックアップ

7.2.1 パッケージ名の調査

adb shell pm list packages -f > info.txt
grep -i antiy info.txt
  • これで調べると私の場合以下でした

 

/data/app/yio.tro.antiyoy.android

7.2.2 アプリデータのバックアップ

adb backup yio.tro.antiyoy.android
  • 上のコマンドを実行すると backup.ab ファイルが生成されました
  • コマンド実行にはAndroid端末で開発モードをオンにする、承認操作、暗証番号を入れてのバックアップ承認操作が必要になりました

7.2.3 バックアップデータの解凍

  • ツールを使うことで backup.ab ファイルを解凍することができました

7.2.4 ツールのurl

java -jar abe.jar unpack backup.ab backup.tar
  • backup.tarをunarコマンドで解凍しました(tar xvf backup.tarでも解凍可能)
unar backup.tar

8 adbコマンドを利用したapkファイルの吸出しについて(Android)

  • adbはAndroidの開発環境をインストールするとインストールされるコマンド

8.1 パッケージ名の調査

adb shell pm list packages -f > info.txt
grep -i antiy info.txt
  • これで調べると私の場合以下でした

 

/data/app/yio.tro.antiyoy.android-yjqt8P2F_63BojDlz7eGeQ==/base.apk

8.2 apkの吸出し

  • 以下のコマンドでbase.apkを抜き出し出来ました。
  • 抜き出したapkを再度インストールするコマンドもあります
adb pull /data/app/yio.tro.antiyoy.android-yjqt8P2F_63BojDlz7eGeQ==/base.apk

9 スクリーンショットの転送

  • 以下のコマンドで一時ファイル作成せずにホスト側に画像ファイルを作成可能
adb exec-out screencap -p > screen.png

10 USBではなくネットで接続

10.1 接続手順

  1. usbで接続して
  2. 以下のコマンドで5555ポートでポート指定
adb tcpip 5555
  1. usbケーブルを外して以下のコマンド実行
adb connect device_ip_address
  1. テストでスクショ転送して接続確認
adb exec-out screencap -p > screen.png

10.2 端末側でのポートクローズ

  • 以下のコマンドで閉じれました
adb kill-server
  • 閉じたことを確認
adb devices

11 続きを追記してきます。

  • 初版 2019/09/26
  • スクショ、ネット接続追記 2019/09/27

著者: NM Max

Created: 2019-09-27 金 19:13

Validate