MiPushFramework:非 MIUI 设备的小米系统级推送
在非 MIUI 的 Android 设备上以 com.xiaomi.xmsf 提供接近 MIUI 的小米系统级推送服务。
- 浏览
- 2
- 访问
- 0
- 下载
- 0
- 版本
- v1.1.2
- 平台
- Android
详细介绍
项目简介
MiPushFramework 让非 MIUI / HyperOS 的 Android 设备也能使用接近 MIUI 的小米系统级推送。它以 com.xiaomi.xmsf 的形式提供系统推送服务:接入小米推送的应用把推送委托给统一的框架进程,而不必各自常驻后台运行 XMPushService。
项目当前开发分支最低支持 Android 9.0(API 28)。它不是小米官方项目,也不保证所有 ROM 或所有应用都能获得相同行为。
主要功能
- 系统级推送代理:以
com.xiaomi.xmsf包名保留外部应用访问的组件、Provider、Service、Intent 与桥接入口。 - 分层运行时:长连接与协议栈(
vendor/、pinned/)、平台无关的运行时契约与统计模型(core/)、shell 适配层分离。 - 通知能力兼容:通知改写、分组、点击、按钮、VoIP、渠道兼容,以及焦点通知、HyperIsland 超级岛和 Android 实况通知。
- hook 支持:通过 libxposed / LSPosed 入口提供 SystemUI 超级岛 hook 与焦点通知授权相关 hook。
- 新平台通知语义:进度类推送在 Android 16+ 使用
Notification.ProgressStyle,低版本保留常规进度通知;非 MIUI/AOSP 路径避免泄漏 MIUI 私有 extras。 - 管理界面:Compose 编写的管理器,支持应用注册、事件与通知记录、配置加载与运行时状态查看。
- 诊断日志:
LogBundleExporter负责 JSONL 日志导出与旧文本日志清理,发行构建与 debug 构建采用不同日志策略。
安装与使用
发行包可从 Google Play、GitHub Releases 与 GitLab Releases 获取。Release 页面通常提供 normal 与 vc105 两类构建,区别在于目标应用向 XMSF 传递消息的方式:
| 版本 | versionCode | 传递方式 | 建议 |
|---|---|---|---|
normal |
1003003000 |
bindService |
默认首选,稳定性更好 |
vc105 |
105 |
startService |
兼容旧路径或部分 bind 异常 ROM |
小米推送 SDK 会根据 XMSF 的 versionCode 选择传递方式:versionCode >= 106 使用 bindService,versionCode == 105 使用 startService。建议先尝试 normal,若某些 ROM 或应用无法通过 bind 路径传递消息,再切换到 vc105。在 MIUI 上使用 normal 还有一个额外好处:重启后更不容易被系统还原成官方 XMSF。
注意事项
- 涉及厂商 ROM、目标应用策略、系统权限和 Xposed / LSPosed 环境时,实际效果以设备验证为准。
- 日志导出需要 root 权限:归档包含
/data/adb/lspd/log等模块日志目录,非 root 设备在选择保存位置前即会被拦截。 - 正式版不采集 root 诊断,需要完整导出请安装 debug 构建;发行构建不导出日志,只在设备上脱敏落盘并在设置页隐藏日志导出、保留天数与清理入口。
- 项目以 GPL-3.0 许可证开源。
本作品整理自 GitHub 开源项目 magisk317/MiPushFramework,原作者 @magisk317,许可证 GPL-3.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v1.1.2当前版本
<div align="center"> <a href="https://play.google.com/store/apps/details?id=io.github.magisk317.mipush"> <img src="https://img.shields.io/badge/Get%20it%20on-Google%20Play-01875F?style=for-the-badge&logo=googleplay&logoColor=white" alt="Get it on Google Play" height="28"/> </a> <a href="https://github.com/magisk317/MiPushFramework/releases/tag/v1.1.2"> <img src="https://img.shields.io/badge/Get%20it%20on-GitHub-181717?style=for-the-badge&logo=github&logoColor=white" alt="Get it on GitHub" height="28"/> </a> <a href="https://gitlab.com/magisk3171/MiPushFramework/-/releases/v1.1.2"> <img src="https://img.shields.io/badge/Get%20it%20on-GitLab-FC6D26?style=for-the-badge&logo=gitlab&logoColor=white" alt="Get it on GitLab" height="28"/> </a> </div>
- v1.1.1
versionCode 20 / versionName 1.1.1;日志策略随构建类型调整;状态栏图标开关区分三方与系统应用;XMSF 运行时随分发产物交付;修复抖音 Hook 注册失效。
评论