サーチ…


前書き

ADB(Android Debug Bridge)は、エミュレータインスタンスまたは接続されたAndroidデバイスと通信するために使用されるコマンドラインツールです。

ADBの概要

このトピックの大部分はadbシェルに分割されました

備考

adbシェルに移動されたサンプルのリスト:

接続されたデバイスの冗長なリストを印刷する

adbに接続されているすべてのデバイスの冗長なリストを取得するには、端末に次のコマンドを記述します。

adb devices -l

出力例

List of devices attached
ZX1G425DC6             device usb:336592896X product:shamu model:Nexus_6 device:shamu
013e4e127e59a868       device usb:337641472X product:bullhead model:Nexus_5X device:bullhead
ZX1D229KCN             device usb:335592811X product:titan_retde model:XT1068 device:titan_umtsds
A50PL                  device usb:331592812X
  • 最初の列はデバイスのシリアル番号です。 emulator- - で始まる場合、このデバイスはエミュレータです。
  • usb: USBサブシステム内のデバイスのパス。
  • product:デバイスの製品コード。これはメーカー固有のもので、上記のArchosデバイスA50PL場合に見られるように、空白にすることができます。
  • model:デバイスモデル。 product 、空にすることができます。
  • device:デバイスコード。これはメーカー固有のものでもあり、空でもかまいません。

デバイス情報を読み込む

端末に次のコマンドを書きます:

adb shell getprop

利用可能なすべての情報がキーと値のペアの形式で出力されます。

特定のキーの名前をコマンドに追加することによって、特定の情報を読み取ることができます。例えば:

adb shell getprop ro.product.model

ここでは、あなたが猫が得られるいくつかの興味深い情報があります:

  • ro.product.model :デバイスのモデル名(例:Nexus 6P)
  • ro.build.version.sdk :デバイスのAPIレベル(例:23)
  • ro.product.brand :デバイスのブランド(Samsungなど)

完全な出力例

[dalvik.vm.dex2oat-Xms]: [64m]
[dalvik.vm.dex2oat-Xmx]: [512m]
[dalvik.vm.heapsize]: [384m]
[dalvik.vm.image-dex2oat-Xms]: [64m]
[dalvik.vm.image-dex2oat-Xmx]: [64m]
[dalvik.vm.isa.x86.variant]: [dalvik.vm.isa.x86.features=default]
[dalvik.vm.isa.x86_64.features]: [default]
[dalvik.vm.isa.x86_64.variant]: [x86_64]
[dalvik.vm.lockprof.threshold]: [500]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [0]
[dev.bootcomplete]: [1]
[gsm.current.phone-type]: [1]
[gsm.defaultpdpcontext.active]: [true]
[gsm.network.type]: [UMTS]
[gsm.nitz.time]: [1469106902492]
[gsm.operator.alpha]: [Android]
[gsm.operator.iso-country]: [us]
[gsm.operator.isroaming]: [false]
[gsm.operator.numeric]: [310260]
[gsm.sim.operator.alpha]: [Android]
[gsm.sim.operator.iso-country]: [us]
[gsm.sim.operator.numeric]: [310260]
[gsm.sim.state]: [READY]
[gsm.version.ril-impl]: [android reference-ril 1.0]
[init.svc.adbd]: [running]
[init.svc.bootanim]: [stopped]
[init.svc.console]: [running]
[init.svc.debuggerd]: [running]
[init.svc.debuggerd64]: [running]
[init.svc.drm]: [running]
[init.svc.fingerprintd]: [running]
[init.svc.gatekeeperd]: [running]
[init.svc.goldfish-logcat]: [stopped]
[init.svc.goldfish-setup]: [stopped]
[init.svc.healthd]: [running]
[init.svc.installd]: [running]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.logd]: [running]
[init.svc.logd-reinit]: [stopped]
[init.svc.media]: [running]
[init.svc.netd]: [running]
[init.svc.perfprofd]: [running]
[init.svc.qemu-props]: [stopped]
[init.svc.ril-daemon]: [running]
[init.svc.servicemanager]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.ueventd]: [running]
[init.svc.vold]: [running]
[init.svc.zygote]: [running]
[init.svc.zygote_secondary]: [running]
[net.bt.name]: [Android]
[net.change]: [net.dns2]
[net.dns1]: [10.0.2.3]
[net.dns2]: [10.0.2.4]
[net.eth0.dns1]: [10.0.2.3]
[net.eth0.dns2]: [10.0.2.4]
[net.eth0.gw]: [10.0.2.2]
[net.gprs.local-ip]: [10.0.2.15]
[net.hostname]: [android-5e1af924d72dc578]
[net.qtaguid_enabled]: [1]
[net.tcp.default_init_rwnd]: [60]
[persist.sys.dalvik.vm.lib.2]: [libart.so]
[persist.sys.profiler_ms]: [0]
[persist.sys.timezone]: [Europe/Vienna]
[persist.sys.usb.config]: [adb]
[qemu.gles]: [1]
[qemu.hw.mainkeys]: [0]
[qemu.sf.fake_camera]: [none]
[qemu.sf.lcd_density]: [560]
[rild.libargs]: [-d /dev/ttyS0]
[rild.libpath]: [/system/lib/libreference-ril.so]
[ro.allow.mock.location]: [0]
[ro.baseband]: [unknown]
[ro.board.platform]: []
[ro.boot.hardware]: [ranchu]
[ro.bootimage.build.date]: [Thu Jul 7 15:56:30 UTC 2016]
[ro.bootimage.build.date.utc]: [1467906990]
[ro.bootimage.build.fingerprint]: [Android/sdk_google_phone_x86_64/generic_x86_64:6.0/MASTER/3038907:userdebug/test-keys]
[ro.bootloader]: [unknown]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [emulator]
[ro.build.date]: [Thu Jul  7 15:55:30 UTC 2016]
[ro.build.date.utc]: [1467906930]
[ro.build.description]: [sdk_google_phone_x86_64-userdebug 6.0 MASTER 3038907 test-keys]
[ro.build.display.id]: [sdk_google_phone_x86_64-userdebug 6.0 MASTER 3038907 test-keys]
[ro.build.fingerprint]: [Android/sdk_google_phone_x86_64/generic_x86_64:6.0/MASTER/3038907:userdebug/test-keys]
[ro.build.flavor]: [sdk_google_phone_x86_64-userdebug]
[ro.build.host]: [vpak15.mtv.corp.google.com]
[ro.build.id]: [MASTER]
[ro.build.product]: [generic_x86_64]
[ro.build.tags]: [test-keys]
[ro.build.type]: [userdebug]
[ro.build.user]: [android-build]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [3038907]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.release]: [6.0]
[ro.build.version.sdk]: [23]
[ro.build.version.security_patch]: [2015-10-01]
[ro.com.google.locationfeatures]: [1]
[ro.config.alarm_alert]: [Alarm_Classic.ogg]
[ro.config.nocheckin]: [yes]
[ro.config.notification_sound]: [OnTheHunt.ogg]
[ro.crypto.state]: [unencrypted]
[ro.dalvik.vm.native.bridge]: [0]
[ro.debuggable]: [1]
[ro.hardware]: [ranchu]
[ro.hardware.audio.primary]: [goldfish]
[ro.kernel.android.checkjni]: [1]
[ro.kernel.android.qemud]: [1]
[ro.kernel.androidboot.hardware]: [ranchu]
[ro.kernel.clocksource]: [pit]
[ro.kernel.console]: [0]
[ro.kernel.ndns]: [2]
[ro.kernel.qemu]: [1]
[ro.kernel.qemu.gles]: [1]
[ro.opengles.version]: [131072]
[ro.product.board]: []
[ro.product.brand]: [Android]
[ro.product.cpu.abi]: [x86_64]
[ro.product.cpu.abilist]: [x86_64,x86]
[ro.product.cpu.abilist32]: [x86]
[ro.product.cpu.abilist64]: [x86_64]
[ro.product.device]: [generic_x86_64]
[ro.product.locale]: [en-US]
[ro.product.manufacturer]: [unknown]
[ro.product.model]: [Android SDK built for x86_64]
[ro.product.name]: [sdk_google_phone_x86_64]
[ro.radio.use-ppp]: [no]
[ro.revision]: [0]
[ro.runtime.firstboot]: [1469106908722]
[ro.secure]: [1]
[ro.serialno]: []
[ro.wifi.channels]: []
[ro.zygote]: [zygote64_32]
[selinux.reload_policy]: [1]
[service.bootanim.exit]: [1]
[status.battery.level]: [5]
[status.battery.level_raw]: [50]
[status.battery.level_scale]: [9]
[status.battery.state]: [Slow]
[sys.boot_completed]: [1]
[sys.sysctl.extra_free_kbytes]: [43200]
[sys.sysctl.tcp_def_init_rwnd]: [60]
[sys.usb.config]: [adb]
[sys.usb.state]: [adb]
[vold.has_adoptable]: [1]
[wlan.driver.status]: [unloaded]
[xmpp.auto-presence]: [true]

WiFi経由でADBをデバイスに接続する

標準のADB構成には、物理​​デバイスへのUSB接続が含まれます。
必要に応じて、TCP / IPモードに切り替えて、WiFi経由でADBに接続することもできます。

ルーツのないデバイス

  1. 同じネットワークを利用する:

    • お使いのデバイスとコンピュータが同じネットワーク上にあることを確認してください。
  2. デバイスをUSBケーブルでホストコンピュータに接続します。

  3. ネットワーク経由でデバイスにadbを接続する:

    デバイスがUSB経由でadb接続されている間は、次のコマンドを実行してポート上のTCP / IP接続を待ち受けます(デフォルトは5555)。

    • adb tcpip <port>入力しadb tcpip <port> (TCP / IPモードに切り替えます)。
    • ターゲットデバイスからUSBケーブルを外します。
    • adb connect <ip address>:<port>と入力します(ポートはオプションで、デフォルトは5555です)。

    例えば:

    adb tcpip 5555
    adb connect 192.168.0.101:5555
    

    デバイスのIPがわからない場合は、次の操作を実行できます。

    • お使いのデバイスのWiFi設定でIPを確認してください。
    • ADBを使用してIPを発見する(USB経由)
      1. USB経由でデバイスをコンピュータに接続する
      2. コマンドラインで、 adb shell ifconfigを入力し、デバイスのIPアドレスをコピーします

    USB経由でデバッグに戻すには、次のコマンドを使用します。

    adb usb
    

    また、Android Studioにプラグインをインストールすることで、WiFi経由でADBに接続することもできます。これを行うには、 [設定]> [プラグインとリポジトリの参照]に移動し、 ADB WiFiを検索してインストールし、Android Studioを再度開きます。次の図に示すように、ツールバーに新しいアイコンが表示されます。デバイスをUSB経由でホストコンピュータに接続し、このAndroidWiFiADBアイコンをクリックします。デバイスが接続されているかどうかを示すメッセージが表示されます。接続されたら、USBのプラグを抜くことができます。

    新しいツールバーアイコン


ルーツ付きデバイス

注: ルートされいるデバイスの中に 、簡単にPlayストアのADB WiFi Appを使用してこれを有効にすることができます。また、特定のデバイス(特にCyanogenMod ROMを搭載しているデバイス)では、このオプションは、[設定]の[開発者オプション]にあります。これを有効にすると、 adb connect <ip address>:<port>実行するだけで、 adbに接続するために必要なIPアドレスとポート番号が与えられます。

ルーツを持つデバイスがあるのにUSBケーブルにアクセスできない場合

このプロセスは次の答えで詳しく説明されています: http : //stackoverflow.com/questions/2604727/how-can-i-connect-to-android-with-adb-over-tcp/3623727#3623727最も重要なコマンド以下に示します。

デバイスの端末を開き、次のように入力します。

su
setprop service.adb.tcp.port <a tcp port number>
stop adbd
start adbd

例えば:

setprop service.adb.tcp.port 5555

あなたのコンピュータで:

adb connect <ip address>:<a tcp port number>

例えば:

adb connect 192.168.1.2:5555

オフにするには:

setprop service.adb.tcp.port -1
stop adbd
start adbd

タイムアウトを避ける

デフォルトでは、 adbは5000ミリ秒後にタイムアウトします。これは、低速WiFiや大規模なAPKなど、一部のケースで発生する可能性があります。

Gradleの設定を単純に変更すると、このトリックを行うことができます:

android {
    adbOptions {
        timeOutInMs 10 * 1000
    }
}

デバイスから(に)ファイルをプル(プッシュ)する

次のコマンドを実行して、デバイスからファイルを取得(ダウンロード)することができます。

adb pull <remote> <local>

例えば:

adb pull /sdcard/ ~/

また、コンピュータからデバイスにファイルをプッシュ(アップロード)することもできます:

adb push <local> <remote>

例えば:

adb push ~/image.jpg /sdcard/

デバイスからデータベースを取得する例

sudo adb -d shell "run-as com.example.name cat /data/da/com.example.name /databases/DATABASE_NAME  > /sdcard/file

デバイスを再起動する

次のコマンドを実行すると、デバイスを再起動できます。

adb reboot

ブートローダを再起動するには、次のコマンドを実行します。

adb reboot bootloader

リカバリモードで再起動する:

adb reboot recovery

デバイスが最初にシャットダウンされないことに注意してください。

Wi-Fiをオン/オフにする

オンにする:

adb shell svc wifi enable

消す:

adb shell svc wifi disable

利用可能なデバイスを表示する

コマンド:

 adb devices

結果の例:

List of devices attached
emulator-5554  device
PhoneRT45Fr54  offline
123.454.67.45  no device

最初の列 - デバイスのシリアル番号

2列目の接続ステータス

Androidのドキュメント

IPでデバイスを接続する

Android端末の端末でこれらのコマンドを入力します

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

その後、 CMDADBを使用して、次のコマンドを使用して接続できます

adb connect 192.168.0.101.5555

あなたはそれを無効にして、ADBをUSBでリッスンすることができます

setprop service.adb.tcp.port -1
stop adbd
start adbd

コンピュータから、すでにUSBアクセスがある場合(ルートは必要ありません)

すでにUSBをお持ちの場合は、Wi-Fiを使用するように切り替えることもさらに簡単です。デバイスがUSB経由で接続されているコンピュータのコマンドラインから、コマンドを実行します

adb tcpip 5555
adb connect 192.168.0.101:5555

192.168.0.101をデバイスIPに置き換える

adbの開始/停止

ADBを開始する:

adb kill-server

ADBを停止する:

adb start-server

ログキャストを見る

logcatをadbコマンドとして実行することも、エミュレータまたは接続されたデバイスのシェルプロンプトで直接実行することもできます。 adbを使用してログ出力を表示するには、SDKプラットフォームのtools-tools /ディレクトリに移動し、次のコマンドを実行します。

$ adb logcat

あるいは、デバイスへのシェル接続を作成し、次に実行することができます。

$ adb shell
$ logcat

1つの便利なコマンドは次のとおりです。

adb logcat -v threadtime

これにより、日付、呼び出し時間、優先度、タグ、およびメッセージを発行するスレッドのPIDとTIDが長いメッセージ形式で表示されます。


フィルタリング

Logcatログはログレベルと呼ばれます。

V - 冗長、 D - デバッグ、 I - 情報、 W - 警告、 E - エラー、 F - 致命的、 S - サイレント

logcatをログレベルでフィルタリングすることもできます。たとえば、デバッグレベルのみを出力する場合は次のようにします。

adb logcat *:D

Logcatはパッケージ名でフィルタリングできますが、もちろんログレベルフィルタと組み合わせることもできます:

adb logcat <package-name>:<log level>

grepを使用してログをフィルタリングすることもできます(logcatの出力はここでフィルタリングします )。

adb logcat | grep <some text>

Windowsでは、findstrを使用してfilterを使用できます。たとえば、次のようになります。

adb logcat | findstr <some text>

代替ログバッファ[main | events | radio]を表示するには、 -bオプションをlogcatしてlogcatを実行します。

adb logcat -b radio

出力をファイルに保存する:

adb logcat > logcat.txt

ファイルを見ながら出力を保存する:

adb logcat | tee logcat.txt

ログのクリーニング:

adb logcat -c

マルチデバイス設定の特定のデバイスへの直接ADBコマンド

1.デバイスをシリアル番号でターゲティングする

-sオプションの後にデバイス名を指定して、 adbコマンドを実行するデバイスを選択します。 -sオプションは、コマンドの前に 1行目にする必要があります。

adb -s <device> <command>

例:

adb devices

List of devices attached
emulator-5554       device
02157df2d1faeb33    device

adb -s emulator-5554 shell

例2:

adb devices -l

List of devices attached
06157df65c6b2633    device usb:1-3 product:zerofltexx model:SM_G920F device:zeroflte
LC62TB413962        device usb:1-5 product:a50mgp_dug_htc_emea model:HTC_Desire_820G_dual_sim device:htc_a50mgp_dug

adb -s usb:1-3 shell

2. 1つのデバイスタイプのみが接続されている場合、デバイスをターゲットにする

実行中のエミュレータのみを-eオプションで指定できます

adb -e <command>

または、接続されている唯一のUSBデバイスを-d

adb -d <command>

デバイスのディスプレイからスクリーンショットとビデオを撮影する(キットキットのみ)

スクリーンショット:オプション1(純粋なadb)

shell adbコマンドを使用すると、デバイスの組み込みシェルを使用してコマンドを実行できます。 screencapシェルコマンドは、デバイス上に現在表示されているコンテンツをキャプチャし、 /sdcard/screen.png / /sdcard/screen.png特定のイメージファイルに保存します。

adb shell screencap /sdcard/screen.png

次に、pullコマンドを使用し 、デバイスからコンピュータの現在のディレクトリにファイルをダウンロードできます。

adb pull /sdcard/screen.png

スクリーンショット:オプション2(高速)

次の1行を実行します。

(マシュマロとそれ以前):

adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png

(Nougat以降):

adb shell screencap -p > screen.png

-pフラグは、 screencapコマンドの出力をstdoutにリダイレクトします。これがパイプされたPerl式は、マシュマロとそれ以前のいくつかの行末問題を解決します。ストリームは現在のディレクトリ内のscreen.pngという名前のファイルに書き込まれます。詳細については、 この記事この記事参照してください。

ビデオ

これはKitKatとADBのみでのみ機能します。これはKitkat以下では動作しません。デバイスの画面の記録を開始するには、次のコマンドを実行します。

adb shell screenrecord /sdcard/example.mp4このコマンドは、デフォルト設定を使用してデバイスの画面の記録を開始し、デバイス上の/sdcard/example.mp4ファイルのファイルに結果のビデオを保存します。

録音が完了したら、コマンドプロンプトウィンドウでCtrl + C(Linuxの場合はz)を押して、画面録画を停止します。指定した場所に画面録画ファイルがあります。画面の録画は、お使いのコンピュータではなく、デバイスの内蔵ストレージに保存されます。

デフォルトの設定では、デバイスの標準画面解像度を使用し、4Mbpsのビットレートでビデオをエンコードし、最大録画時間を180秒に設定します。使用できるコマンドラインオプションの詳細については、次のコマンドを実行してください。

adb shell screenrecord –help 、これはデバイスを根絶することなく動作します。お役に立てれば。

アプリケーションデータのクリア

adbを使用して特定のアプリのユーザーデータを消去することができます。

adb shell pm clear <package>

これは、電話機の設定を閲覧し、アプリを選択し、データ消去ボタンを押すのと同じです。

  • pmはデバイス上のパッケージマネージャを呼び出します
  • clearは、パッケージに関連するすべてのデータを削除します。

放送を送信する

BroadcastReceiveradb BroadcastReceiverを送信することは可能です。

この例では、アクションcom.test.app.ACTIONとstring extraをバンドル'foo'='bar'ブロードキャストを送信してい'foo'='bar'

adb shell am broadcast -a action com.test.app.ACTION --es foo "bar"

文字列だけでなく、他のサポートされている型もバンドルできます。

--ez - boolean
--ei - 整数
--el - long
--ef - フロート
--eu - uri
--eia - int配列( '、'で区切られた)
--ela - 長い配列( '、'で区切られた)
--efa - 浮動小数点配列( '、'で区切られた)
--esa - 文字列配列( '、'で区切られています)

インテントを特定のパッケージ/クラスに送信するには、 -nまたは-pパラメータを使用できます。
パッケージに送信する:

-p com.test.app

特定のコンポーネント( com.test.app package SomeReceiverクラス)への送信:

-n com.test.app/.SomeReceiver

有用な例:

アプリケーションのインストールと実行

APKファイルをインストールするには、次のコマンドを使用します。

adb install path/to/apk/file.apk

アプリが存在していて再インストールしたい場合

adb install -r path/to/apk/file.apk 

アプリケーションをアンインストールするには、そのパッケージを指定する必要があります

adb uninstall application.package.name

提供されたパッケージ名(またはアプリ内の特定のアクティビティ)でアプリを起動するには、次のコマンドを使用します。

adb shell am start -n adb shell am start <package>/<activity>

たとえば、Wazeを起動するには:

adb shell am start -n adb shell am start com.waze/com.waze.FreeMapAppActivity

バックアップ

adb backupコマンドを使用してデバイスをバックアップすることができます。

adb backup [-f <file>] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] 
           [-system|nosystem] [<packages...>]

-f <filename> 現在のディレクトリにbackup.abを作成し ます。

-apk|noapkバックアップを有効/無効にするデフォルト: -noapk

-obb|noobb追加ファイルのバックアップを有効または無効にするデフォルト: -noobb

-shared|nosharedバックアップされていないバックアップデバイスの共有ストレージ/ SDカードの内容デフォルト: -noshared

-allバックアップインストールされているすべてのapllications

-system|nosystemシステムアプリケーションのデフォルトが含まれます。

<packages>バックアップするパッケージのリスト(例:com.example.android.myapp)(- -allが指定されている場合は不要)


すべてを含む完全なデバイスバックアップの場合は、

adb backup -apk -obb -shared -all -system -f fullbackup.ab

注:フルバックアップを実行すると時間がかかることがあります。


バックアップを復元するには、

adb restore backup.ab

LinuxシステムにADBをインストールする

あなたのディストリビューションのリポジトリを使って端末でLinuxシステムにAndroid Debugging Bridge(ADB)をインストールする方法。

aptを介してUbuntu / Debianシステムにインストールする:

sudo apt-get update
sudo apt-get install adb

yum経由でFedora / CentOSシステムにインストールする:

sudo yum check-update
sudo yum install android-tools

portageを使ってGentooシステムにインストールする:

sudo emerge --ask dev-util/android-tools

zypperを使ってopenSUSEシステムにインストールする:

sudo zypper refresh
sudo zypper install android-tools 

pacmanを使ってArchシステムにインストールする:

sudo pacman -Syyu
sudo pacman -S android-tools

Android 6.0上のユーザーから実行時許可を必要とするすべてのアクセス許可を一覧表示する

adb shell pm list permissions -g -d 

アプリの内部データ(データ/データ/ )をデバイス上に

まず、アプリがAndroidManifest.xmlにバックアップできることを確認します。つまり、 android:allowBackupfalseはありません。

バックアップコマンド:

adb -s <device_id> backup -noapk <sample.package.id>

ddコマンドでtarを作成する:

dd if=backup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" > backup.tar

タールを抽出する:

tar -xvf backup.tar

その後、抽出されたコンテンツを表示することができます。

アクティビティスタックを表示する

adb -s <serialNumber> shell dumpsys activity activities

watch unixコマンドと一緒に使用すると非常に便利です:

watch -n 5 "adb -s <serialNumber> shell dumpsys activity activities | sed -En -e '/Stack #/p' -e '/Running activities/,/Run #0/p'"

アプリのキャッシュファイルを表示およびプルする

このコマンドを使用して、自分のデバッグ可能なapkのファイルをリストすることができます。

adb shell run-as <sample.package.id> ls /data/data/sample.package.id/cache

そして、このスクリプトをキャッシュから引き出すために、これは最初にsdcardにコンテンツをコピーし、最後にそれを取り出して削除します:

#!/bin/sh
adb shell "run-as <sample.package.id> cat '/data/data/<sample.package.id>/$1' > '/sdcard/$1'"
adb pull "/sdcard/$1"
adb shell "rm '/sdcard/$1'"

次に、次のようにファイルをキャッシュから取り出すことができます:

./pull.sh cache/someCachedData.txt

ADBを介してデータベースファイルを取得する

sudo adb -d shell "run-as com.example.name cat /data/da/com.example.name /databases/STUDENT_DATABASE  > /sdcard/file


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow