cinit / cinit/QAuxiliary

[Bug] 静默指令类型通知内 @全体成员 无效

Open
#1,603 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.