Skip to content

Releases: NihilityT/MiPushFramework

v0.3.10

16 Aug 15:41
Compare
Choose a tag to compare
  • 新增 decode-base64 方法
  • 新增 在 mipush 模块下,支持借用非推送服务创建的通知渠道发出通知
  • 新增 在主界面中显示推送服务连接状态
  • 新增 默认连接到中国服务器,非中国大陆环境下应该也可以正常使用
  • 新增 支持设置推送服务器地址,可设置为外国服务器,走外国推送渠道
  • 新增 设置界面中显示当前连接的服务器地址
  • 新增 设置页新增「尝试强制注册所有应用」按钮
  • 优化 MIUI 重启掉推送问题,version code 改为 1003003000
  • 优化 应用列表不再显示已注册状态
  • 优化 调试模式下,通知及命令消息在列表中显示相关的类型,打印详细 log
  • 优化 root 下强制注册逻辑
  • 优化 移除是否接收消息的权限设置
  • 优化 不再生成日志备份文件
  • 优化 应用列表、记录列表加载速度
  • 优化 对外服务从 PushServiceMain 改为 XMPushService,与官方一致
  • 优化 移除影响通知展示的三个配置项,改用配置文件实现功能
  • 修复 清理日志文件后需要重启应用才能写日志的问题
  • 修复 部分系统无法加载配置的问题
  • 修复 旧消息的 PushAction 在模拟执行配置时不能解密的问题
  • 修复 注册结果非成功时应用被标记为已注册的问题
  • 修复 MIUI 下使用小爱导致系统崩溃的问题,需要将推送服务安装为系统应用

提示:推荐将推送服务安装为系统应用,拥有系统应用身份能让所有应用检测到推送服务
提示:MIUI 下,使用核心破解(安装时始终使用已装 app 的签名)安装即可,安装完后推送服务带有系统应用身份
提示:(针对 ColorOS,)version code 修改后,若触发注册失败,自行将 version code 修改至 105 使用
提示:连接状态非 connected 的用户,检查这两个域名是否被屏蔽 resolver.msg.xiaomi.net cn.app.chat.xiaomi.net

相关链接:
食用指南:Guide
推送服务下载地址:MiPushFramework
MIPush 模块下载地址:MiPush,使用该模块可「以应用身份」进行推送
配置文件下载地址:MiPushConfigurations

v0.3.9

06 Jun 15:06
Compare
Choose a tag to compare

界面相关

  • 主界面

    • 优化 支持状态栏、导航栏沉浸
  • 记录列表

    • 新增 在通知渠道被禁用时,在事件项和渠道列表中显示 [disable]
    • 优化 一次展示数量改回 20
    • 优化 事件详情字体大小调小
    • 优化 事件详情中,可以多次「执行配置」
    • 修复 在搜索不存在的数据后,事件列表无法刷新的问题
  • 应用列表

    • 新增 支持搜索
    • 新增 显示最后接收消息时间
    • 新增 按最后接收消息时间排序
    • 优化 更新未注册状态文本显示
    • 优化 注册状态显示在应用名字上方
    • 优化 加载应用列表时显示加载动画
    • 优化 在应用缺失 MiPush 服务时,在应用列表中进行提醒
    • 修复 已注册但无服务的应用不显示在列表的问题
  • 应用配置

    • 新增 单击应用图标尝试注册,如果不行就多点几次
    • 新增 显示所有应用渠道
    • 新增 支持删除渠道
  • 高级配置

    • 新增 调试模式开关,开启后通知中展示调试按钮,事件列表中展示所有消息

逻辑相关

  • 新增 存在 root 权限时,自动解冻被冻结应用
  • 新增 存在 root 权限时,进行强制注册时自动删除 xml 文件
  • 新增 支持使用 extra.use_clicked_activity 字段指定是否直接打开意图
  • 新增 配置结构更新,支持大部分事件详情中的字段匹配/替换
  • 新增 配置中支持 replace 方法
  • 新增 base64 解析方法「decode-base64」
  • 优化 json 解析失败时,记录到日志中
  • 优化 通知发布使用 tag 参数,避免通知冲突
  • 优化 日志输出格式
  • 修复 pushAction 字段解析失败时影响配置应用的问题
  • 修复 部分系统拉起应用失败问题
  • 修复 Android 11 以下的系统无法使用消息样式的问题

相关链接:
食用指南:Guide
推送服务下载地址:MiPushFramework
MIPush 模块下载地址:MiPush,使用该模块可「以应用身份」进行推送
配置文件下载地址:MiPushConfigurations

v0.3.8

04 Feb 17:43
Compare
Choose a tag to compare
  • 新增 事件搜索功能,由 @xhebox 大佬实现
  • 优化 配置变更时,自动加载配置
  • 优化 “发送通知”的行为完全模拟消息到达行为,不只是弹出通知
  • 优化 保存已注册应用密钥,实现 pushAction 解析
  • 优化 hook 内部米推 SDK,使推送服务认为当前设备为 MIUI 设备
  • 优化 按应用拼音排序应用列表
  • 优化 加载事件时,显示加载动画
  • 优化 更改版本名规则,重启 release 发布
  • 修复 MIUI 上部分应用无法正常使用的问题(例:查找设备),允许推送服务拉起系统应用
  • 修复 应用列表没有显示所有使用 MiPush 应用的问题
  • 修复 “使用系统推送,但尚未注册”文字颜色问题
  • 修复 大图标优化导致的崩溃问题
  • 修复 未使用分应用的情况下,MessagingStyle 在目标 app 的 TargetSDK 小于 28 (P,9) 时不显示文字图标的问题
  • 修复 MessagingStyle 下,只存在个人头像时,个人头像被作为群组头像的问题
  • 修复 通知被取消时,通知组重新显示副标题的问题
  • 修复 消息过多时,推送产生 DeadobjectException 的问题
  • 修复 偶现无法加载更多数据的问题

本次发布注意事项:
MIPush 模块已一并更新

相关链接:
食用指南:Guide
推送服务下载地址:MiPushFramework
MIPush 模块下载地址:MiPush,使用该模块可「以应用身份」进行推送
配置文件下载地址:MiPushConfigurations

0.3.7.20230120.c2d6eda

20 Jan 17:52
Compare
Choose a tag to compare
Pre-release
  • 新增 点击应用图标触发重注册(大部分能成功)
  • 新增 添加开关控制配置加载情况 toast
  • 新增 数据库降级能力,此版本后的所有版本不会再出现降级崩溃问题
  • 新增 配置中添加 hash 方法
  • 新增 支持大图消息样式
  • 新增 支持带按钮消息
  • 新增 支持 MessagingStyle 样式,需通过配置文件进行使用
  • 新增 事件详情弹框中,第一个按钮改为「运行配置」
  • 优化 大图标流量限制改为 200 KiB,解决部分图片下载失败问题
  • 优化 支持在第一级配置(metaInfo.)和整型对象数据中使用命令和模板字符串
  • 优化 大图标显示,尝试解决锯齿问题
  • 优化 日志界面的事件,点击时直接显示详情
  • 优化 修改「通知」按钮文本为「发出通知」
  • 优化 通知设置自动取消,简单解决 ColorOS 系统点击通知时通知未清除问题(组清理仍不可用)
  • 修复 尝试修复配置文件把 notifyId 置 null 导致重复上报的问题
  • 修复 被替换文本中自带 $ 符号导致替换失败的问题,替换过程中使用 $$ 代表 $
  • 移除 设置中的「将标题相同的通知视为同一会话」开关,可使用配置替代

注:
有关消息样式支持,参见此处规格限制:https://dev.mi.com/console/doc/detail?pId=1278#_3_3
推送服务下载地址:MiPushFramework
支持配合模块实现「以应用身份」进行推送,模块下载地址:MiPush
配置文件下载地址:MiPushConfigurations
MessagingStyle 样式需使用配置实现,使用分应用模块的用户,需连同分应用模块一起更新
MessagingStyle 样式、大图样式效果如图:

0.3.7.20230112.9e7fbb1f

12 Jan 11:53
Compare
Choose a tag to compare
Pre-release
  • 新增 支持显示大图标,应用消息中如果带有图标会自动显示
  • 新增 支持使用 __mi_push_round_large_icon 实现大图标圆形显示
  • 新增 支持使用 AndroidNotifyIconAdapt 仓库中的图标,相关 json 文件需放置于配置目录下的 icon 目录
  • 新增 配置中支持 "cond" "$" "decode-uri" "parse-json" "property" 命令,具体用法进群咨询
  • 修复 部分系统无法完全去除 subtext 的问题

支持配合模块实现「以应用身份」进行推送,模块下载地址:https://github.com/NihilityT/MiPush/releases
支持使用配置文件实现 QQ、酷安 等消息推送显示图标,配置进群获取,效果如图:

0.3.7.20230108.41efec1

08 Jan 08:18
Compare
Choose a tag to compare
Pre-release
  • 新增 支持在配置中指定通知的 subtext,通过在 extra 中配置 __mi_push_sub_text 字段指定
  • 优化 移除收到通知时发送广播的行为,尝试解决拉起 QQ 问题
  • 优化 为常驻通知添加通知组,MIUI 可以通过关闭通知组关闭常驻通知
  • 优化 图标展示,尝试修复图标带圆环问题
  • 优化 权限申请流程,所有权限都在向导界面申请,申请失败时,转调 root 权限或 appops 应用
  • 优化 记录项的状态单独一行显示
  • 优化 记录项显示完整时间
  • 优化 记录项显示当前记录(经过配置文件整形)的通知渠道与相关的 operation
  • 优化 在「修改权限」标题处,添加保存提示
  • 优化 优化记录项展示,以 json 格式展示记录项的详细内容,允许长按内容进行选择
  • 优化 尝试解码记录项中的 PushAction 字段
  • 优化 命名捕获取允许在 8.0 以下的系统中使用,前提是不存在普通捕获组
  • 优化 选择配置目录后,配置目录下的所有 json 文件都会被读取,支持多配置文件,具体配置项不可重复
  • 优化 移除多余的配置初始化行为
  • 优化 展示所有加载成功的配置列表,展示所有加载失败配置的异常,toast 展示更相关的 json 出错位置
  • 修复 修复配置项引用失败问题,保证即使出现循环引用每个配置也只会执行一次
  • 修复 配置中修改通道名无法立即生效的问题
  • 修复 模拟通知崩溃的问题
  • 修复 分应用状态下,「修改权限」页通知渠道显示不正确的问题
  • 修复 尝试修复 Android 13 的 ForegroundServiceDidNotStartInTimeException
  • 修复 一些 Android 13 ROM 崩溃的问题

支持配合模块实现「以应用身份」进行推送,模块下载地址:https://github.com/NihilityT/MiPush/releases

0.3.7.20221026.92d4eb92

26 Oct 15:41
Compare
Choose a tag to compare
Pre-release
  • 新增 before 配置 ^ 与 after 配置 $,移除 global 配置 *(相当于 after 配置 $
  • 新增 配置引用,可以在配置中使用 包名 去引用另一个包的配置,相当于可以声明变量了
  • 新增 收到应用推送的消息时,无论应用是否注册,均进行记录并弹出
  • 新增 应用列表中显示推送服务自身,可查看推送服务是否注册成功
  • 优化 记录中的「注册推送」修改为「尝试注册推送」
  • 优化 不再对记录中的非通知消息显示「成功」状态,避免误导用户认为「注册推送」成功
  • 优化 合并进程为一个
  • 优化 注册流程,使注册流程与官方框架一致
  • 优化 移除 persistent 属性,安装为系统应用时,可安装新版本进行更新
  • 优化 「将标题相同的通知视为同一会话」 功能不再和「堆叠同一会话的所有通知」功能绑定,可以单独使用
  • 修复 应用内不显示图标包问题,恢复 android.permission.QUERY_ALL_PACKAGES 权限声明
  • 修复 log 中出现虚假的 want to register push 记录
  • 修复 MIUI 上转为系统应用时可能出现白条的问题。移除了相关系统接口调用,转为系统应用不再显示应用图标,建议使用模块实现图标显示

配置引用例:
2C03544FF432E5E2112970ABB50384B5

0.3.7.20220928.6de1a204

28 Sep 07:36
Compare
Choose a tag to compare
Pre-release
  • 新增 为 operation 字段添加唤醒操作 wake,可配合 QQ 通话自动拉起使用,解决锁屏下无法唤起 QQ 的问题
  • 新增 通知整形,使用自定义值去替换原始通知内容(Android 8 及以上可使用捕获组替换功能)
  • 新增 全局配置,在配置中使用 * 作为包名代表全局配置,匹配规则时,只要规则的 stop 始终为 false,最终就会走到全局配置
  • 修复 系统重启后,配置有概率加载失败的问题,配置加载时机调整到第一次发通知时

配置文件变更:

  • 更新 QQ 配置使用 wake 操作,解决锁屏时无法调起问题
  • 更新 QQ 配置使用整形功能,优化来电时通知栏显示效果(Android 8 及以上可用,旧版本请使用旧配置文件)

通知整形例:
配置文件中添加以下内容,可交换标题与内容

        "*": [
            {
                "metaInfo": {
                    "title": "(?<title>.*)",
                    "description": "(?<description>.*)"
                },
                "newMetaInfo": {
                    "title": "${description}",
                    "description": "${title}"
                }
            }
        ]

整形前:
ZW66XN24}W69SXR%BVS738I
整形后:
%E$}MW)AM5R G88731U1}_Q

0.3.7.20220926.90f0aaba

26 Sep 08:28
Compare
Choose a tag to compare
Pre-release
  • 新增 android.permission.SYSTEM_ALERT_WINDOW 权限请求,用于打开 app
  • 修复 重启后未自动加载配置的问题
  • 修复 自动打开出现异常时,不会显示通知的问题
  • 优化 先展示通知再自动打开 app

0.3.7.20220925.8589c88

26 Sep 04:03
Compare
Choose a tag to compare
Pre-release
  • 新增 通过配置文件实现通知过滤、直接打开通知
  • 修复 冰箱 SDK 开关与是否能正常使用冰箱进行解冻状态不一致的问题

配置使用说明:

  • 使用配置需要首先需要配置目录存放的位置,在 设置-设置配置目录 处设置
  • 配置名为 configs.json
  • 可配置字段参考具体通知数据中的 metaInfo,格式参考附件中的 configs.json
  • 所有在 metaInfo 下配置的字段都通过正则表达式进行匹配,所有字段均为可选,配置为 null 代表数据中不能出现该字段
  • metaInfo 同级路径下另外支持 operation 字段,可选值为:忽略通知 ignore, 发出通知 notify, 触发通知效果 open 三种类型,可使用 | 进行分隔来实现同用,例:"operation": "open|ignore"
  • metaInfo 同级路径下另外支持 stop 字段,默认值为 true, 用来定义当前规则匹配后是否不再匹配下一规则
  • ignorenotify 同用时,忽略 notify
  • 配置优先级按列表顺序定义,可以先定义 notify 再定义 ignore,实现白名单效果
  • 配置会在推送服务主界面加载时/更改配置目录时重载

附件中的配置文件自带以下配置:

  • QQ 来电时,自动拉起 QQ
  • 哈啰广告过滤