sqlite3权限被拒绝android

时间:2010-06-10 09:37:10

标签: android sqlite

我正在尝试访问我正在我的Nexus上直接开发的应用程序的数据库,但是当我尝试执行“sqlite3”命令时,我得到了“权限被拒绝”。 我也尝试在root mod中启动adb,但同样,设备上的权限被拒绝... 我想我将不得不使用模拟器,但我有很多数据需要加载,而且Wifi上的手机比模拟器快10倍... 除非有人有任何想法? 感谢

4 个答案:

答案 0 :(得分:8)

我挣扎了一段时间,所以这是我的解决方案,适用于无根设备:

#!/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

答案 1 :(得分:4)

文件被读取保护,您需要根据手机或使用模拟器。

答案 2 :(得分:3)

典型。

我通过在我的应用程序中添加一项功能来解决这个烦恼,该功能将数据库备份(复制)到SD卡。 adb pull适用于任何SD卡文件。

编辑:修正了“adb”拼写错误(是“sdp”。

答案 3 :(得分:0)

我有类似的问题。我从模拟器中取出sqlite3并将其推入我的设备并且无法运行它 - 权限被拒绝。

显然sqlite3二进制文件没有执行权限(-rw-rw-rw-)所以chmod + x sqlite3解决了这个问题。