{"id":47562451,"url":"https://github.com/oneQAQone/QFun","last_synced_at":"2026-04-13T14:01:01.171Z","repository":{"id":320727997,"uuid":"1081828519","full_name":"oneQAQone/QFun","owner":"oneQAQone","description":"一个QQ/TIM功能性Xposed模块","archived":false,"fork":false,"pushed_at":"2026-04-13T07:04:00.000Z","size":4433,"stargazers_count":114,"open_issues_count":13,"forks_count":21,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T08:26:55.031Z","etag":null,"topics":["lsposed","qq","tim","xposed","xposed-module"],"latest_commit_sha":null,"homepage":"https://github.com/Xposed-Modules-Repo/me.yxp.qfun","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oneQAQone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-23T10:51:33.000Z","updated_at":"2026-04-13T07:50:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"dcf9a48f-2250-4595-a84f-cc279e84082a","html_url":"https://github.com/oneQAQone/QFun","commit_stats":null,"previous_names":["oneqaqone/qfun"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oneQAQone/QFun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oneQAQone%2FQFun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oneQAQone%2FQFun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oneQAQone%2FQFun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oneQAQone%2FQFun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oneQAQone","download_url":"https://codeload.github.com/oneQAQone/QFun/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oneQAQone%2FQFun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31755536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T13:27:56.013Z","status":"ssl_error","status_checked_at":"2026-04-13T13:21:23.512Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lsposed","qq","tim","xposed","xposed-module"],"created_at":"2026-03-29T20:00:25.932Z","updated_at":"2026-04-13T14:01:01.154Z","avatar_url":"https://github.com/oneQAQone.png","language":"Java","readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eQFun\u003c/h1\u003e\n\n![Kotlin](https://img.shields.io/badge/Kotlin-2.3.0-7F52FF?style=flat-square\u0026logo=kotlin\u0026logoColor=white)\n![Jetpack Compose](https://img.shields.io/badge/UI-Jetpack%20Compose-4285F4?style=flat-square\u0026logo=android\u0026logoColor=white)\n![Platform](https://img.shields.io/badge/Platform-Android-3DDC84?style=flat-square\u0026logo=android\u0026logoColor=white)\n![GitHub Stars](https://img.shields.io/github/stars/oneQAQone/QFun?style=social)\n\n\u003c/div\u003e\n\n# 简介\n\n一款基于 Xposed 框架开发的 QQ/TIM 功能增强模块。\n本项目采用了 **Kotlin** + **Jetpack Compose** 的现代 Android 技术栈构建。\n\n# 功能列表\n\n### 模块功能\n仅列举部分代表性功能，更多实用功能请在模块内探索：\n- [x] 群打卡\n- [x] 防撤回 (带提示)\n- [x] 自动续火\n- [x] 消息复读 (+1)\n- [x] 闪照破解\n- [x] 屏蔽艾特全体\n- [x] 简洁群管菜单\n- [x] 一键点赞\n- [x] 上传 APK 重命名\n- [x] 去除回复自动艾特\n- [x] 平板模式\n- [x] 显示精确消息时间\n- [x] 自定义骰子/猜拳\n- [x] 移除表情回应\n- [x] 解除风险网页拦截\n\n\u003e 💡 如有其他功能需求欢迎提交反馈，具备可行性的功能将被加入开发计划。\n\n### 脚本扩展与编写\n模块内置基于 **BeanShell** 的脚本引擎，支持使用 **Java 语法** 编写脚本以动态扩展功能，可自行编写或从在线脚本库下载。\n\n*   **事件驱动**：实时监听消息收发、群成员变动及社交交互等事件，用于触发自动化逻辑。\n*   **QQ接口**：封装基于NT架构的 QQ 操作 API 及数据获取接口，提供便捷的底层调用能力。\n*   **交互集成**：支持在消息长按菜单及脚本悬浮窗中注册自定义功能入口，增强交互体验。\n*   **动态加载**：提供运行时加载外部类库或 Java 源码的能力，实现灵活的功能热插拔。\n\n# 技术栈\n\n### 💻 核心语言与架构\n*   **Kotlin**: 项目逻辑与 UI 代码主要采用 Kotlin 编写。充分利用 **Coroutines**（协程）处理复杂的异步任务（如网络请求、IO 操作），确保主线程流畅不卡顿。\n*   **MVVM**: 采用 Model-View-ViewModel 架构设计，实现 UI 状态与业务逻辑的解耦。\n\n### 🎨 界面与交互\n*   **Jetpack Compose (Material3)**: 摒弃传统 XML，基于 Google 最新设计规范构建的全声明式 UI，提供沉浸式视觉体验与动态主题适配。\n\n### 🛠 逆向与 Hook\n*   **DexKit**: 集成高效的 C++ 运行时字节码分析库，通过特征匹配而非硬编码查找 Hook 点，极大提升了模块在宿主更新后的存活率（抗混淆）。\n*   **Xposed API**: 采用 LibXposed 标准接口并兼容 Legacy Xposed，确保跨框架的稳定性与高性能。\n\n### 📦 数据与构建\n*   **Kotlin Serialization**: 官方高性能序列化库，处理配置文件与网络数据的 JSON 读写，确保类型安全。\n*   **KSP**: 使用 Kotlin Symbol Processing 在编译时自动扫描注解并生成 Hook 注册表，实现模块功能的解耦与自动装载。\n\n### 🔌 动态扩展\n*   **BeanShell**: 内置轻量级 Java 脚本解释器，支持用户编写脚本动态调用模块 API，实现功能的热插拔与扩展。\n\n# 适配与运行环境\n\n### Android 系统\n*   **最低版本**: Android 8.0 (API Level 26)\n*   **推荐版本**: Android 11.0+ (以获得最佳的 UI 适配体验)\n*   **架构支持**: `arm64-v8a` (主流), `armeabi-v7a`。**暂不支持 x86 环境**（部分模拟器无法使用）。\n\n### 宿主应用\n| 应用 | 推荐版本 | 备注 |\n| :--- | :--- | :--- |\n| **QQ** | `v9.1.25` 及以上 | 其他基于 NT 架构的版本兼容性需自行测试 |\n| **TIM** | `v4.0.95` 及以上 | 针对旧版架构做了部分兼容 |\n\u003e ⚠️ 新增功能主要基于最新版 QQ 开发，旧版本可能存在兼容性问题。\n\n### 框架支持\n\n| 环境类型 | 推荐方案 | 说明 |\n| :--- | :--- | :--- |\n| **✅ Root 环境** | **LSPosed (Zygisk/Riru)** | **强烈推荐**。支持 Scope 作用域模式，性能损耗最小，Hook 稳定性最高。 |\n| **🛡️ 免 Root 环境** | **LSPatch 及主流免 Root 框架** | **推荐**。通过修补 APK 的方式集成 Xposed 环境，适合无法解锁 Bootloader 的设备。 |\n| *其他环境* | *EdXposed / 太极 / VMOS* | *理论支持*，但属于旧一代技术或容器环境，可能存在兼容性问题，未做全面测试。 |\n\n# 反馈与日志\n\n为了高效定位问题，反馈时**请务必注明**以下信息：\n1.  **宿主版本**\n2.  **模块版本**\n3.  **运行框架及版本**\n\n\u003e **💡 提示**：`Android/data/[宿主包名]/QFun/global/log/` 目录下的 **environment_info.txt** 已自动记录了完整的运行环境信息，建议在反馈时一同提交。\n\u003e 您也可以直接打包并反馈 **LSPosed 框架日志**（建议开启详细日志）。\n\n### 1. 常规错误\n\u003e 指功能异常、脚本报错等未导致应用闪退的情况。\n*   **文件**: `error_log.txt`\n*   **位置**: `Android/data/[宿主包名]/QFun/[当前QQ号]/log/`\n\n### 2. 应用崩溃\n\u003e 指应用直接停止运行、闪退的情况。\n*   **文件**: `crash_[时间戳].zip`\n*   **位置**: `Android/data/[宿主包名]/QFun/[当前QQ号]/crash/`\n    *   *(注：若未登录即闪退，请检查 `.../QFun/global/crash/` 目录)*\n*   **提示**: 闪退弹窗中**点击路径文字**即可直接复制完整路径。\n\n### ⚠️ 关于路径\n请在设备的**内部存储**（若是应用分身/多开，则在对应的**分身存储**）中查找上述路径。\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n### 致谢\n\n本项目借鉴了一些开源项目，特别感谢以下开源项目提供的底层支持、架构参考及代码灵感：\n\n| Open Source Project | Role \u0026 Description |\n| :--- | :--- |\n| [![LSPosed](https://img.shields.io/badge/LSPosed-Framework-blue?style=flat-square\u0026logo=android)](https://github.com/LSPosed/LSPosed) | **现代化的 Xposed 框架**\u003cbr\u003e提供了稳定、高效且支持作用域的运行环境。 |\n| [![DexKit](https://img.shields.io/badge/DexKit-Analysis-orange?style=flat-square\u0026logo=c%2B%2B)](https://github.com/LuckyPray/DexKit) | **Native 级动态分析库**\u003cbr\u003e赋予模块强大的运行时字节码查找与抗混淆能力。 |\n| [![Compose](https://img.shields.io/badge/Jetpack_Compose-UI_Toolkit-4285F4?style=flat-square\u0026logo=jetpackcompose\u0026logoColor=white)](https://developer.android.com/jetpack/compose) | **现代化 UI 工具包**\u003cbr\u003e构建了模块美观、流畅且支持动态主题的用户界面。 |\n| [![LibXposed](https://img.shields.io/badge/LibXposed-Next_Gen_API-green?style=flat-square\u0026logo=android)](https://github.com/libxposed/api) | **下一代 Hook 标准**\u003cbr\u003e提供了跨框架兼容的底层 API 接口支持。 |\n| [![BeanShell](https://img.shields.io/badge/BeanShell-Script_Engine-brown?style=flat-square\u0026logo=openjdk\u0026logoColor=white)](https://github.com/beanshell/beanshell) | **轻量级 Java 脚本引擎**\u003cbr\u003e提供了模块内置的动态脚本执行能力，支持用户通过编写脚本灵活扩展功能。 |\n| [![QAuxiliary](https://img.shields.io/badge/QAuxiliary-Architecture-8A2BE2?style=flat-square\u0026logo=github)](https://github.com/cinit/QAuxiliary) | **架构兼容与注入实现**\u003cbr\u003e借鉴了 Activity 代理注入及资源加载的成熟方案以及双框架支持，并参考了其多处核心 Hook 逻辑与代码实现。 |\n| [![TCQT](https://img.shields.io/badge/TCQT-Interfaces-F7DF1E?style=flat-square\u0026logo=github\u0026logoColor=black)](https://github.com/callng/TCQT) | **编译时接口与逻辑参考**\u003cbr\u003e借鉴了关键业务类的编译时接口定义，同时参考了其部分 Hook 点位分析与功能实现写法。 |\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n# 免责声明\n\n1.  **仅供学习交流**: 本项目开发初衷仅为 Android 开发与逆向工程技术的学习、交流与研究。\n2.  **风险自担**: 使用本模块可能会违反 QQ/TIM 的用户协议，存在导致账号被冻结、封禁或功能受限的风险。**开发者不对因使用本模块造成的任何账号损失、数据丢失或其他后果负责。**\n3.  **非商业用途**: 本项目完全免费开源，禁止任何人将本项目用于商业用途或非法用途。\n\n**如果您下载、安装或使用了本模块，即代表您已阅读并同意上述免责声明。**\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n*Made with ❤️ by [oneQAQone](https://github.com/oneQAQone)*\n\n\u003c/div\u003e\n","funding_links":[],"categories":["App Patches and Mods"],"sub_categories":["Social Media Mods"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FoneQAQone%2FQFun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FoneQAQone%2FQFun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FoneQAQone%2FQFun/lists"}