Skip to content

v0.4.4-fcmfix-whitelist

Pre-release
Pre-release
Compare
Choose a tag to compare
@anysoft anysoft released this 09 Mar 08:33
· 63 commits to master since this release

参考

@kooritea/fcmfix
@MinaMichita/miuifcmfix


注意

xp模块对系统的修改以及对电量和性能的修改(白名单和gms全量运行)必然导致某些情况下耗电更多。不喜可以关闭本插件!!!!


功能

修复MIUI的电量和性能(com.miui.powerkeeper)针对 fcm 的反向优化,和支持修改电量和性能的白名单功能.

  • 去除电量和性能 对com.google.android.gms的黑名单
  • 默认白名单维护。从白名单删除 "com.tencent.mobileqq"
  • 允许 锁屏通知 (hook disableNotificationOnLockScreen,并禁用该方法)
  • 禁止 强杀、禁用 GMS 服务
  • 禁止 对 GMS 添加DNS和IPTABLE规则

hook 模块

  • com.miui.powerkeeper.utils.GmsObserver

    • updateGmsState
    • updateGmsNetWork
    • stopGetFeedback
    • disableGms
  • com.miui.powerkeeper.utils.GmsCoreUtils;

    • killGmsCoreProcess
  • com.miui.powerkeeper.millet.MilletPolicy

    • mSystemBlackList
    • mDataWhiteList
    • whiteApps
    • musicApp
    • pkgWhiteList
    • mUseDataWhiteList
    • pkgBlackList
    • mUseSystemBlackList
  • com.miui.powerkeeper.statemachine.ExtremePowerController

    • disableGmsCoreIfNecessary
    • disableNotificationOnLockScreen
  • com.miui.powerkeeper.utils.NetdExecutor

    • initGmsChain
    • setGmsChainState
    • setGmsDnsBlockerState

LSPOSED

  • 必须把 电量和性能 添加到作用域
  • 必须把安卓系统添加到作用域
  • 必须把Google play服务添加到作用域
  • 必须把接收推送的应用添加到作用域(telegramx,teams)

测试环境

总结

目前测试fcm推送正常,锁屏teamstelegramx都能正常收到消息和电话/视频

遇到问题

  • 通知不弹出,不提示

    • Telegram X 、Teams 在miui必须把权限管理显示悬浮窗后台弹出界面锁屏显示打开
    • 必须把通知管理通知过滤规则 全部设为重要,其他单项规则按需求配置
  • teams能收到消息推送,但是无法接收通话/视频。一般是因为teams消息的ack落后了。

    • 我这边体现为,收到的最新推送比发送的消息始终落后两条
    • 我的处理方案是 清空Google play服务的全部数据,然后退出teams账号后重新登录账号(可以在设置--手机账户 中删除 microsoft账号),再重启手机。 只要ack恢复正常就能正常收到通话了。
  • fcm中显示no response

    • 是由于应用未响应fcm推送,虽然此时应用是后台存在进程,但是不处理推送消息,一般是因为应用被优化了,可以尝试后台无限制看看,或者灭霸调试要保活什么服务
  • fcm中显示failed to broadcast

    • 出现这个一个是因为应用进程被杀了,可以灭霸情景模式保活或者系统后台无限制,优化要不断地调试才能稳定
  • fcm中显示404 to broadcast

    • 这个官方说是由于token不一致导致的,这个我测试很奇怪,打开应用推送成功,应用切换到后台推送就是404,最后是应用退出登录,清理GMS和应用数据后恢复正常。