2011-03-30 48 views
13

我需要一种方式来安装或以某种方式访问​​sqlite3在adb shell中。我植根于我的设备。如何从adb shell安装或访问sqlite3

我试图找到一个答案,但关闭的我能想出是: Why do I get a "sqlite3: not found" error on a rooted Nexus One when I try to open a database using the adb shell?

但我不认为这是把我的窗户在Linux系统上sqlite3.exe好主意吗?

那么有可能以某种方式安装sqlite3终端浏览器?

[解决方法]

从不同的意见,有的到处打听在#Android的开发(IRC),我找到了解决办法。首先,我将数据库文件复制到我的桌面。但拳头我不得不安装BusyBox,因为cp不包括在内?!?之后,我遇到了无法从/ sdcard /中拔出或推出的问题。然后,我可以使用/ sdcard /作为“中间站”并拉/推我的分贝。

然后我筋疲力尽!我真的必须有我的SQLite终端探索。然后我得到了启动模拟器从/ system/xbin/sqlite3中取出sqlite二进制文件的想法。然后挂载/系统RW:

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 

,推动源码到/ SD卡/,并从那里将它复制到/ System/XBIN/

现在,它的工作原理:d

+0

“我需要一种方法来安装或以某种方式访问​​adb shell中的sqlite3” - 为什么?如果您已经植根设备,只需下载数据库并使用“windows sqlite3.exe”或更好的SQLite客户端(例如,用于Firefox的SQLite Manager扩展)查看它。你在设备上使用'sqlite3'获得什么? – CommonsWare 2011-03-30 11:54:18

+1

如果你想玩弄你的应用程序的分贝,为什么不把分贝拉出来,并在你的电脑上操纵它 – rajath 2011-03-30 11:55:04

+0

如何在adb外壳中使用我的sqlite3浏览器? – DNRN 2011-03-30 12:00:47

回答

1

我用Rajath的技术... Adb从仿真器/设备“拉”数据库,在其上工作,然后adb“推”回到仿真器设备上。

另请参见: 我使用Android Market的免费SQLite编辑器。我没有扎根我的LG Ally,因此只能用SQLite编辑器在我的SD卡上编辑数据库表。

Rajath建议使用adb来将数据库推入或拉出模拟器/设备。使用windows(或其他)sqlite3程序的数据库上的工作。他并不建议将windows sqlite3安装到Android设备上,恕我直言。

我注意到,java/android“query()”会将实际的SQL命令programmacitacly发送给具有用户输入的程序。我得出结论,sqlite3是在Android的某个地方。

当使用模拟器Dev Tools可用时,在列表底部的方式是终端模拟器。这允许在模拟器中探索Android的文件结构。但是,使用PC上的“adb shell”具有root权限。

祝你好运。仙人掌米奇

1

安装sqlite3的您可以与亚行外壳做到这一点没有问题。

在终端或CMD(假设你已经在亚行路径,而且你的手机有ROOT)类型:

  1. ​​
  2. $ cd data/data/com.nameofyourpackage/databases/
  3. $ ls to find the name of your database
  4. $ sqlite3 nameofyourdb.db

然后您可以使用.tables.schema查看您需要创建相应查询的数据。

+0

我正在获取Permission denied,当我执行ls命令查找数据库时。可能是什么问题? – 2014-11-06 11:44:58

+1

你必须在模拟器上或植根。 – Nick 2014-11-06 14:47:31

+0

能够从主机运行它会很好。例如:'adb shell sqlite3 /data/data/com.android.providers.settings/databases/settings.db'select * from“secure”;''。在我的情况下,它得到堆栈,我必须登录到adb shell并从那里运行它。 – pevik 2015-11-05 11:16:20

-1

您不需要root用户从设备中提取数据库。只需运行以下命令:

adb shell run-as <package-name> "cp databases/<db_name>.db /sdcard/ && exit" 
adb pull /sdcard/<db_name>.db ~/Downloads/ 

从那里,你可以使用sqlite3的不管是什么操作系统您正在使用(http://www.sqlite.org/download.html),或源码的浏览器,如“DB浏览器的SQLite”(http://sqlitebrowser.org/