v2.2.1 更新说明: - 新增 xposed-module(Telegram/微信/SQLite Hook),双 APK + LSPosed 作用域 - HookMessageReceiver 后台直接 DebugForwarder + goAsync,修复 notiMessage 退后台丢消息 - MessageLogStore 日志持久化;AppConfig 调试/上传开关;PC 调试台 debug-server - 健康检查去掉联网限制;通知/Hook 通道增加诊断日志 - 安装脚本 install-full/configure-lsposed/start-debug-server;文档 CHANGELOG + HOOK_GUIDE
100 lines
3.8 KiB
Markdown
100 lines
3.8 KiB
Markdown
# 更新说明
|
||
|
||
## v2.2.1(2026-07-02)
|
||
|
||
### 修复:Hook 通道在 notiMessage 后台时丢失消息
|
||
|
||
**问题**
|
||
TG 在前台、notiMessage 切到后台时,Hook 虽能收到 Xposed 广播,但原先需经 `startService` 才转发到 PC。Android 8+ 会限制后台启动服务,导致 PC 调试台和日志经常收不到 `[Hook/...]` 消息,表现为「必须两个 App 都在当前页面才行」。
|
||
|
||
**改动**
|
||
|
||
| 模块 | 说明 |
|
||
|------|------|
|
||
| `HookMessageReceiver` | 收到广播后**直接在 Receiver 内**调用 `DebugForwarder`;使用 `goAsync()` 等待 HTTP 完成,避免进程被提前回收 |
|
||
| `DebugForwarder` | 增加完成回调与详细日志(成功 / HTTP 错误 / 网络失败) |
|
||
| `NotificationService` | `submitFromHook` / `requestStartMonitoring` 改用 `startForegroundService`(正式上传模式);通知通道增加诊断日志 |
|
||
| `NotificationHealthCheckWorker` | 健康检查**不再要求联网**;每 15 分钟自动尝试恢复通知监听 |
|
||
|
||
**诊断 logcat 标签**
|
||
|
||
```text
|
||
HookMessageReceiver — Hook 广播到达 / 被跳过
|
||
DebugForwarder — PC 转发结果
|
||
NotificationService — 系统通知到达 / 空通知跳过
|
||
NotiHealthCheck — 定时健康检查
|
||
```
|
||
|
||
```powershell
|
||
adb logcat | findstr /i "HookMessageReceiver DebugForwarder NotificationService NotiHealthCheck"
|
||
```
|
||
|
||
**验证步骤**
|
||
|
||
1. 安装新版主 App:`scripts\install-debug.ps1`
|
||
2. 启动 PC 调试台:`scripts\start-debug-server.ps1`
|
||
3. notiMessage 点「开始监听」后**切到桌面**
|
||
4. 打开 TG 发消息 → PC 应出现 `[Hook/xposed_telegram]`
|
||
|
||
> **说明**:TG 在后台时仍走**通知通道**,需 TG 弹出系统通知。若 TG 被系统冻结或未弹通知,请给 TG / notiMessage 设「电池不受限制」,并确认群未静音。
|
||
|
||
---
|
||
|
||
## v2.2 + Xposed v1.1.0
|
||
|
||
### 新功能
|
||
|
||
- **Telegram 专用 Hook**(`TelegramMessageHook`):前台抓取已解密消息,支持文字 / 图片说明 / 群名
|
||
- **双 APK 架构**:主 App + `xposed-module`,LSPosed 作用域需勾选 Telegram 与 notiMessage
|
||
- **PC 本地调试台**(`debug-server/server.py`,端口 8765):按群/会话分组展示
|
||
- **`MessageLogStore`**:监听页日志持久化,App 后台再打开可恢复历史
|
||
- **`DebugForwarder`**:消息 POST 到 PC(`AppConfig.ENABLE_DEBUG_FORWARD`)
|
||
- **安装脚本**:`build-debug.ps1`、`install-debug.ps1`、`install-full.ps1`、`configure-lsposed.py`
|
||
|
||
### 配置(`AppConfig.java`)
|
||
|
||
| 开关 | 当前默认值 | 含义 |
|
||
|------|------------|------|
|
||
| `ENABLE_SERVER_UPLOAD` | `false` | 正式后端上传 |
|
||
| `ENABLE_DEBUG_FORWARD` | `true` | 转发到 PC 调试台 |
|
||
| `DEBUG_SERVER_URL` | `http://127.0.0.1:8765` | 调试服务地址(USB 用 adb reverse) |
|
||
|
||
### 双通道机制
|
||
|
||
| 场景 | 通道 | 日志标识 |
|
||
|------|------|----------|
|
||
| TG 后台 / 锁屏有系统通知 | 通知监听 | 无前缀 |
|
||
| TG 前台(通常无通知) | Xposed Hook | `[Hook/xposed_telegram]` |
|
||
|
||
### 已知限制
|
||
|
||
- 通用 SQLite Hook 对 Telegram **无效**(消息在加密 `data` 字段)
|
||
- 监听包名须与实际安装一致,如 `org.telegram.messenger.web`
|
||
- 空内容通知(纯图片无文字)会被跳过
|
||
- Android Studio 直接 Run 只装主 App;完整能力需 `install-full.ps1`
|
||
|
||
### 文档
|
||
|
||
- 架构与扩展:`docs/HOOK_GUIDE.md`
|
||
- Agent 说明:`AGENTS.md`
|
||
|
||
---
|
||
|
||
## 安装与升级
|
||
|
||
```powershell
|
||
# 构建
|
||
powershell -ExecutionPolicy Bypass -File scripts\build-debug.ps1
|
||
|
||
# 安装双 APK
|
||
powershell -ExecutionPolicy Bypass -File scripts\install-debug.ps1
|
||
|
||
# 完整安装(含 LSPosed 作用域 + adb reverse + 电池白名单)
|
||
powershell -ExecutionPolicy Bypass -File scripts\install-full.ps1
|
||
|
||
# PC 调试台
|
||
powershell -ExecutionPolicy Bypass -File scripts\start-debug-server.ps1
|
||
```
|
||
|
||
升级 v2.2.1 后**至少需重装主 App**;若只改了主 App 代码,Xposed 模块无需重装。
|