TL;DR

文末提供了通用 Magisk 模块下载(MiPushFix.zip),刷入后删除 /data/data/com.xiaomi.xmsf 文件夹,重启即可

前言

书接上回,有了小米钱包后,「刷卡」这一基本需求算是得到了满足,但是国产软件的消息推送仍然是一大难关,我们知道 MiPush 在国内运营已久,大部分国产软件都已经支持了 MiPush 推送框架,并且会在检测到 MiPush 框架后保持比较克制的后台运行行为(腾讯系除外🌝)。而 MIUI 国际版 / EU 版砍掉了 MiPush 框架,Yuuta 开发的 MiPushFramework 也不能在 MIUI 上运行,所以只能另辟蹊径自己解决了。

思路

和添加小米钱包时遇到的问题一样,由于动态分区的缘故,我们不能直接对 /system 分区进行修改,所以还是要借助 Magisk 框架来实现。

首先要弄明白 MiPush 所依赖的文件,这里参考了酷安社区的一篇文章,其中提供了用于修复 MiPush 的卡刷包,研究了一下发现主要修改的就是 /cust 分区的内容,有了思路我们就可以开始制作 Magisk 模块了

制作 Magisk 模块

这次使用了酷安用户碎念原创制作的 Magisk 模块模板(发布地址下载地址),下载后解压备用。

接着下载 /cust 分区文件(cust.zip,下载地址在文末提供),下载后解压至模块模板的 /system 目录下(记得先将 /system 目录下的 placeholder 文件删除),解压后的目录结构应如下图所示

▲目录结构

接着使用编辑器打开 system.prop,将其中的内容全部删除并加入如下内容:

ro.miui.cust_variant=cn
ro.miui.region=CN

 

保存并退出,按照喜好修改 module.prop 的内容(主要控制在 Magisk Manager 模块界面的展示效果,没有实际作用)。

将所有文件压缩为 .zip 格式,导入手机并使用 Magisk Manager 刷入,暂时不用重启。

使用任意文件管理器(Solid Explorer / MT 管理器等),授予其 root 权限,访问 /data/data 目录,找到 com.xiaomi.xmsf 文件夹,并将其删除。

重启手机,打开任意支持 MiPush 的软件(比如京东 / 酷安等),然后查看 App 的应用信息,点击【通知管理】,然后滑动到页面最下端,如果看到 MI PUSH / 小米推送字样则为成功,也可以在酷安社区 #mipush 话题下发帖,如果在没有开启软件的情况下收到回复通知也可证明测试成功。

效果展示

▲ 小米推送

资源下载

文章中所提到的资源文件以及我制作好的 MiPush 模块可以在这里下载,访问密码为 sspai 

题图素材来自いらすとやイラストAC