Android 设备,如何root,执行adb shell,查看设备中的数据库信息等
有个测试机里没有自带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,查看设备中的数据库信息等相关推荐
- adb查看手机cpu使用率_使用adb命令查看手机cpu/内存等信息
使用adb命令查看手机cpu/内存等信息 前提 本地电脑Windows已安装ADB工具.夜神模拟器 连接手机 这里用的夜神模拟器连接的 使用adb命令连接手机:adb connect 127.0.0. ...
- adb shell 小米手机_【转】【Android测试技巧】01. root后adb shell默认不是root用户时,如何将文件放入手机系统中...
http://blog.csdn.net/wirelessqa/article/details/8624208 有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切 ...
- batT脚本如何自动执行 adb shell 以后的命令(android抓包)
bat脚本自动执行 adb shell 以后的命令 @echo off echo su > test.txt echo 其它命令(如 cd /data) >> test.txt ad ...
- linux adb 权限不够,root后adb shell权限问题
方法一:命令行 adb shell "su -c 'sleep 1'" adb start-server adb push tcpdump /data/local/tcpdump ...
- BAT脚本如何自动执行 adb shell 以后的命令
@echo off echo su > temp.txt echo 其它命令 >> temp.txt adb shell < temp.txt del temp.txt 求问 ...
- adb shell 查看手机根目录
adb shell 查看手机根目录 https://blog.csdn.net/u012527802/article/details/51393143
- python调用adb shell命令_如何在python脚本里面连续执行adb shell后面的各种命令
如何在python脚本里面连续执行adb shell后面的各种命令 adb shell "cd /data/local && mkdir tmp" adb shel ...
- 【已解决】adb shell查看进程提示grep不是内部命令或外部命令
1. 问题 adb shell查看进程提示grep不是内部命令或外部命令 2. 解决办法 把adb shell 后面的语句加上引号即可 adb shell "dumpsys activity ...
- (逍遥模拟器)命令adb devices查看设备,只显示 List of devices attached,无设备列表
命令adb devices查看设备,只显示 List of devices attached,无设备列表 网上的解决方案都是夜神模拟器,要不就是豌豆荚安装驱动(不好使). 适合逍遥模拟器的解决方案: ...
最新文章
- 13本干货书籍,百余篇原创来了
- python使用matplotlib可视化、为可视化图像添加图例(legend)、自定义图例的字体格式、字体大小、字体颜色等
- 趣谈网络协议笔记-二(第十六讲上)
- 【题解】JSOIWC2019 Round4
- PHP Ajax 跨域问题最佳解决方案
- LeetCode3:Longest Substring Without Repeating Characters
- v$sql、v$sqlarea 、v$sqltext
- JS module的导出和导入 1
- Mybatis获取已经赋值,没有问号的Sql
- Zeppelin介绍
- 人眼分辨 PPI_1080P=2K,分辨率≠清晰度?关于显示器大多数人都错了
- 大数据导论章节答案_智慧树APP大数据导论第三单元章节测试答案
- 平衡二叉树的原理及实现
- SGMII和RGMII入门学习
- 全国省市自治区经纬度坐标
- Specification of Time Synchronization over CAN 研读笔记
- photoshop设计精讲精练 学习笔记(四)
- 使html轮廓颜色不同,css中border颜色不同怎么设置?
- 升级鸿蒙系统最新计划,华为鸿蒙系统更新升级方法分享
- CTF web总结(入门)
热门文章
- 398. 随机数索引(哈希表预处理 Or 蓄水池抽样)
- c语言编译错误c206,warning c206_TEXT1.C(29): warning C206: 'While': missing function-prototype
- 2022年安卓装Windows11操作系统教程+附软件包
- RationalDMIS 7.1 模型处理 (CAD模型分层 /CAD模型着色)
- windows下以管理员模式解压指定压缩包
- Android 实现音频的裁剪,拼接和混音
- oracle强制关闭session,Oracle终止session
- docker安装nginx教程
- 我与你,一同学Python(24)
- Unity3d-打靶游戏