为了账号安全,请及时绑定邮箱和手机立即绑定

当我尝试使用adb shell打开数据库时,为什么在根植的Nexus One上出现

/ 猿问

当我尝试使用adb shell打开数据库时,为什么在根植的Nexus One上出现

慕雪6442864 2019-11-25 15:33:18

# sqlite3 /data/data/com.moodme.android/databases/moodme

sqlite3 /data/data/com.moodme.android/databases/moodme

sqlite3: not found


查看完整描述

3 回答

?
Qyouu

在Android模拟器上,sqlite3位于中/system/xbin。有没有/system/xbin在歌Nexus One(Android 2.2的)。因此,我怀疑sqlite3Nexus One上未安装。


查看完整回答
反对 回复 2019-11-25
?
一只斗牛犬

作为一种选择(虽然可能不是安全的,甚至不是一个好主意),您可以始终将sqlite3二进制文件上传到/system/bin对我有用的文件中:


首先让mount /system/允许读/写(rw)


$ adb shell

$ su

# mount -o remount,rw /system

在另一个终端中,将目录(cd)更改到哪里sqlite3,然后将其推送


$ ls

sqlite3

$ adb push sqlite3 /sdcard/

现在回到另一个外壳,让我们复制和更改二进制文件的权限


# cat /sdcard/sqlite3 > /system/bin/sqlite3

# chmod 4755 /system/bin/sqlite3

现在让我们挂载/system/为只读(ro)


# mount -o remount,ro /system

现在我们可以从shell使用sqlite3了:


# sqlite3 /data/data/com.telly/databases/fun.db

SQLite version 3.7.4

Enter ".help" for instructions

sqlite> .tables

android_metadata  lulz               

注意:我正在使用“ SuperOneClickv1.6.5-ShortFuse”随附的sqlite3二进制文件


您总是可以sqlite3从模拟器中提取二进制文件:


启动仿真器,然后从终端启动


$ adb pull /system/xbin/sqlite3

如果您像我一样懒惰,可以在此处下载ICS,或者在Jelly Bean 之前或之前下载,然后在此处下载。


确保在您的Android版本上使用正确的版本,否则可能会eloc_library[1306]: 14446 cannot locate 'sqlite3_enable_load_extension'...在执行时遇到类似错误


查看完整回答
反对 回复 2019-11-25
?
一只名叫tom的猫

从evelio的答案来看,我在将sqlite3文件推送到/ system / bin时遇到了问题。因此,我将其推送到了/ sdcard。


在此线程中,我找到了正确的解决方案(对Kila的回答): 如何在运行了Gingerbread的扎根NexusOne上安装sqlite3


$ adb push sqlite3 /sdcard/

$ adb shell

$ su

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

# dd if=/sdcard/sqlite3 of=/system/bin/sqlite3

# chmod 4755 /system/bin/sqlite3

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

它可以在我的三星银河S II 2.3.3上运行。


查看完整回答
反对 回复 2019-11-25

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信