小米云备份助手XP插件

@zgcwkj  2026年07月09日

分类:

代码 其它 

XPoser_MiBackup - 小米云备份助手(虚拟一个小米智能存储设备实现云备份功能)

想法的种子

很早之前就想写个Xposed插件了,但一直没动手——倒不是懒,主要是Xposed开发的门槛确实有点高:得懂Hook机制、得会逆向分析、还得反复重启手机调试,一个ClassNotFound就能卡半天。

直到最近,AI编程助手逐渐成熟,我发现很多重复性的代码和调试工作可以丢给AI处理,于是果断开坑:写一个能让小米备份存到任意NAS的Xposed模块。

核心思路:欺骗备份App

小米备份App会通过DFS服务连接小米智能存储设备,我们要做的就是:

  • Hook掉DFS的连接逻辑,返回一个虚拟的在线设备
  • 拦截所有文件操作(上传/下载/列表/删除)
  • 把这些操作重定向到用户配置的SMB、WebDAV或自定义HTTP服务上
  • 听起来很清晰,实现起来全是坑。

最大的坎:混淆

小米备份的代码是混淆过的,类名、方法名全是a.b.c这种无意义字母。起初AI一直在Hook调用函数层面打转,对着反编译出来的smali代码硬找方法名,效率极低,还经常因为混淆后的名字在不同版本里不一样而失效。

后来想明白一个道理:不管它怎么混淆,底层无非还是调用库。Android的文件操作最终跑不了Java的File API或者JNI调用,网络请求也离不开Socket/OkHttp。混淆只是把皮换了一层,骨头没变。

抓住这个思路后,就不在Hook函数名上死磕了,而是去Hook那些不易变化的核心调用点,比如底层的读写流、回调接口。这个逻辑其实很简单,但AI第一时间没想到,还在给我推荐各种反混淆工具,属实有点“呆”。

AI的贡献:大量代码生成

想通核心逻辑后,剩下的就轻松多了:

SMB协议适配 → AI生成
WebDAV协议适配 → AI生成
自定义HTTP脚本引擎(Rhino JS)→ AI生成骨架
切片逻辑、配置管理、UI界面 → AI生成大部分

整个项目里,除了Hook点的定位和核心设计思路是我自己想的,其余调用层的实现基本都是AI写的。从零到跑通,只用了两周时间,中间密集迭代了10个版本。

一点感想

Xposed开发的门槛确实被AI拉低了不少,但AI目前还是欠缺一点“透过现象看本质”的能力——它会被混淆的表象带偏,而人类开发者需要做的,就是给它指出正确的方向。

项目源码

欢迎Star,欢迎提Issue一起完善。
地址:https://github.com/zgcwkjOpenProject/XPoser_MiBackup

评论已关闭

Top