Разрешение sqlite3 запрещено Android - PullRequest
12 голосов
/ 10 июня 2010

Я пытаюсь получить доступ к базе данных приложения, которое я разрабатываю, прямо на моем Nexus, но я получаю «разрешение отказано» при попытке выполнить команду «sqlite3». Я также пытался запустить ADB в корневой мод, но опять же, разрешение на устройстве отказано ... Я думаю, мне придется сделать это с эмулятором, но у меня много данных для загрузки, и это было бы в 10 раз быстрее с телефоном на Wi-Fi, чем эмулятор ... Разве у кого-то есть идеи? спасибо

Ответы [ 4 ]

8 голосов
/ 24 ноября 2012

Я некоторое время боролся с этим, поэтому вот мое решение, которое работает на некорневом устройстве:

#!/bin/sh

# fill these values in
PACKAGE=com.example.android
DB=something.db 

# copy db to sdcard using package permission (using cat because no cp    command)
adb shell "run-as $PACKAGE cat /data/data/$PACKAGE/databases/$DB >   /sdcard/$DB"

# pull file from sd card
adb pull /sdcard/$DB

# do something with it (need to install sqlitebrowser obviously)
sqlitebrowser $DB
4 голосов
/ 25 января 2011

Файлы защищены от чтения, вам нужно получить root права на свой телефон или использовать эмулятор.

3 голосов
/ 10 июня 2010

Типичный.

Я обошел эту досаду, добавив в свое приложение функцию резервного копирования (копирования) БД на SD-карту.adb pull работает против любых файлов SDCard.

РЕДАКТИРОВАТЬ: исправлено неправильное написание "adb" (было "sdp".

0 голосов
/ 25 июня 2012

У меня была похожая проблема. Я вытащил sqlite3 из эмулятора, запустил устройство и не смог его запустить - разрешение отклонено.

Видимо, двоичный файл sqlite3 не имел разрешения на выполнение (-rw-rw-rw-), поэтому chmod + x sqlite3 решил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...