折腾三天,也是终于把微信扔进缓存,同时FCM稳定推送了,这篇文章就尽可能详细说说我的办法。
注意:本篇文章只能让微信进缓存并开启FCM推送,不能实现无后台推送,介意勿看!!!
对于无后台推送最后也会谈到一点自己的看法。
本人设备:Redmi K50
系统为HyperOS1.0.23.12.11.Dev第一版开发版
Android 14,微信play版8.0.37
准备工作:微信谷歌版(play),magisk,root,lsp,fcmfix,FCMHostsForChina,Thanox(解锁高级版)
1.打开谷歌基础服务
2.安装fcmhostsforchina,fcmfix,前者会修改hosts将fcm服务器重定向至台湾(没记错的话),使链接更加稳定,后者在lsp中勾选以下作用域(就是推荐应用)
顺带一提的是我更新a14后怎么也无法让lsp出现桌面图标,就算调出图标点一下手机也会自动重启,常驻通知也时常没有,如果有相同情况可以拨号输入*5776733*打开lsposed,具体我也没去倒腾😴
3.打开Fcm diagnostics,拨号输入*426*,正常情况会有一个EVENTS按钮,正确安装fcmfix后会有另外两个按钮,一个是reconnect,一个是打开fcm。
接着打开fcm,勾选微信
4.打开Thanox,打开微信代收
5.Thanox对微信使用乖巧模式
但建议设置以下规则
KEEP com.tencent.mm/com.google.firebase.messaging.FirebaseMessagingService
KEEP com.tencent.mm/com.tencent.mm.plugin.fcm.WCFirebaseMessagingService
Thanox关闭微信后台启动
顺便说一下手机对微信设置也未更改
6.检查FCM状态,是否为Connected,然后挂上魔法(注意是全局模式),强行停止微信运行,打开微信,找个会自动回复的公众号发个消息,返回fcmdiagnostics查看events,如果出现com.tencent.mm包名,还有一大串id,代表注册成功,关闭魔法,fcm推送设置到此完成
7.Thanox情景模式添加
[
{
"name": "微信进程优化",
"description": "优化保留双进程",
"priority": -2,
"condition": "frontPkgChanged == true && from == \"com.tencent.mm\"",
"actions": [
"Thread.sleep(3000);",
"su.exe(\"ps -ef|grep com.tencent.mm:|grep -v :push|grep -v grep|awk &039;|xargs kill -9\")"
]
}
]
8.经过一系列操作,可以看到微信进入缓存(如果没有进可以等一会),出现FirebaseMessagingService服务就可以了,此时fcm保持稳定推送,本教程结束
谈谈对一些问题的见解:
1.微信国内版可以吗?
没有进一步尝试,但是有酷友提到国内版ipv4不会推送,但是我的play版ipv4下仍会推送,play版应该没有相关的限制
2.自启动/电源设置要不要改?
对本教程来说不需要,因为本篇文章写的是只让微信进入缓存,避免微信后台持续运行,占用cpu资源,而非无后台推送
3.想实现无后台推送怎么办?
我目前的理解是,要实现fcm推送有两种情况,一是FirebaseMessagingService服务一直存活,二是你的登录地点始终在国外
所以本教程原理就是先挂t,然后登录微信,让微信认为你在国外登录从而激活FirebaseMessagingService服务,之后只需要保证微信不完全停止运行,此服务就基本不会消失,一旦完全停止运行,再次登录时就会重新判断你的登录地点,如果回到国内,就很难再触发此服务。想要无后台推送,方法就是全天挂t,保证你在登录时都在国外
4.睡一觉起来谷歌服务被自动关了怎么办?
系统限制,尝试fcmfix关闭电池优化,电池改为无限制,允许自启动,谷歌框架关闭电池优化 可以添加以下情景模式
[
{
"name": "解冻谷歌服务和框架",
"description": "判断谷歌服务是否被系统自动冻结(关闭),自动解冻谷歌服务和框架",
"priority": 1,
"condition": "frontPkgChanged == true&&(pkg.isApplicationEnabled(\"com.google.android.gms\")==false || pkg.isApplicationEnabled(\"com.google.android.gsf\")==false)",
"actions": [
"pkg.enableApplication(\"com.google.android.gms\")",
"pkg.enableApplication(\"com.google.android.gsf\")",
"ui.showShortToast(\"谷歌服务和框架已重新启用\")"
]
}
]
最后还有一招,可以看看关闭doze
5.怎么一收到消息微信就活了/微信和fcm重复推送?
我也是在写本文时才遇到这种情况,目前没有好的解决办法,只能保证fcm推送,但是微信自身push服务也会运行
6.a14也能用吗?
本人就是a14,fcmfix作者并没有明确表示a14无法使用,不要被他人误导
写在最后:现在来看,微信对于国内fcm推送不是很友好,最后也是只能把微信压进缓存,其实进缓存微信仍会拉起自身通知的情况时有发生(PushProcessIPCService在微信未停止时无法杀死,但是墓碑冻结后能不能解决?因为三方墓碑功能过于影响我的日常使用,所以我卸了),但是苦于本人不会去全天挂t,所以不会去选择无后台的方案,此文章讲述方法极其不完善,经验仅供大家参考交流,没法使用的,大家也没必要再去纠结fcm推送,把微信压进缓存就已经差不多了。写这篇文章也是因为各种教程太乱,又是改自启动又是改电源,又是thanox又是黑域,很少有人提到本质上是FirebaseMessagingService在做推送这件事。还有人直接教无后台,实际上也就只能成功那么一次,一旦后续你打开微信,微信发现你在国内登录,就基本没有走fcm的可能。另外,如果你的微信消息多且重要,一定不要倒腾这些东西。
最后感谢你看到这里,如果后续有进一步的发现,我还会发出来大家一起讨论
附上相关文件的下载:
ww[酷币]w.123pan.co[酷币]m/s/VYlfjv-T99[酷币]vd.ht[酷币]ml
提取:4e3m
(本人手上只有8.0.33(play)的微信,也可以用,apks安装包请使用mt管理器或其他安装器安装!)