一个 Xposed 模块,将小米备份的 DFS 存储流程重定向到自建的 SMB、WebDAV 或自定义 HTTP 服务,实现本地/私有云备份。

Stars

75

7 天增长

暂无数据

Fork 数

14

开放 Issue

1

开源协议

Apache-2.0

最近更新

2026-07-21

AI 仓库情报摘要
FR-AI / ANALYSIS

为什么值得关注

提供了一种开源实用的方法,绕开小米专有云备份,将数据存储在用户控制的存储上,支持多种协议和大文件分片上传。

适合谁使用

  • 希望自建备份存储的小米手机用户
  • 使用 Xposed/LSPosed 寻找 MIUI 备份替代方案的用户
  • 对 Hook 小米系统应用感兴趣的开发者
  • 拥有 NAS 或私有云存储的用户

典型使用场景

  • 通过 SMB 将小米手机数据(设置、应用)备份到本地 NAS
  • 将备份上传到支持 WebDAV 的云盘(如 Nextcloud)
  • 在不同小米设备间迁移备份数据,无需小米云
  • 结合自定义 HTTP 脚本实现高级自动化备份

项目优势

  • 支持 SMB/CIFS、WebDAV 和自定义 HTTP 脚本,存储方式灵活
  • 对大文件实现了可配置的分片上传,适合大容量备份
  • 开源(Apache 2.0),项目结构清晰,文档齐全
  • 可根据配置自动清理超出数量限制的旧备份

使用前须知

  • 需要 Xposed 框架(需 root 或 LSPatch)且 Android 9.0+
  • 仅适用于小米 MIUI 设备及小米备份应用
  • 使用前需搭建独立的存储服务器并手动编辑配置文件

README 快速开始

XPoser_MiBackup - 小米云备份助手

通过 Xposed 模块虚拟小米智能存储设备,将小米备份 App 的 DFS 存储流程重定向到自建 SMB、WebDAV 或自定义 HTTP 服务,实现备份与恢复数据的云端存储

原理

小米备份 App 会通过 DFS 服务连接小米智能存储设备,并通过 AIDL 接口执行目录查询、文件上传、文件下载和进度回调;本模块注入 com.android.settingscom.miui.backup 进程,在设置页展示配置入口,并在备份 App 的 DFS/AIDL 边界将文件操作改由 SMB/WebDAV/自定义 HTTP 完成

小米备份 App
  -> 查询智能存储设备:返回虚拟设备
  -> 连接 DFS 服务:模拟在线和已连接
  -> DFS AIDL 上传:写入 SMB/WebDAV/自定义 HTTP
  -> DFS AIDL 下载:从 SMB/WebDAV/自定义 HTTP 读取
  -> 进度与完成回调:回传给小米备份原流程

主要 Hook 边界在 DFS AIDL、设置页入口和明确的备份 UI/服务事件,尽量避免直接依赖混淆业务函数

功能

  • 在系统设置中注入「云备份助手」配置入口
  • 拦截 DFS 连接,模拟小米智能存储设备在线状态
  • 支持 SMB/CIFS、WebDAV 和自定义 HTTP 脚本三种传输协议
  • 备份和恢复时将文件重定向到 SMB/WebDAV/自定义 HTTP 服务器
  • 顶部“备份”按钮点击进入小米备份的智能存储备份页,长按进入小米应用商店的备份升级页
  • 大文件在 Cloud 层统一切片上传,SMB、WebDAV 和自定义 HTTP 共用同一套切片逻辑
  • 自动清理超出数量限制的旧备份

图片预览

更多图片:imgs

环境要求

  • Android 9.0+(minSdk 28)
  • 已安装 Xposed 框架(LSPatch / LSPosed / EdXposed 等)
  • 支持的 Xposed 作用域:com.android.settingscom.miui.backup

配置

配置入口:系统设置 -> 云备份助手

配置文件:

/sdcard/MIUI/backup/config.ini

常用配置:

配置项说明
protocol存储协议,smbwebdavcustom
backup_path云端备份根目录,默认 MIUI/backup
upload_threads并发上传线程数,默认 3
chunk_size_mb上传切片大小,默认 64;设为 0 表示不切片
backup_max最大保留备份数,0 表示不自动清理
device_name设置页中展示的虚拟设备名称
device_describe设置页中展示的虚拟设备描述

SMB 配置:

配置项说明
smb_serverSMB 服务器地址
smb_portSMB 端口,默认 445
smb_shareSMB 共享名
smb_userSMB 用户名
smb_passSMB 密码

WebDAV 配置:

配置项说明
webdav_urlWebDAV 根地址
webdav_userWebDAV 用户名
webdav_passWebDAV 密码

自定义 HTTP 脚本配置:

配置项说明
custom_script_b64Base64 编码后的 JS 脚本,设置页会自动编码/解码

自定义 HTTP 只需要在设置页输入一段完整 JS 脚本,服务器地址、Token、Cookie 和认证方式都写在脚本里,不需要额外输入框。自定义脚本的写法、接口说明和示例见 自定义 HTTP 脚本文档

切片大小由 chunk_size_mb 控制;设为 0 时只上传原文件,不生成分片和 manifest。启用切片时 Cloud 层会统一生成 part 文件和 .mibak.json manifest,恢复时兼容未切片的旧备份文件

项目结构

app/src/main/java/com/zgcwkj/
  comm/
    ConfigHelp.java       配置文件读写
    CloudFileHelp.java    SMB/WebDAV/自定义 HTTP 统一入口
    SmbFileHelp.java      SMB 实现
    WebdavFileHelp.

项目描述

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

相关仓库与替代方案

根据分类、Topic 和编程语言匹配的相似项目。

oversecured
oversecured GitHub avatar

Samsung_Vulnerabilities

Oversecured discloses a report of 176 vulnerabilities discovered in Samsung preinstalled apps between 2022 and 2025, with 140 detailed, all fixed in collaboration with Samsung.

Java
310
wxxsfxyzm
wxxsfxyzm GitHub avatar

MiuiBackGestureHook

An LSPosed module that hooks MIUI SystemUI back gestures using modern Xposed API 102 for research and customization.

Java
86
SangLuoCN
SangLuoCN GitHub avatar

OneStep4

OneStep4.0 is a multi-window desktop container for Android that requires root or system-level privileges, enabling a main window with several side windows for efficient app multitasking.

Java
84