Android 应用消息推送从 Android 诞生以来都是麻烦的问题,特别是在国内,这个问题尤为明显。
那 iOS 就没这个问题了吗?当然,苹果在 iOS3 就引进了推送通知服务(Apple Push Notification service),使应用开发者不需要让应用留在后台自己接受消息,而是让开发者把消息推送给苹果的推送服务,然后由推送服务推送给设备,由系统服务统一接收管理,达到了省电省内存的效果。
So?Android 就没有了吗?也有,之前叫做 GCM(Google Cloud Messaging),现在叫做 FCM(Firebase Cloud Messaging)。这个服务是 Google 提供的,依托于 Google Play 服务,在国内无法正常使用。那国内那些第三方推送服务呢?那些推送服务只能靠着连环唤醒的方式实现推送,这样做就会导致应用频繁自启,占用内存,频繁在后台唤醒CPU,浪费电量。
那么就没有两全其美的方法了吗?
有!最近几年国内手机厂商都在做自己系统层级的推送服务,类似 iOS 的那种。还有工信部牵头即将正式开放使用的统一推送联盟。都皆在解决国内安卓应用消息推送问题。
而国内手机厂商中做的最好的就是小米消息推送服务(以下简称:MiPush),基于 MIUI 的消息推送服务,可以做到不唤醒应用的情况下接收消息。
那么非 MIUI 就不能用了吗?
并非如此。开发者 Trumeet 开发出了在任何系统(非 MIUI)都可以使用的 MiPush。
咳咳,由于小山前段时间换了诺基亚,最近也解锁了 BootLoader,装了 Magisk,可以完美的体验 MiPush。
这篇文章就教诺基亚安卓手机用户如何正确的使用 MiPush,当然,其他手机用户想知道如何正确使用,可以加入 QQ 群与我交流。
要想体验到最完美的 MiPush,务必解锁你的诺基亚安卓手机并安装 Magisk,如果你不知道如何解锁或安装 Magisk,可以加入 QQ 群与我交流。(可能还需要 Xposed ?)
1.安装
第一步当然是安装 MiPush 啦
下载地址:https://github.com/Trumeet/MiPushFramework/releases
打开下载地址,下载并安装最新的 manager.apk 和 xmsf_service.apk。
由于这个项目目前还处于试验阶段,所以推荐你们每天安装更新一下最新版本。
2.伪装 MIUI
伪装 MIUI 有两种方法:Xposed 和 Magisk。
Xposed 适用于 Android 8.1 及以下版本,Magisk 适用于所有 Android 版本,我推荐使用 Magisk 来进行伪装。
如果你要使用 Xposed 来进行伪装,先使用 Magisk 安装适合你当前 Android 版本的 Xposed 框架,然后再 Xposed 中激活 MiPush 的 Xposed 模块即可。
Magisk 伪装模块是基于一个叫做 Riru 的模块,这是一个由 Rikka 开发的类似于 Xposed 的东东,可以让基于 Riru 开发的模块进入到应用或系统进程里,从而实现 hook 和修改的目的。
首先要安装 Riru 的核心模块,然后才能使用基于 Riru 开发的模块。
Riru Core:https://github.com/RikkaApps/Riru/releases/latest
下载完成后,打开【Magisk Manager】 → 点击 [模块] → 点击下面的加号 → 选择下载好的 Riru Core 压缩包即可。
Riru Core 安装完成之后,就可以安装 MiPush 伪装模块了,安装方法同上。
Riru MiPushFake:https://github.com/MiPushFramework/MiPushFakeForRiru/releases/latest
安装完成后,重启手机即可。
无论使用那种方法伪装,都需要在【小米推送服务】里开启伪装,支持单应用伪装和全局伪装。
如何检测伪装是否生效?推荐使用【酷安】进行测试,对酷安设置单应用伪装,然后进入酷安查看机型名称是否变成小米。
由于伪装会将机型伪装成小米,如果对支付宝之类的应用进行伪装,可能会造成指纹支付无法使用等。
3.设置白名单
由于核心服务没有界面,所以诺基亚安卓系统的电池管理没有显示核心服务,我们需要手动来添加一下白名单。
这个步骤涉及到修改数据库,请小心行事。
首先需要安装数据库编辑器:https://cdn.mivm.cn/app/SQLite-Editor/SQLite-Editor_2.4.apk
打开 SQLite Editor 并授予 Root 权限
点击 FLIES → 定位到/data/data/com.evenwell.powersaving.g3/databases/
→ 打开background_clean.db
允许自动唤醒:点击disauto_app
→ 找到 com.xiaomi.xmsf → 长按 → 点击 [Delete Record] → YES → 删除成功后返回上一层
允许锁屏保留:点击white_list
→ 点击右上角的 + 按钮 → 输入 com.xiaomi.xmsf → 点击 [Save] → 保存成功后退出应用
关闭电池优化:打开【设置】 → [应用和通知] → 点击最下面的 [高级] → [特殊应用权限] → [电池优化] → 点击上面的 [未优化] → [所有应用] → 找到 MiPush 核心服务 → 将选项改为 [不优化] → 完成
设置开机启动:打开【设置】 → [应用和通知] → 点击最下面的 [高级] → [应用权限] → [开机自动启动应用] → 找到 MiPush 核心服务 → 开启开机启动→ 完成
做完以上这些,就可以保证 MiPush 服务在后台正常的存活和接受推送了。
最后,重启你的手机。
4.使用
重启完成后,打开【小米推送服务】,应该就可以完美的使用了。
新版【小米推送服务】会显示所有你手机里所有支持 MiPush 的应用并显示是否已注册推送。
MiPush 正常运行时通知栏会显示状态信息
推荐测试应用:IT之家、优酷、爱奇艺、梨视频。
MiPush 推送的消息,通知标题都会带有 Push 字样。
虽然支持 MiPush 的应用还不是特别多,最常用的 IM 应用也不支持,不过总好过没有。我们应该期待国内安卓环境会越来越好,我也非常期待绿色应用公约和统一推送联盟能够普及,特别是BAT大佬们的支持。
此教程在基于 Android 8.1、9 的诺基亚7测试通过,不保证通用所有 Android 版本以及所有诺基亚机型。
微信扫描二维码关注我们
如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。
文章评论
总结一句话,加群问小山 :cowboy:
@萧丶默 陈独秀同学,请你坐下。