Android 查看内部数据库
使用 find 命令查找文件
find 【搜索的起始目录】 -name 【用正则表达式筛选文件名】
输入 exit
退出 adb 模式
选择设备
使用 adb devices
查看当前 usb 是否有连接设备,连接着几台设备
如果发现有大于1台的设备,需要通过 adb -s
命令来指定设备。
-s 用来指定设备序列号,也就是前面 adb devices
打印出来的列表中的第一列
因此这里用 adb -s【安卓设备编号】shell
即可进入到设备中,使用 su
命令可以拿到管理员权限。
从手机中拉取文件到PC端
adb pull【待拉去的手机文件路径】【存放到的PC端目录】
(点号表示当前目录)
如果手机未Root,而我们又去获取系统内部路径;或者已 Root 但没有 super 权限,都会报 Permission denied
我这里用的是模拟器进行测试的,所以使用 adb root
获取管理员权限后,再执行相应指令即可
adb root pull【待拉去的手机文件路径】【存放到的PC端目录】
sqlite3 命令
sqlite3 的路径与 adb 一样,都在 sdk 目录下的 platform-tools 文件夹下。
因为在系统环境变量下声明了该路径,因此,可以在命令行中,在不带路径的前提下,直接使用。
( sqlite3命令可以在 cmd 中运行,也可以在adb shell 后的安卓命令行下直接运行 )
使用命令 sqlite3 【数据库路径】
,可以打开数据库,输入 .help
可以查看帮助文档。
正常数据库
-
sqlite3 【数据库路径】
进入数据库命令行
-
.database
打印当前数据库路径
-
.tables
显示数据库中所有的表名(android_metadata 是自动创建的,里面存放 local = en_US)
-
.schema
打印创建表的语句
-
select * from 【表名】;
,值为 null 则会输出空串
-
head on/off
设置是否显示表头(默认不显示表头)
-
使用
Ctrl + C
键 或.exit
命令,可以退出数据库命令行
加密数据库
由于使用了第三方库(net.zetetic:android-database-sqlcipher:4.2.0’ )对数据库进行加密,因此会提示文件不是一个数据库
对比加密前后的数据库
(左边加密,右边未加密)可以看到 sqlcipher 是对整个数据库进行加密(而非针对内容字段)
明文的数据库以 "SQLite format 3"打头,中间空了很多,然后依次是创建表的语句,数据内容,和表名。
SQLite Export Personal(或Navicat皆可)
正常数据库
Data 选项卡
Fields 选项卡
数据定义语言,DDL,Data Definition Language
加密数据库
由于使用了第三方库(net.zetetic:android-database-sqlcipher:4.2.0’ )对数据库进行加密,因此这里读不出来
文章来源: blog.csdn.net,作者:福州-司马懿,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/chy555chy/article/details/101511609
- 点赞
- 收藏
- 关注作者
评论(0)