产生原因:在手机上 /system/xbin 文件夹下面没有sqlite3文件
解决办法:一般在模拟器下面是有的,所以要做的就是从模拟器中将sqlite3拖到手机设备上。
1. 首选挂载手机,使 /system/ 成为可读写状态 (rw)
$ adb shell
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
2. 打开另外一个终端,将sqlite3文件从目标目录拖到 /system/xbin 目录下面
$ adb push E:/sqlite3 /system/xbin
注:前提是我将模拟器里面的sqlite3文件放在E盘的根目录下面。现在查看手机的 /system/xbin 目录下面就发现有sqlite文件。
3. 现在重新打开上一个终端,改它的二进制许可;并且挂载更改 /system/ 为只读状态 (ro)。
# chmod 4755 /system/xbin/sqlite3
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
至此,我们就可以用sqlite3 查看手机上的数据库文件。
# sqlite3 /data/data/com.mobisync.android/databases/sync.db
SQLite version 3.6.22
Enter ".help" for instructions
sqlite> .tables
android_metadata file sync_status
注:这里有英文的解决方法,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?