Releases: NihilityT/MiPushFramework
v0.3.10
- 新增 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
界面相关
-
主界面
- 优化 支持状态栏、导航栏沉浸
-
记录列表
- 新增 在通知渠道被禁用时,在事件项和渠道列表中显示 [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
- 新增 事件搜索功能,由 @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
- 新增 点击应用图标触发重注册(大部分能成功)
- 新增 添加开关控制配置加载情况 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
- 新增 支持显示大图标,应用消息中如果带有图标会自动显示
- 新增 支持使用
__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
- 新增 支持在配置中指定通知的 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
- 新增 before 配置
^
与 after 配置$
,移除 global 配置*
(相当于 after 配置$
) - 新增 配置引用,可以在配置中使用
包名
去引用另一个包的配置,相当于可以声明变量了 - 新增 收到应用推送的消息时,无论应用是否注册,均进行记录并弹出
- 新增 应用列表中显示推送服务自身,可查看推送服务是否注册成功
- 优化 记录中的「注册推送」修改为「尝试注册推送」
- 优化 不再对记录中的非通知消息显示「成功」状态,避免误导用户认为「注册推送」成功
- 优化 合并进程为一个
- 优化 注册流程,使注册流程与官方框架一致
- 优化 移除 persistent 属性,安装为系统应用时,可安装新版本进行更新
- 优化 「将标题相同的通知视为同一会话」 功能不再和「堆叠同一会话的所有通知」功能绑定,可以单独使用
- 修复 应用内不显示图标包问题,恢复 android.permission.QUERY_ALL_PACKAGES 权限声明
- 修复 log 中出现虚假的
want to register push
记录 - 修复 MIUI 上转为系统应用时可能出现白条的问题。移除了相关系统接口调用,转为系统应用不再显示应用图标,建议使用模块实现图标显示
0.3.7.20220928.6de1a204
- 新增 为
operation
字段添加唤醒操作wake
,可配合QQ
通话自动拉起使用,解决锁屏下无法唤起QQ
的问题 - 新增 通知整形,使用自定义值去替换原始通知内容(Android 8 及以上可使用捕获组替换功能)
- 新增 全局配置,在配置中使用
*
作为包名代表全局配置,匹配规则时,只要规则的stop
始终为false
,最终就会走到全局配置 - 修复 系统重启后,配置有概率加载失败的问题,配置加载时机调整到第一次发通知时
配置文件变更:
- 更新
QQ
配置使用wake
操作,解决锁屏时无法调起问题 - 更新
QQ
配置使用整形功能,优化来电时通知栏显示效果(Android 8 及以上可用,旧版本请使用旧配置文件)
通知整形例:
配置文件中添加以下内容,可交换标题与内容
"*": [
{
"metaInfo": {
"title": "(?<title>.*)",
"description": "(?<description>.*)"
},
"newMetaInfo": {
"title": "${description}",
"description": "${title}"
}
}
]
0.3.7.20220926.90f0aaba
- 新增 android.permission.SYSTEM_ALERT_WINDOW 权限请求,用于打开 app
- 修复 重启后未自动加载配置的问题
- 修复 自动打开出现异常时,不会显示通知的问题
- 优化 先展示通知再自动打开 app
0.3.7.20220925.8589c88
- 新增 通过配置文件实现通知过滤、直接打开通知
- 修复 冰箱 SDK 开关与是否能正常使用冰箱进行解冻状态不一致的问题
配置使用说明:
- 使用配置需要首先需要配置目录存放的位置,在 设置-设置配置目录 处设置
- 配置名为
configs.json
- 可配置字段参考具体通知数据中的
metaInfo
,格式参考附件中的configs.json
- 所有在
metaInfo
下配置的字段都通过正则表达式进行匹配,所有字段均为可选,配置为null
代表数据中不能出现该字段 metaInfo
同级路径下另外支持operation
字段,可选值为:忽略通知ignore
, 发出通知notify
, 触发通知效果open
三种类型,可使用|
进行分隔来实现同用,例:"operation": "open|ignore"
metaInfo
同级路径下另外支持stop
字段,默认值为true
, 用来定义当前规则匹配后是否不再匹配下一规则- 当
ignore
与notify
同用时,忽略notify
- 配置优先级按列表顺序定义,可以先定义
notify
再定义ignore
,实现白名单效果 - 配置会在推送服务主界面加载时/更改配置目录时重载
附件中的配置文件自带以下配置:
QQ
来电时,自动拉起QQ
哈啰
广告过滤