Windows下使用ADB读取安卓手机短信

折腾 2019/07/09

在做一个项目,涉及到验证码部分,需要实现一个简单的接码功能。折腾折腾~

方法总结:通过adb命令将安卓手机的短信数据库复制到电脑端,再读取其数据库

1、准备

一台废弃手机(Andriod 4.4),打开手机的USB调试模式,电脑连接手机

下载 ADB Tookit,解压到任意目录

https://dl.google.com/android/repository/platform-tools-latest-darwin.zip

ADB命令文档:

https://developer.android.com/studio/releases/platform-tools

2.查看设备

adb get-serialno

首次执行时,可能需要在手机端点击允许USB调试,红框即为连接的手机设备号

3.折腾

我手里这台安卓手机短信的存储路径为

/data/data/com.android.providers.telephony/databases/mmssms.db

貌似存储短信的数据库文件路径,在高版本的Andriod系统中进行了转移

一开始想着利用ADB的pull命令可以直接将上述的短信数据库传输到电脑上,如:

adb pull /data/data/com.android.providers.telephony/databases/mmssms.db E:\NextCloud

实际执行的时候却报错

adb: error: remote object '/data/data/com.android.providers.telephony/databases/mmssms.db' does not exist

几番折腾和搜索,才知道想的有些简单,读取/data下的文件需要root权限,如果未获取root权限,执行ls命令:

adb shell ls /data

返回错误:opendir failed, Permission denied

4.复制

先获取root权限,手机端root过程略

adb shell su

再将mmssms.db复制到存储卡(外部存储)

cp /data/data/com.android.providers.telephony/databases/mmssms.db /mnt/sdcard/mmssms.db

退出su,然后再执行adb pull将文件复制到电脑端

adb pull /mnt/sdcard/mmssms.db E:\NextCloud\mmssms.db

5.读取短信数据库

mmssms.db是SQLite数据库文件,可以通过小工具直接读取,我这里用的是SQLiteSpy



评论(*号为必填项)