Получить базу данных SQLite из приложения Android

Мне нужно получить базу данных SQLite из приложения Android из устройства Genesis, где пользователь заселен вручную.

Как я могу создать другое приложение или любой другой способ получить этот db и сохранить на месте, где я могу получить?

obs: устройство имеет root

Спасибо

Ответ 1

Шаги от.../платформенных инструментов Android на cmd:

1) тип adb shell

2) run-as com.your.package

3) тип ls

cache

databases

lib

Вы можете найти здесь Database Здесь... Также вам не понадобилось root Устройство

Надеюсь, это поможет вам...

Ответ 2

Если у вас есть устройство, прикрепленное к коробке с adb на PATH, вы можете использовать эту команду:

adb -d shell 'run-as your.package.name.here cat /data/data/your.package.name.here/databases/your_db_name_here.sqlite > /sdcard/recovered_db.sqlite'

Или вы можете использовать Ecliplse DDMS file explorer.

Ответ 3

После того, как вы пробовали десятки команд, которые не работали для меня на Marshmallow, я нашел этот, который работает (по крайней мере для отладочных приложений):

adb shell "run-as your.package.name cp /data/data/your.package.name/databases/you-db-name  /sdcard/file_to_write"

Тогда вы просто можете просмотреть БД с помощью aSQLiteManager, например.

Ответ 4

Вы можете использовать этот script.

humpty.sh

Вы должны знать имя пакета приложения и имя базы данных sqlite. Вы можете проверить доступные базы данных.

$ adb shell
$ run-as <package-name> 
$ ls databases/

Сбросить базу данных или другой файл.

./humpty.sh -d <package-name> databases/<db-name>

Ответ 5

Вы можете включить библиотеку Stetho в ваше приложение,

http://facebook.github.io/stetho/

который позволит вам получить доступ к вашей базе данных с помощью инструментов Chrome Web Debug

или используйте следующую оболочку script:

#!/bin/bash
echo "Requesting data from Android"
adb backup -f data.ab -noapk YOUR.APK.NAME
echo "Decoding...."
dd if=data.ab skip=24 iflag=skip_bytes | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf -
rm data.ab
echo "Done"

`` `

Ни один из вышеперечисленных методов не требует, чтобы ваше устройство было внедрено, а последнее работает даже в приложениях, которые вы сами не пишете, если ApplicationManifest.xml не содержит "backup = false"