捣鼓小米手环,做了个小项目,想导出小米手环的数据显示在Web 页,这里对 上老旧教程进行一波更新换代,还利用Python实现数据导出的自动化(从用户端的角度考虑,原来的教程其交互模式不够优雅,但事实上整体做下来还是有种 tuo le 裤子放 p 的感觉,想进行小米手环数据取证,或者喜欢瞎捣鼓的同学可以看看,另外,还能从内部看看小米手环到底测量了我们身体的哪些数据) 2022年7月1日亲测可行,欢迎私信,求赞
文章目录
- 一、工具准备
-
- 1.小米手环6
- 2.Zepp Life
- 3.Termux
- 4.Xshell Xftp
- 5.android-backup-extractor
- 6.C32Asm
- 7.DB Browser (SQLite)
- 8.Maven
- 二、具体步骤
-
- 1.提前声明
- 2.备份文件
- 3.配置好Termux
- 4.Paramiko库
- 5.解压下载的tar.gz文件(解出bak文件)
- 6.bak文件的重构
- 7.bak文件解包
- 8.数据库读取
- 总结
- 参考案例
一、工具准备
1.小米手环6
这里我测试用的是小米手环6,7也无所谓,与手环版本无关
2.Zepp Life
一台能下载《Zepp Life》原“小米运动”软件的手机,测试用小米手机K50,提前已经进行过配对,软件里面有好多天的数据
3.Termux
手机安装Termux软件(下载及使用方法见国光教程https://www.sqlsec.com/2018/05/termux.html#toc-heading-1)
4.Xshell Xftp
默认大家安好了
5.android-backup-extractor
android备份文件解包的开源工具(下载及使用方法见链接,后文会对一些出现的问题进行具体讲解 https://github.com/nelenkov/android-backup-extractor)
6.C32Asm
能以16进制打开文件,这个csdn很多资源,实在不想花积分就私信我吧
7.DB Browser (SQLite)
资源很多
8.Maven
官 https://maven.apache.org/
二、具体步骤
1.提前声明
提前声明,蓝色字是同样适用于非自动化(同样能完成整个过程)的步骤,这里只不过提供一种自动化的示例,均非常容易理解,绿色字全部指向一个链接—->小米手环数据自动化导出工具。
2.备份文件
/storage/emulated/0/MIUI/backup/AllBackup
3.配置好Termux
这里建议把链接中整个教程从头到尾仔细查看,配置好你的国内镜像源,下载好nmap、openssh等包,这里为了方便没有以公钥私钥进行配对,直接账 密码就行,输入获取手机权限,配置好之后我们发现这里我们需要的交互方式正好是国光大大所说较少的应用场景,电脑ssh连接手机Termux
4.Paramiko库
根据需求我们找到了Python的一个库paramiko,能创建一个sftp连接从手机上下载文件,但不可以是文件夹,所以我们先将其压缩,见代码 ,这里我找了一个demo直接改(忘了从哪里找的),把那些路径也都设置成自己的,对照打印信息debug就行,代码见链接。
5.解压下载的tar.gz文件(解出bak文件)
之后就需要把这个下载下来的tar.gz解压,继续调库就行,,代码不用改,直接运行,代码见链接。
6.bak文件的重构
对解压出来的bak文件进行处理,我用C32Asm工具将bak文件用16进制打开,将 ANDROID BACKUP 前面的全部删除,去除掉小米app特异性的前缀,这里的Python代码比较简陋,暂时没发现比较好的操作,见
7.bak文件解包
接下来就需要用到 android-backup-extractor 了,首先到官 下载整个项目代码,我们这里按照官 最简单的教程,使用 maven ,生成 abe.jar 包, 测试 maven 是否下载好,然后在整个文件夹下执行 shell 命令 ,我们会发现新生成了一个target文件夹,我们把 abe.jar 从里面拖出来进行使用,这里我们采用 Python 的 subprocess 库来执行 shell 命令并给出输出或 错,执行shell命令 ,见代码 。
总结
处理的数据可以保存为csv就能放入数据库和前端进行交互啦!!!!
参考案例
MizarTian 小米运动手环数据导出
我非码农 小米运动睡眠数据导出并分析(python)
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览211008 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!