смотреть sqlite db на устройстве - PullRequest
0 голосов
/ 09 ноября 2010

Когда я отлаживаю свое Android-приложение на эмуляторе, я могу подключиться к нему с помощью оболочки adb и просмотреть файл базы данных с помощью команды sqlite3. Но на реальном устройстве я не могу этого сделать, потому что у меня нет прав root. Есть ли способ сделать это?

Ответы [ 3 ]

0 голосов
/ 09 ноября 2010

Файл вашей базы данных должен находиться в / data / data / YOUR_PACKAGE_NAME / database, попробуйте следующее:

adb shell (Use "-s" option if you have more than one device)
sqlite3  /data/data/YOUR_PACKAGE_NAME/databases/YOUR_DATABASE_NAME

переместите YOUR_DATABASE_NAME в папку / DATA и измените ее правильно (chmod 777 YOUR_DATABASE_NAME).И теперь вы сможете получить файл.Теперь вы можете использовать плагин sqlite3 или SQLite Manager.

Вы можете получить root права с Superuser.

0 голосов
/ 09 ноября 2010

Это проблема с разрешениями на уровне операционной системы, поэтому вам нужно либо переместить базу данных в какое-то место с более свободными разрешениями (не уверен, позволит ли API вам поместить ее на SD-карту, хотя базовые библиотеки должны).

Или же вы могли бы осуществлять мониторинг базы данных из чего-то, у кого есть разрешение на чтение, то есть что-то, работающее от имени пользователя root или, более вероятно, как идентификатор пользователя приложения _ ##, созданный для приложения после установки. Например, - и это не то, что вы должны делать, кроме как на своем устройстве для тестирования - вы можете сделать копию оболочки панели инструментов где-нибудь доступной для записи и выполнения (например, в этом каталоге / sqlite_stmt_journals) и настроить для нее идентификатор пользователя вашего приложения (ваш Само приложение должно будет выполнять копирование и chmod'ing программно). Затем вы можете запустить эту оболочку из оболочки adb и стать идентификатором пользователя приложения.

Или любой процесс, запускаемый программно приложением, будет иметь свой идентификатор пользователя, так что вы также можете прочитать о запуске netcat ("nc", я думаю, даже в официальных сборках Android) в его mini-insecure-telnet-daemon включите режим и запустите его из своего приложения, чтобы, если вы используете оболочку adb или порт adb forward для подключения к порту, где он прослушивается, вы получите оболочку, работающую в качестве идентификатора пользователя приложения.

Или вы можете встроить функцию исследования базы данных в свое приложение, либо прослушивая tcp, либо используя средство отслеживания файлов в качестве триггера, и сохраняйте файл на SD-карте, которую вы можете проверить.

Или вы можете получить root права на свой телефон.

0 голосов
/ 09 ноября 2010

Если вы работаете с Eclipse, попробуйте это: Questoidsqlitemanager .

...