MinaMiGo
永遠の夏
Koizumi's Blog

MIUI CN 大陆版 FCM 修复 xposed 模块

一、前言

虽然使用 MIUI EU + 本地化 是个不错的选择,但是说实话,EU团队修改系统后,有时候会有自己的一些问题。且维护一个这么大的本地化项目实在是不容易。本地化项目涉及到了多个功能,相当于一个人再把整个MIUI研究一遍,工作量太大了,几乎耗费了我所有的个人休息时间。想到国际版和国内版其实也有共同之处,那么能不能研究一下MIUI到底是对什么做了限制导致FCM机制无法正常工作。

经过了将近两周的研究,站在巨人的肩膀上,终于将MIUI对FCM的限制基本解决。在这里就不多说过程,直接将成果分享给各位。

此模块由kooritea大佬的fcmfix修改而来,额外做了一些微小的工作,感谢原作者的贡献。

二、正文

请尊重他人的劳动成果!

对本模块进行再发布或者修改请不要抹去原作者的信息,转载请注明来源,谢谢。

酷安:MinaMichita

本篇文章来源:https://blog.minamigo.moe/archives/747

1、模块介绍

通过对MIUI系统部分组件进行hook,以解除对FCM机制的限制。

  • 这个模块仍处于测试阶段,后续会不断改进机制,更新可能会更改【使用方法】,请持续关注本博客更新!
  • 开启智能场景省电可能会导致各种问题,建议关闭。
  • 由于FCM机制的问题,使用此模块难以避免耗电增加
  • 此模块仅在MIUI 12、MIUI 13上测试,在更旧的MIUI版本上可能无法正常工作。
  • 中国大陆地区用户强烈建议搭配FCM Hosts Magisk模块一同使用,可以提升体验。

————————

这个xposed模块做了什么?

  • 解除MIUI对FCM服务的限制(重连时间、域名代理、允许后台网络连接)
  • 防止指定应用被MIUI关闭,导致无法FCM广播唤醒推送

此修改版与原版的区别:

原版:

  • 通过hook谷歌框架强行使FCM服务正常工作。
  • 思路为强行唤醒应用。(此功能仅适配了Android10及以上)
  • 可能在其它面向大陆用户系统上也能正常工作。
  • 未对MIUI的后台清理机制进行修改。(强行停止的应用强制广播唤醒可能会导致无法正常发送通知。强行停止应用会导致已推送的应用通知被删除。关闭的应用虽然能保留通知,但是再次FCM弹通知时会导致之前的通知消失且新通知无法弹出)

此修改版:

  • 通过hook电量与性能解除MIUI对FCM服务的干扰。
  • 取消强行唤醒。(应用限制最低系统版本Android9)
  • 取消hook谷歌框架,重连和心跳为谷歌默认配置,减小耗电。
  • 思路为修改MIUI的各种后台清理机制使应用留存在后台不被强行停止,更加符合FCM机制的设计。
  • 修改版仅适用于MIUI。(仅在MIUI12大陆版上测试,可能无法在更老的MIUI上使用)

————————

关于开源:因为改了很多东西代码挺乱的,等过段时间有空了整理一下代码就会开源到github。

2、使用方法

1.安装MiuiFcmFix应用并激活xposed模块,重启

2.在MiuiFcmFix勾选需要FCM推送的应用,以后台保活

3.给需要FCM推送的应用的【自启动】权限

MiuiFcmFix下载链接:OneDrive

3、反馈问题

1.反馈问题前你必须知道FCM机制,否则不接受反馈。FCM的工作机制与Mipush完全不相同,请先自行了解。

2.反馈前请先检查:

  • 是否按照使用方法进行使用?
  • 应用是否支持FCM推送
  • 应用是否注册并调用了FCM推送?
  • 应用是FCM推送消息,还是FCM唤醒再自己拉信息推送(如:微信、Gmail)?
  • 查看FCM日志查找问题出在哪?

3.不接受耗电增加一类的问题反馈。

4、更新日志

### 1.1 2022-04-21

  • 白名单勾选列表隐藏系统应用
  • 适配MIUI 13
  • 改进解除MIUI对FCM服务的限制
  • 改进模块对异常的处理

### 1.0 2021-09-02

  • 应用更名为MiuiFcmFix,版本号不再与原版同步
  • 对Xposed部分进行大改,修复原版可能会出现无法获取到白名单列表的问题
  • 取消FcmFix的强行唤醒,并将模块最低安卓版本修改为Android 9(API28)
  • 取消FcmFix的对谷歌服务hook,重连和心跳为谷歌默认配置,减小耗电
  • 取消全局模式,改为白名单模式
  • 增加对MIUI对后台服务的清理的处理,不再需要将应用省电策略设置为无限制
  • 增加其它场景下(如游戏一键清理,锁屏自动清理)的MIUI后台清理机制的处理
  • 增加白名单应用交换用户时权限,防止切换手机分身时,白名单内应用被杀死导致推送问题
  • 改进对电量和性能的处理,恢复智能场景省电的睡眠模式

### 0.3.3 2021-08-14

  • First Release
  • 启动全局模式,对所有应用生效
  • 增加对MIUI滑动清理和一键清理的后台清理机制的处理
  • 增加对电量和性能的处理
本篇文章链接:https://blog.minamigo.moe/archives/747
转载请注明出处!日常分类下的文章禁止转载。

MinaMiGo

文章作者

发表评论

textsms
account_circle
email

  • AM

    感谢,试一试

    4周前 回复
  • 居居家的大猫

    不装面具,只装这个可以实现fcm推送吗

    4周前 回复
  • 锄禾

    MIUI13需要自启动权限吗?

    2月前 回复
  • CorkFyv

    MIUI13求适配

    3月前 回复
  • 锄禾

    求更新

    4月前 回复

Koizumi's Blog

MIUI CN 大陆版 FCM 修复 xposed 模块
一、前言 虽然使用 MIUI EU + 本地化 是个不错的选择,但是说实话,EU团队修改系统后,有时候会有自己的一些问题。且维护一个这么大的本地化项目实在是不容易。本地化项目涉及到了多个功…
扫描二维码继续阅读
2021-08-15