有个测试机里没有自带sqlite,记录了一下安装过程。以防遗忘

(一)第一步:root

使用百度一键root 等app,一键就可root,步骤略

(二)

1、执行

adb shell
su 获得root权限
ls 查看当前目录

cd data/data
ls

选com.tencent.cm为例

cd com.tencent.cm/database
ls

看到里边有一些 .db数据库文件

这时候,执行

sqlite3 tes_db.db

如果你的设备中有sqlite3,这句应该会执行成功,接下来就可以 执行select 语句了,

----------------------------------------------------------------下边就不用看了--------------------------------------------------------------

本文主要说明 一些小米和其他手机中没有sqlite3的情况,和我一样,执行会发现

sqlite3:not found

附  Android的每个版本对应的sqlite3 版本:

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

比较简单的获取对应版本的Sqlite的方法:

1、查看你手机的Andorid的版本,比如我的是 4.32、在eclipse中打开对应版本(很重要,否则会提示cannot locate 'sqlite3_enable_load_extensions')的模拟器(创建 如果没有)并且启动3、在DDMS窗口的File Explorer面板下展开system > xbin看到了sqlite3 了么?ok。点击右上角的软盘图标(pull a file from the device) 将其保存到其他位置4、然后连接你的手机,打开控制台,输入adb shell。(什么?提示adb命令无效?那去配置环境变量吧)5、然后查看一下提示符 如果是 # 那就不用管了,如果是 $ ,那么说明你需要获得root权限进行下面的操作6、保持手机屏幕没有锁屏最好是常亮模式 在提示符下敲入 su 或者 su root,如果手机弹框提示是否允许获得root权限请选择 是。点击后发现 $ 变成 # 了。OK 可以进行下面的操作了7、将先前保存其他位置的sqlite3 在DDMS面板中通过右上角手机图标(push a file onto the device) 将文件push到sdcard中,准确的是在/mnt/sdcard8、然后在命令行敲入 cat /mnt/sdcard/sqlite3 > /system/xbin/sqlite3 复制文件(为什么不用mv?我也试过,不过报failed on '/sdcard/test.mp3' - Cross-device link 错误)9、ok,检查手机/system/xbin下多了一个sqlite3文件,不过还不能执行。10、继续敲入 chmod 4755 /system/xbin/sqlite3好的 大功告成。你可以试试敲入sqlite3试试了。可以看到可以正常使用了。

-------------------------------------------------------------如果你成功了,不用看下边-------------------------------------------------------------------------

首先,机器上没有对应android 4.3的avd,所以参考http://www.cnblogs.com/localhost/archive/2012/04/09/2439558.html的方法

下载了sqlite3文件包,地址为http://files.cnblogs.com/localhost/sqlite3_not_found.rar(事实证明他这个包的版本,我不能用,他这个版本太老了)

下这个:http://pan.baidu.com/share/link?shareid=534077&uk=839950715

报了异常,因为直接push进 /system/xbin目录中了,没权限

建一个临时文件夹

push进这个临时文件夹中

再将sqlite3从

  /mnt/sdcard/tmp

拷贝到

  /system/xbin 目录中,不会报错

cp /mnt/sdcard/tmp/sqlite3 /system/xbin/sqlite3 

注意:这一步可能报两种错,

第一种: cp not found,将命令换成cat /mnt/sdcard/tmp/sqlite3 > /system/xbin/sqlite3,

第二种:permission denied,说明/system是只读的,此时需要重新mount,改为可读写,然后继续拷贝

为什么除了sqlite3,还要push进去libncurse.so,因为缺乏依赖库,报了以下异常

我的出现了第二种权限错误 ,执行mount操作

mount -o remount,rw /system

mount命令的解释在 http://blog.csdn.net/progbelief/article/details/6032518  

重点解释这条语句的作用mount -o remount,rw -t yaffs2 /dev/block/mtdblock6 /system简单来说就是将块设备“/dev/block/mtdblock6” 挂载到/system目录上,挂载格式为yaffs2,这里主要的问题是“/dev/block/mtdblock6”是个什么东东。mtdblock就是手机 的flash存储设备,但是这个分块号则依机型的不同而有所变化,比如:Droid 的/system是挂载在/dev/block/mtdblock4上的,欧版的milestone 在/dev/block/mtdblock7上,港版的在/dev/block/mtdblock6上,HTC 系列的机器 则好像是在/dev/block/mtdblock3上。而现在有的教程 上写的命令不尽相同,也有这样写的mount -o remount,rw /dev/block/mtdblock3 /system这多半上从HTC的论坛 上抄来的吧。但是有些人可能会说,我就是用这条命令成功了!(好吧,其实我也是的……汗,真是好险 ),甚至用任何分块号mtdblock3、mtdblock4、mtdblock11等等都能正常运行!那么这种错误命令为什么能成功呢?其实我们的命令参数“-o remount”其实自动 忽略了/dev/block/mtdblock? 这一段参数,只是简单的把/system重新挂载了一下而已。这条命令的偷懒不知道救回了多少人的爱机啊!好吧,说到这里大家应该明白了吧,虽然这条命令即使错误也可以成功,但你毕竟试图将一个错误的块挂载到/system上,悄有不慎肯定变砖。所以强烈建议大家在执行此命令时使用cat /proc/mtd来检查下自己的JJ具体参数,再套用命令,
或者强烈建议新手使用mount -o remount,rw /system这样的简化命令来代替上述命令使用!

有了上边的解释, 获取你的设备mount信息,执行

mount

从屏幕列出来的mount数据中找到/system的mount信息,空格隔开的,第一列表示设备名,第二列表示目录,第三列表示文件系统,第四列表示权限。网上其他教程在这一步都直接列出了他们的命令,由于设备名和文件系统不一样,所以执行不成功

mount命令为:mount  -o  remount,rw  -t  第三列信息  第一列信息  /system

如下图,注意看圈红的地方:

mount成功后,再执行上面说的文件copy的步骤,然后就能copy到 /system/xbin目录下了

需要改下文件的权限,命令:

chmod 4755 /system/xbin/sqlite3

最后运行下,sqlite3,发现成功了吧

---------------------------------------------------------------你又成功了,我又没有----------------------------------------------------------

执行了mount,结果如下(没有system啊,但是上边的 mount -o remount,rw /system 执行成功了,所以也无所谓了 ):

这时候执行sqlite3命令,出现了Illegal instruction错误

这大概说明,我的sqlite3版本不对,下了个比较新的: http://pan.baidu.com/share/link?shareid=534077&uk=839950715

拷进去,改权限,执行

成功

在sqlite的...> 状态退不出来的时候,一般是进入SQL数据语言模式了,此时输入个;(分号) 就可以退回到sqlite>状态

.quit 退出 sqlite
.help 查看帮助.schema 抓出数据库中所有的表.tables 抓出数据库中所有的表和索引(都可以使用LIKE来匹配)

附:

sqlite的官网

http://www.sqlite.org/lang.html

转载于:https://www.cnblogs.com/maxiaodoubao/p/4798782.html

Android 设备,如何root,执行adb shell,查看设备中的数据库信息等相关推荐

  1. adb查看手机cpu使用率_使用adb命令查看手机cpu/内存等信息

    使用adb命令查看手机cpu/内存等信息 前提 本地电脑Windows已安装ADB工具.夜神模拟器 连接手机 这里用的夜神模拟器连接的 使用adb命令连接手机:adb connect 127.0.0. ...

  2. adb shell 小米手机_【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中...

    http://blog.csdn.net/wirelessqa/article/details/8624208 有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切 ...

  3. batT脚本如何自动执行 adb shell 以后的命令(android抓包)

    bat脚本自动执行 adb shell 以后的命令 @echo off echo su > test.txt echo 其它命令(如 cd /data) >> test.txt ad ...

  4. linux adb 权限不够,root后adb shell权限问题

    方法一:命令行 adb shell "su -c 'sleep 1'" adb start-server adb push tcpdump /data/local/tcpdump ...

  5. BAT脚本如何自动执行 adb shell 以后的命令

    @echo off echo su > temp.txt echo 其它命令 >> temp.txt adb shell < temp.txt del temp.txt 求问 ...

  6. adb shell 查看手机根目录

    adb shell 查看手机根目录 https://blog.csdn.net/u012527802/article/details/51393143

  7. python调用adb shell命令_如何在python脚本里面连续执行adb shell后面的各种命令

    如何在python脚本里面连续执行adb shell后面的各种命令 adb shell "cd /data/local && mkdir tmp" adb shel ...

  8. 【已解决】adb shell查看进程提示grep不是内部命令或外部命令

    1. 问题 adb shell查看进程提示grep不是内部命令或外部命令 2. 解决办法 把adb shell 后面的语句加上引号即可 adb shell "dumpsys activity ...

  9. (逍遥模拟器)命令adb devices查看设备,只显示 List of devices attached,无设备列表

    命令adb devices查看设备,只显示 List of devices attached,无设备列表 网上的解决方案都是夜神模拟器,要不就是豌豆荚安装驱动(不好使). 适合逍遥模拟器的解决方案: ...

最新文章

  1. 13本干货书籍,百余篇原创来了
  2. python使用matplotlib可视化、为可视化图像添加图例(legend)、自定义图例的字体格式、字体大小、字体颜色等
  3. 趣谈网络协议笔记-二(第十六讲上)
  4. 【题解】JSOIWC2019 Round4
  5. PHP Ajax 跨域问题最佳解决方案
  6. LeetCode3:Longest Substring Without Repeating Characters
  7. v$sql、v$sqlarea 、v$sqltext
  8. JS module的导出和导入 1
  9. Mybatis获取已经赋值,没有问号的Sql
  10. Zeppelin介绍
  11. 人眼分辨 PPI_1080P=2K,分辨率≠清晰度?关于显示器大多数人都错了
  12. 大数据导论章节答案_智慧树APP大数据导论第三单元章节测试答案
  13. 平衡二叉树的原理及实现
  14. SGMII和RGMII入门学习
  15. 全国省市自治区经纬度坐标
  16. Specification of Time Synchronization over CAN 研读笔记
  17. photoshop设计精讲精练 学习笔记(四)
  18. 使html轮廓颜色不同,css中border颜色不同怎么设置?
  19. 升级鸿蒙系统最新计划,华为鸿蒙系统更新升级方法分享
  20. CTF web总结(入门)

热门文章

  1. 398. 随机数索引(哈希表预处理 Or 蓄水池抽样)
  2. c语言编译错误c206,warning c206_TEXT1.C(29): warning C206: 'While': missing function-prototype
  3. 2022年安卓装Windows11操作系统教程+附软件包
  4. RationalDMIS 7.1 模型处理 (CAD模型分层 /CAD模型着色)
  5. windows下以管理员模式解压指定压缩包
  6. Android 实现音频的裁剪,拼接和混音
  7. oracle强制关闭session,Oracle终止session
  8. docker安装nginx教程
  9. 我与你,一同学Python(24)
  10. Unity3d-打靶游戏