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’ )对数据库进行加密,因此这里读不出来

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值