Android 查看内部数据库

网友投稿 978 2022-05-30

使用 find 命令查找文件

find 【搜索的起始目录】 -name 【用正则表达式筛选文件名】

输入 exit 退出 adb 模式

选择设备

使用 adb devices 查看当前 usb 是否有连接设备,连接着几台设备

如果发现有大于1台的设备,需要通过 adb -s 命令来指定设备。

-s 用来指定设备序列号,也就是前面 adb devices 打印出来的列表中的第一列

因此这里用 adb -s【安卓设备编号】shell 即可进入到设备中,使用 su 命令可以拿到管理员权限。

Android 查看内部数据库

从手机中拉取文件到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’ )对数据库进行加密,因此这里读不出来

Android 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vuex进阶使用之modules模块化划分、mapState、mapActions辅助函数的使用
下一篇:Markdown 高级技巧
相关文章