观看设备
sqlite的分贝当调试模拟器上我的Android应用程序,我可以连接到它与亚行外壳和查看与sqlite3的命令我的数据库文件。但在真实的设备上,我不能这样做,因为我没有root权限。有什么办法可以做到这一点?观看设备
你的数据库文件必须在/数据/数据/ YOUR_PACKAGE_NAME /数据库,试试这个:
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插件。
您可以超级用户身份登录。
这是一个操作系统级别的权限问题,因此您必须将数据库移动到具有更轻松权限的位置(不确定api是否允许您将其放在SD卡上,但底层库应该)。
否则,你可以做一些从数据库监控是有权读取存在,这是说一些以root身份运行或更有可能的应用_ ##安装在应用程序创建的用户ID。例如 - 除了在设备上进行测试之外,这不是您应该做的事情 - 您可以制作工具箱外壳的副本,以便编写和执行(如/ sqlite_stmt_journals目录),并将其设置为您的应用程序的用户标识(您的应用程序本身必须以编程方式执行复制和chmod程序)。然后,您可以从adb shell运行该shell并成为应用程序的用户标识。
或者应用程序以编程方式启动的任何进程都会拥有它的用户标识,因此您还可以在运行netcat(“nc”,我想即使打包在官方的android版本中)中读取它的mini-insecure-telnet-守护进程模式,并从您的应用程序启动,以便如果您使用adb shell或adb端口转发连接到侦听的端口,您将获得一个作为应用程序用户标识运行的shell。
或者你可以建立数据库的探索功能集成到你的应用程序,无论是监听TCP或使用文件守望者作为触发和倾倒的SD卡,你可以检查上的文件。
或者你可以根植你的手机。
我不使用偏食 – Dmitriy 2010-11-09 12:05:18
,只有拥有模拟器工作。 OP想要从实际设备读取数据库的方式。 – 2010-11-09 13:17:27
项目删除? – max4ever 2011-12-16 14:22:03