[Bug] 静默指令类型通知内 @全体成员 无效
- Dominant language
- Java
- Stars
- 5.7k
- Forks
- 416
- Avg merge
- 10d 4h
- Merged PRs (30d)
- 4
Description
### 复现步骤 / Steps to reproduce
1.辅助功能
2.通知设置
3.静默指定类型消息通知
4. 选中第一项“@全体成员“
5.确定并重启QQ
### 预期行为 / Expected behaviour
收到@全体消息时无通知
### 实际行为 / Actual behaviour
收到@全体消息时有通知
### 你使用的Xposed框架 / Xposed Framework you used
NPatch 0.7.4 (530) ; LSPosed 2.0.1 (7639)
### 你使用的安卓系统版本 / Your Android version
16 ; 14
### QQ(TIM) 版本 / QQ(TIM) Version
9.1.25 ; 9.2.65
### 模块版本 / Module Version
1.6.0.r2957.48ec9fa(2957)
### 版本和其他要求 / Version and Other Requirements
- [x] 我正在使用最新 CI 调试版本且启用详细日志 / I am using latest debug CI version of QAuxiliary and enable verbose log
- [x] 我使用的 QQ 是官方发布的正式版本,而非修改版或测试版 / The QQ I am using is an official release version, not a modified or beta version
- [x] 我已经在 [Issue Tracker](https://github.com/cinit/QAuxiliary/issues) 中找过我要提出的问题,没有找到相同问题。重复问题会被关闭。
- [x] 我已知晓并同意,此处仅用于汇报主程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。
- [x] 我已知晓并同意,如果我不按照模板提供的指示进行填写,则我的 Issue 可能会被无条件删除。
### 日志 / Logs
```
1.6.0.r2957.48ec9fa
QQ9.1.25(8368)
PID: 15176, UID: 10537
cc.ioctl.hook.notification.AntiMessage
isInitialized: false
isInitializationSuccessful: false
isEnabled: true
isAvailable: true
isPreparationRequired: false
errors: 0
```
```
1.6.0.r2957.48ec9fa
QQ9.2.65(13180)
PID: 1122, UID: 10341
cc.ioctl.hook.notification.AntiMessage
isInitialized: false
isInitializationSuccessful: false
isEnabled: true
isAvailable: true
isPreparationRequired: false
errors: 1
java.lang.NoSuchMethodException: No method com.tencent.imcore.message.C2CMessageManager.*[class com.tencent.mobileqq.data.MessageRecord, boolean, boolean, class com.tencent.imcore.message.Message, boolean] with return type boolean found
at cc.ioctl.util.Reflex.findSingleMethod(Reflex.java:1131)
at cc.ioctl.hook.notification.MessageInterception.$r8$lambda$iMDSv8Oe5_QpCZ7XFAWbzPTROzk(MessageInterception.kt:64)
at cc.ioctl.hook.notification.MessageInterception$$ExternalSyntheticLambda2.invoke(R8$$SyntheticClass:0)
at xyz.nextalone.util.HookUtilsKt.throwOrTrue(HookUtils.kt:150)
at cc.ioctl.hook.notification.MessageInterception.initOnce(MessageInterception.kt:56)
at io.github.qauxv.hook.BaseHookDispatcher.initialize(BaseHookDispatcher.kt:59)
at cn.lliiooll.hook.AntiRobotMessage.initOnce(AntiRobotMessage.kt:45)
at io.github.qauxv.hook.BaseFunctionHook.initialize(BaseFunctionHook.kt:64)
at io.github.qauxv.core.InjectDelayableHooks.stepForMainBackgroundStartup(InjectDelayableHooks.java:249)
at io.github.qauxv.core.MainHook.performHook(MainHook.java:138)
at io.github.qauxv.poststartup.StartupRoutine.execPostStartupInit(StartupRoutine.java:79)
at io.github.qauxv.poststartup.StartupHook.execStartupInit(StartupHook.java:76)
at io.github.qauxv.poststartup.StartupHook$3.afterHookedMethod(StartupHook.java:220)
at io.github.qauxv.util.xpcompat.WrappedCallbacks$WrappedHookCallback.afterHookedMember(WrappedCallbacks.java:139)
at io.github.qauxv.loader.sbl.lsp101.Lsp101HookWrapper$Lsp101HookDispatchAgent.intercept(Lsp101HookWrapper.java:412)
at h.proceed(r8-map-id-17d577086dd71e6884f065792124b1f833bac720d144fe3990363893462b134a:33)
at android.location.GriengGeedin.run(GriengGeedin.java)
at com.tencent.qqnt.startup.NtStartupDispatcher.c(Unknown Source:23)
at com.tencent.qqnt.startup.NtStartupDispatcher.a(Unknown Source:0)
at com.tencent.qqnt.startup.NtStartupDispatcher$dispatcher$2.invoke(P:2)
at com.tencent.qqnt.startup.NtStartupDispatcher$dispatcher$2.invoke(P:1)
at com.tencent.qqnt.startup.b.run(Unknown Source:8)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
at com.tencent.thread.monitor.plugin.proxy.BaseThread.run(Unknown Source:15)
```
对不起由于txt文件死活传不上来我只能直接粘贴上来了
### 补充说明(可选) / Additional information (optional)
https://github.com/cinit/QAuxiliary/issues/870
此前有类似问题, 但是得到的报错信息不一致并且时间久远所以重开一个issue, 如果觉得还是重复了可以关闭, 我会之后再在原有的issue里重新提供bug信息
我提供了两个版本的bug信息, 一个是安卓16下qq9.1.25使用NPatch修补模式打包安装, 另一个是安卓14下qq9.2.65使用LSPosed注入.
Contributor guide
Research direction
Start with cc.ioctl.hook.notification.MessageInterception.kt, especially the initialization path at lines 56-64, and compare it with the AntiMessage initialization shown in the logs. Reproduce the configuration on the listed QQ and Android versions, then verify that initialization succeeds and that @全体成员 messages remain silent without the reported reflection error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, java, kotlin
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100