2020年10月2日金曜日

AndroidアプリのDBファイルを取り出してみた!

Xamarin.Formsでモバイルアプリを開発しています。
デバッグしているAndroid端末からSQLiteのデータベースファイルを取り出す方法のメモです。

まず、DBファイルの場所を確認します。
Visual Studioの「ツール」-「Android」から「Android Adb コマンド プロンプト」を起動します。
シェルを起動し、パッケージ名を指定してrun-asコマンドを実行します。


> adb shell
(デバイス名):/ $ run-as jp.co.aimek.xxxxx


リリースビルドされたアプリでは


(デバイス名):/ $ run-as jp.co.aimek.xxxxx
run-as: package not debuggable: jp.co.aimek.xxxxx


となるので、デバッグ版が必要です。

アプリのフォルダを確認します。


(デバイス名):/data/data/jp.co.aimek.xxxxx $ ls
cache code_cache files shared_prefs


filesフォルダの中に入ります。


(デバイス名):/data/data/jp.co.aimek.xxxxx $ cd files
(デバイス名):/data/data/jp.co.aimek.xxxxx/files $ ls -a
. .. .__override__ .config .local


.localの中をさらにたどっていくと、DBファイルが見つかりました。


(デバイス名):/data/data/jp.co.aimek.xxxxx/files $ cd .local
(デバイス名):/data/data/jp.co.aimek.xxxxx/files/.local $ ls
share

(デバイス名):/data/data/jp.co.aimek.xxxxx/files/.local $ cd share
(デバイス名):/data/data/jp.co.aimek.xxxxx/files/.local/share $ ls
XXXXX.db3


シェルを終了し、adbコマンドでDBファイルを取り出します。


> adb exec-out run-as jp.co.aimek.xxxxx cat files/.local/share/XXXXX.db3 > XXXXX.db3


またいつか、どこかで。

0 件のコメント:

コメントを投稿