実機のdata/dataに保存したファイルを取得する方法をメモ
data/dataの中身を参照する事はadbのrun-asコマンドで可能だが、ファイル自体をローカルPCへpull取得する方法が結構微妙なのでメモ。
中身を参照はcatコマンドなどで参照できるのでいいが、sqliteのDBファイルの場合、中身をcatで見てもよくわからないので、ローカルに取得したくなる。
中身を確認する方法はこちら参照
adb pullコマンドについて
まずdata/dataでない場合はpullコマンドを使う事で簡単に取得できる
adb pull [端末上のファイル名] [PCのファイル名]
ただ権限がないユーザのためdata/dataのデータをpullすることはできない。そのため権限のあるsuと同様なrun-asで権限のあるユーザに切り替えることで参照まで可能。ただこの場合もまだデータをpullはできない。
そのため一度pull可能な場所にファイルを移動コピーする事でpullを実行すると良い。adbではcpコマンドは使えないためファイルの中身を参照してその値を別ファイル(pullできる場所)へ書き出すという方法が良い。
data/dataのファイルを取得する方法
まずはファイルをdata/dataからpullできる場所へファイル移動 ※ファイル書き出し
adb -d shell "run-as [パッケージ名] cat [カレントから取得したいファイル名] > /sdcard/test"
”adb shell” コマンドでアクセスした後に実行しても良いが、adbの[-d]オプションを付ける事で端末にコマンドを直接送る事ができる。
”run-as” コマンドで次に権限を取得。そしてファイルの中身をcatコマンドで取得し リダイレクト[>]でファイルに書き込みすれば完了。
今回はsdcard/内のtestファイル(新規作成)を出力先に指定している。
※ [カレントから取得したいファイル名] は data/data/[パッケージ名]/ の直下のファイル指定を絶対パス指定で行うこと
端末内の全パッケージ名取得
pm list packages
※adb shellでアクセスしてること
あとはpullして完了
adb pull /sdcard/test .
これを使ってメリットがあるのはdbファイルかプレファレンスファイル。
後この方法で取得できるのはデバッグモードのapkのみなのでリリース版では無理。
実機デバッグでdata/dataの中身を確認する手順をメモ
エミュレータの場合はDDMSで確認できるが実機の場合確認する事が出来ないので方法をメモ
※端末によりアクセスできない端末もある
android付属のshellを使用する
•接続
adb shell
•パッケージフォルダの中身にアクセス
run-as [パッケージディレクトリ指定]
上記の実行でディレクトリを確認できる。
あとは通常のshell同様にlsコマンドでディレクトリ中身確認、cdコマンドで移動が可能
Android端末のインストールしているapkファイルを取得する方法をメモ
sdkに組み込まれているadb.exeを使う
APKファイル取得方法
1. 端末をUSBデバッグモードにする
2. 端末をUSBで接続する
3. APKファイルパスを取得
adb shell pm list packages -f | grep [パッケージ名一部でよい]
4. APKファイル取得
adb pull [上記取得したパッケージpath]
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年5月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ