如何设置Android手机的sqlite3命令环境
2015-04-30 08:33
381 查看
1、在PC环境下启动一个模拟器(不是手机)
2、查看模拟器 /systen/xbin是否有sqlite3命令
3、把模拟器 /system/xbin/sqlite3命令文件从模拟器拷到PC上
4、关闭模拟器,把Android手机连接到PC
5、获取Android手机 /system 文件夹的读取权限
6、把PC上的e:/eclipse/sqlite3文件拷到Android手机的/system/xbin/目录下
然后执行上面的 push
若是还是不行就直接 到eclipse DDMS filter explore 下面 /system/xbin
把所用的数据直接从电脑上拖到 /system/xbin 下面
7、修改Android真机/system/xbin/sqlite3命令的权限
然后输入sqlite3
进入到sqlite就可以了。
As an alternative (may not be secure or even good idea though) you can always upload the
Works on rooted Nexus-S running Android ICS 4.0.4 using the sqlite3 binary from SuperOneClick
shortfuse.org/?page_id=2
download.cnet.com/SuperOneClick/3000-2094_4-75447027.html
On the Nexus 4 do the following :
Notice the folder is /system/xbin and the chmod is 777
This works on my nexus 4 with kitkat , sqlite3 binary got from the emulator /system/xbin folder
To install sqlite3 on NON-ROOTED devices, here is a way that has been proved working on my Galaxy S3, FYR.
If you are lazy like me you can
download one right here for ICS or before or
for Jelly Bean and later here
From the answer of evelio, I had problem to push the sqlite3 file to /system/bin. So, instead, I have pushed it to the /sdcard.
In this thread I found the right Solution (answer of Kila): How can I install sqlite3 on rooted NexusOne runs Gingerbread
It works on my Samsung Galaxy S II with 2.3.3
Titanium Backup installed, Set the variable
%SQLITE3 to "/data/data/com.keramidas.TitaniumBackup/files/sqlite3".
I actually copied the titanium backup sqlite3 binary to system/xbin and it has been working for me since.
A symlink is an alternative solution, if you want the binary in your PATH (/system/xbin) and your system-rom is nearly full.
For example there is only 200KB free space left in the /system of my Nexus 7 after installing Lollipop + SuperSu + Busybox.
Symlink has only 53 B and the binary has 300 KB.
Use the attached sqlite3...extract & copy it to the /system/xbin folder...give execute permissions [0755] and it should work
http://forum.xda-developers.com/attachment.php?attachmentid=2246063&d=1378751634 : 2012-03-20 (3.7.11)
After copying file, you need to reboot.
SQLite 3.8.6:
22-5.1-Lollipop
SQLite 3.8.4.3:
21-5.0-Lollipop
20-Android L Developer Preview
SQLite 3.7.11:
19-4.4-KitKat
18-4.3-Jelly Bean
17-4.2-Jelly Bean
16-4.1-Jelly Bean
SQLite 3.7.4:
15-4.0.3-Ice Cream Sandwich
14-4.0-Ice Cream Sandwich
13-3.2-Honeycomb
12-3.1-Honeycomb
11-3.0-Honeycomb
SQLite 3.6.22:
10-2.3.3-Gingerbread
9-2.3.1-Gingerbread
8-2.2-Froyo
SQLite 3.5.9:
7-2.1-Eclair
4-1.6-Donut
3-1.5-Cupcake
Note: Android SDK level links show where the android.database.sqlite package has changed.
Where there is no link (e.g. SDK level 17), indicates no changes to that package.
Note: Here are some anomalies (list by no means exhaustive):
SQLite 3.7.13 (instead of 3.7.11):
LG Optimus L70 MS323 LGMS323|KOT49I.MS32310b (19-4.4-KitKat)
LG Optimus G E975 LG-E975|JZO54K (16-4.1-Jelly Bean)
LG G2 D802 LG-D802|JDQ39B (17-4.2-Jelly Bean)
SQLite 3.7.6.3 (instead of 3.6.22):
LG Optimus Sol E730/myTouch E739/myTouch Q C800 (10-2.3.3-Gingerbread, GRJ22)
LG Optimus Vu F100S/F100L (10-2.3.3-Gingerbread, RK39F)
LG Optimus LTE TAG F120K/F120L (10-2.3.3-Gingerbread, GRK39F)
LG Optimus LTE L-01D (10-2.3.3-Gingerbread, GRJ90)
LG Optimus Net P690b (10-2.3.3-Gingerbread, GINGERBREAD)
LG Prada KU5400 (10-2.3.3-Gingerbread, GWK74)
LG Prada P940 (10-2.3.3-Gingerbread, GWK74)
LG LU6200/SU640 (10-2.3.3-Gingerbread, GRJ90)s
SQLite 3.7.5 (instead of 3.7.4):
Samsung Galaxy Note (15-GT-N7000|IML74K.ZSLPF)
Samsung Galaxy SII (15-SC-02C|IML74K.OMMP4 and GT-I9100|IML74K.DXLP7)
Samsung Galaxy S Duos (15-GT-S7562|IMM76I.S7562XXBMD6)
Samsung Galaxy Tab 7.7 (15-GT-P6810|IMM76D.ZSLP8)
SQLite 3.7.0.1 (instead of 3.6.22):
LG Esteem MS910 (10-2.3.3-Gingerbread, GSE-_v.05)
AndroTab (8-2.2-Froyo, 1.0.7100.0385)
GPLUS MUSN M500 (8-2.2-Froyo, FRG83G)
SQLite 3.6.23.1 (instead of 3.5.9):
Motorola Backflip MB300 (7-2.1-Eclair, ERD79)
Garmin-Asus nüvifone A10/A50/Garminfone (7-2.1-Eclair, ERE27)
Note: adb command to get SQLite version only works on emulators and
on devices with sqlite3 available: http://stackoverflow.com/a/3645800/444761
2、查看模拟器 /systen/xbin是否有sqlite3命令
adb shell cd /system/xbin ls
3、把模拟器 /system/xbin/sqlite3命令文件从模拟器拷到PC上
adb pull /system/xbin/sqlite3 e:/eclipse
4、关闭模拟器,把Android手机连接到PC
5、获取Android手机 /system 文件夹的读取权限
adb shell # mout -o remout, rw -t yaffs2 /dev/block/mtdblock3 /system //(根据自己的设备网上很多人的设备是这个)
6、把PC上的e:/eclipse/sqlite3文件拷到Android手机的/system/xbin/目录下
adb push e:/sqlite3 /system/xbin // 若是提示permission denial adb shell chmod 777 system/ cd system chmod 777 xbin
然后执行上面的 push
若是还是不行就直接 到eclipse DDMS filter explore 下面 /system/xbin
把所用的数据直接从电脑上拖到 /system/xbin 下面
7、修改Android真机/system/xbin/sqlite3命令的权限
adb shell chmod 4755 /system/xbin/sqlite3
然后输入sqlite3
进入到sqlite就可以了。
As an alternative (may not be secure or even good idea though) you can always upload the
sqlite3binary to
/system/binthis worked for me:
// First lets mount /system/ to allow read/write (rw) $ adb shell $ su # mount -o remount,rw /system // in another terminal change directory (cd) to where sqlite3 is and lets push it $ ls sqlite3 $ adb push sqlite3 /sdcard/ // Now back to the other shell lets copy and change permissions of the binary # cat /sdcard/sqlite3 > /system/bin/sqlite3 # chmod 4755 /system/bin/sqlite3 // Now lets mount back /system/ as read only (ro) # mount -o remount,ro /system // And now we can use sqlite3 from shell: # sqlite3 /data/data/com.telly/databases/fun.db SQLite version 3.7.4 Enter ".help" for instructions sqlite> .tables android_metadata lulz // Note: I'm using the sqlite3 binary that comes with "SuperOneClickv1.6.5-ShortFuse" // You can always pull sqlite3 binary from emulator: // Start an emulator and then from a terminal $ adb pull /system/xbin/sqlite3
Works on rooted Nexus-S running Android ICS 4.0.4 using the sqlite3 binary from SuperOneClick
shortfuse.org/?page_id=2
download.cnet.com/SuperOneClick/3000-2094_4-75447027.html
On the Nexus 4 do the following :
adb shell $ su # mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system # dd if=/sdcard/sqlite3 of=/system/xbin/sqlite3 # chmod 777 /system/xbin/sqlite3 # mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
Notice the folder is /system/xbin and the chmod is 777
This works on my nexus 4 with kitkat , sqlite3 binary got from the emulator /system/xbin folder
To install sqlite3 on NON-ROOTED devices, here is a way that has been proved working on my Galaxy S3, FYR.
$ adb -e pull /system/xbin/sqlite3 # get sqlite3 binary from emulator with the same CPU arch. $ adb -d push sqlite3 /mnt/sdcard # push it $ adb -d shell $ run-as <PACKAGE_NAME> # run as your app, which should be debuggable. $ cd databases; pwd /data/data/<PACKAGE_NAME>/databases $ cat /mnt/sdcard/sqlite3 > sqlite3 # copy it to internal storage directory $ ls -l sqlite3 -rw-rw-rw- u0_a138 u0_a138 36860 2014-03-26 06:37 sqlite3 $ chmod 777 sqlite3 # change mode bits, to be executable $ ./sqlite3 # now it works on your NON-ROOTED device SQLite version 3.7.11 2012-03-20 11:35:50 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite>
If you are lazy like me you can
download one right here for ICS or before or
for Jelly Bean and later here
From the answer of evelio, I had problem to push the sqlite3 file to /system/bin. So, instead, I have pushed it to the /sdcard.
In this thread I found the right Solution (answer of Kila): How can I install sqlite3 on rooted NexusOne runs Gingerbread
$ 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
It works on my Samsung Galaxy S II with 2.3.3
Titanium Backup installed, Set the variable
%SQLITE3 to "/data/data/com.keramidas.TitaniumBackup/files/sqlite3".
I actually copied the titanium backup sqlite3 binary to system/xbin and it has been working for me since.
A symlink is an alternative solution, if you want the binary in your PATH (/system/xbin) and your system-rom is nearly full.
For example there is only 200KB free space left in the /system of my Nexus 7 after installing Lollipop + SuperSu + Busybox.
su mount -o remount,rw /system ln -s /data/data/com.keramidas.TitaniumBackup/files/sqlite3 /system/xbin/sqlite3 mount -o remount,ro /system
Symlink has only 53 B and the binary has 300 KB.
Use the attached sqlite3...extract & copy it to the /system/xbin folder...give execute permissions [0755] and it should work
http://forum.xda-developers.com/attachment.php?attachmentid=2246063&d=1378751634 : 2012-03-20 (3.7.11)
After copying file, you need to reboot.
Version of SQLite used in Android?
Using the emulators (adb shell sqlite3 --version):SQLite 3.8.6:
22-5.1-Lollipop
SQLite 3.8.4.3:
21-5.0-Lollipop
20-Android L Developer Preview
SQLite 3.7.11:
19-4.4-KitKat
18-4.3-Jelly Bean
17-4.2-Jelly Bean
16-4.1-Jelly Bean
SQLite 3.7.4:
15-4.0.3-Ice Cream Sandwich
14-4.0-Ice Cream Sandwich
13-3.2-Honeycomb
12-3.1-Honeycomb
11-3.0-Honeycomb
SQLite 3.6.22:
10-2.3.3-Gingerbread
9-2.3.1-Gingerbread
8-2.2-Froyo
SQLite 3.5.9:
7-2.1-Eclair
4-1.6-Donut
3-1.5-Cupcake
Note: Android SDK level links show where the android.database.sqlite package has changed.
Where there is no link (e.g. SDK level 17), indicates no changes to that package.
Note: Here are some anomalies (list by no means exhaustive):
SQLite 3.7.13 (instead of 3.7.11):
LG Optimus L70 MS323 LGMS323|KOT49I.MS32310b (19-4.4-KitKat)
LG Optimus G E975 LG-E975|JZO54K (16-4.1-Jelly Bean)
LG G2 D802 LG-D802|JDQ39B (17-4.2-Jelly Bean)
SQLite 3.7.6.3 (instead of 3.6.22):
LG Optimus Sol E730/myTouch E739/myTouch Q C800 (10-2.3.3-Gingerbread, GRJ22)
LG Optimus Vu F100S/F100L (10-2.3.3-Gingerbread, RK39F)
LG Optimus LTE TAG F120K/F120L (10-2.3.3-Gingerbread, GRK39F)
LG Optimus LTE L-01D (10-2.3.3-Gingerbread, GRJ90)
LG Optimus Net P690b (10-2.3.3-Gingerbread, GINGERBREAD)
LG Prada KU5400 (10-2.3.3-Gingerbread, GWK74)
LG Prada P940 (10-2.3.3-Gingerbread, GWK74)
LG LU6200/SU640 (10-2.3.3-Gingerbread, GRJ90)s
SQLite 3.7.5 (instead of 3.7.4):
Samsung Galaxy Note (15-GT-N7000|IML74K.ZSLPF)
Samsung Galaxy SII (15-SC-02C|IML74K.OMMP4 and GT-I9100|IML74K.DXLP7)
Samsung Galaxy S Duos (15-GT-S7562|IMM76I.S7562XXBMD6)
Samsung Galaxy Tab 7.7 (15-GT-P6810|IMM76D.ZSLP8)
SQLite 3.7.0.1 (instead of 3.6.22):
LG Esteem MS910 (10-2.3.3-Gingerbread, GSE-_v.05)
AndroTab (8-2.2-Froyo, 1.0.7100.0385)
GPLUS MUSN M500 (8-2.2-Froyo, FRG83G)
SQLite 3.6.23.1 (instead of 3.5.9):
Motorola Backflip MB300 (7-2.1-Eclair, ERD79)
Garmin-Asus nüvifone A10/A50/Garminfone (7-2.1-Eclair, ERE27)
Note: adb command to get SQLite version only works on emulators and
on devices with sqlite3 available: http://stackoverflow.com/a/3645800/444761
相关文章推荐
- 如何设置Android手机的sqlite3命令环境
- 如何设置Android手机的sqlite3命令环境
- 如何设置Android命令行环境变量
- 如何取得Android手机的当前语言设置
- 如何在Mac/Linux上设置android环境变量
- 如何在mac中设置android adb的环境变量
- 如何设置eclipse-android开发环境
- android环境变量设置和自定义命令
- android手机设置无标题后,程序挂掉 解决 (如何用最简短语句设置 手机 全屏无标题)
- Eclipse集成开发环境如何与android手机连接的一个解决办法
- android 如何使用命令设置heapsize
- 如何取得Android手机的当前语言设置
- ubuntu android 命令环境下操作sqlite
- ubuntu android 命令环境下操作sqlite
- Android 工具之linux下如何给手机发AT命令 (未验证)
- android手机如何设置个性短信和来电铃声
- 如何使用ADB命令查看Android手机相关信息参数
- Android中如何获得一些系统设置和环境变量?