Я пытаюсь получить доступ к базе данных приложения, которое я разрабатываю непосредственно на своем Nexus, но при попытке выполнить команду "sqlite3" я получаю "разрешение отклонено". Я также попытался запустить adb в корневом модуле, но опять же, разрешение было отклонено на устройстве... Думаю, мне придется делать это с эмулятором, но у меня есть много данных для загрузки, и это было бы в 10 раз быстрее с телефоном на Wi-Fi, чем с эмулятором... Разве кто-то не имеет идеи? спасибо
Разрешение sqlite3 отклонено android
Ответ 1
Типичный.
Я работал над этим раздражением, добавив функцию в свое приложение, которое резервирует (копирует) БД на SD-карту. adb pull
работает с любыми файлами sdcard.
РЕДАКТИРОВАТЬ: исправлена ошибка "adb" (была "sdp".
Ответ 2
Я боролся с этим некоторое время, так что вот мое решение, которое работает на нетронутом устройстве:
#!/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
Ответ 3
Файлы защищены от чтения, вам необходимо укоренить свой телефон или использовать эмулятор.
Ответ 4
У меня была аналогичная проблема. Я вытащил sqlite3 из эмулятора и нажал на свое устройство и не смог запустить его - разрешение было отклонено.
По-видимому, двоичный файл sqlite3 не имел разрешения на выполнение (-rw-rw-rw-), поэтому chmod + x sqlite3 решил проблему.