博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何设置Android手机的sqlite3命令环境
阅读量:4885 次
发布时间:2019-06-11

本文共 6405 字,大约阅读时间需要 21 分钟。

1、在PC环境下启动一个模拟器(不是手机)

2、查看模拟器 /systen/xbin是否有sqlite3命令

adb shellcd /system/xbinls

 

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 denialadb shellchmod 777 system/cd systemchmod 777 xbin

 

然后执行上面的 push

若是还是不行就直接 到eclipse DDMS filter explore 下面 /system/xbin
把所用的数据直接从电脑上拖到 /system/xbin 下面

7、修改Android真机/system/xbin/sqlite3命令的权限

adb shellchmod 4755 /system/xbin/sqlite3

 

然后输入sqlite3

进入到sqlite就可以了。

As an alternative (may not be secure or even good idea though) you can always upload the sqlite3 binary to /system/bin this 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.dbSQLite version 3.7.4Enter ".help" for instructionssqlite> .tablesandroid_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

 

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 
# run as your app, which should be debuggable.$ cd databases; pwd/data/data/
/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 deviceSQLite version 3.7.11 2012-03-20 11:35:50Enter ".help" for instructionsEnter SQL statements terminated with a ";"sqlite>

 

 

 

If you are lazy like me you can 

 or

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): 

$ 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.

sumount -o remount,rw /systemln -s /data/data/com.keramidas.TitaniumBackup/files/sqlite3 /system/xbin/sqlite3mount -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

 : 2012-03-20 (3.7.11)

After copying file, you need to reboot.

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 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: 

 

转载于:https://www.cnblogs.com/shangdawei/p/4467952.html

你可能感兴趣的文章
MacOS下Python的多版本管理(pyenv)
查看>>
转载:.net中Cookie的用法
查看>>
ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十一) 代码重构使用反射工厂解耦...
查看>>
SIT&UAT
查看>>
可变类型变量(列表、字典等)定为函数默认值时的陷阱
查看>>
颓の第17周
查看>>
bzoj1233[USACO2009 Open]Tower of Hay干草金字塔
查看>>
class10_Frame 框架
查看>>
curl -w,–write-out参数详解
查看>>
ssm+easyUI datagrid 不能显示后台controller层返回的json数据
查看>>
JAVA算术运算符
查看>>
JAVA循环结构
查看>>
mybatis10--自连接多对一查询
查看>>
整流电路
查看>>
[微博]微博信息检索的一般流程
查看>>
PHP常用函数
查看>>
树莓派:开机使用
查看>>
(转)面试大总结之一:Java搞定面试中的链表题目
查看>>
(转)win下修改jdk环境变量后,java版本不变 java -version
查看>>
【转】AX 2012 upload file to FTP with batch processing support
查看>>