2010-06-10 225 views
12

我试图访问我直接在我的Nexus上开发的应用程序的数据库,但是当我试图执行“sqlite3”命令时,我得到“权限被拒绝”。 我也尝试在root mod中启动adb,但是又一次在设备上拒绝了权限...我想我必须使用模拟器来做到这一点,但是我有很多要加载的数据,并且它已经是10使用Wifi上的手机比仿真器快几倍... 除非有人有任何想法? 谢谢sqlite3权限被拒绝android

回答

3

典型。

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

编辑:。固定的“亚行”拼写错误(是的“SDP”

+0

是的,这是一个很好的把戏。我会去做。谢谢 – Sephy 2010-06-11 10:52:58

+0

什么是sdp?你可以发布一个链接到sdp吗?谢谢。 – 2012-03-25 16:22:25

+0

@kilaka:谢谢 - 我修正了我的错误 - 应该改为:“使用adb pull命令” - Android Debug Bridge。 – 2012-03-25 20:17:40

4

文件被读保护,你需要以root您的手机或使用仿真器

0

我也有类似的问题,我拉sqlite3从模拟器,并推入我的设备,并无法运行它 - 权限被拒绝。

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

8

我挣扎了一段时间,所以这里是我的soluti在一个无根设备上工作:

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

谢谢@eggbert。它非常有用,并为我工作(使用Ubuntu 10.04),并尝试在无根设备上使用可调试应用程序。 – user755499 2013-01-15 09:08:23

+0

这有效,但在我的手机(HTC Desire)中,数据库文件末尾没有'.db'扩展名。 – HRJ 2013-01-21 05:10:50

+0

非常好,................ – 2013-05-24 07:46:09