当前位置: 首页 > news >正文

微信抢红包插件 WeChatLuckyMoney 完整解析:它如何做到自动抢红包?

微信抢红包插件 WeChatLuckyMoney 完整解析:它如何做到自动抢红包?

【免费下载链接】WeChatLuckyMoney:money_with_wings: WeChat's lucky money helper (微信抢红包插件) by Zhongyi Tong. An Android app that helps you snatch red packets in WeChat groups.项目地址: https://gitcode.com/gh_mirrors/we/WeChatLuckyMoney

WeChatLuckyMoney 是一款开源的 Android 微信抢红包插件,由开发者 Zhongyi Tong 维护,项目使用 MIT 协议开放全部源码。它的核心能力是借助系统辅助功能(AccessibilityService)自动监测并拆开微信群聊中的红包,全程无需 ROOT,安装包体积约 1M。这篇文章从项目诞生的真实背景讲起,用通俗语言拆解它的工作机制,并给出从编译到进阶配置的完整路径。

从一次小米发布会说起:项目的真实起源

很多开源工具的故事都始于"某个具体场景里没被满足的需求",WeChatLuckyMoney 也不例外,但它多了一层有趣的背景。

2015 年秋季,小米在 MIUI 7 发布会上演示了一段"自动抢红包"的测试代码,用于展示新系统的通知与辅助能力。这段代码只做了最基础的演示,但它让不少人第一次意识到:系统无障碍服务其实可以做到很多事

开发者 Zhongyi Tong 随后以这段演示代码为基础,重新设计了红包识别逻辑、去重算法和可配置项,整理成结构完整的开源项目 WeChatLuckyMoney,并把包名统一为xyz.monkeytong.hongbao。项目经历了 v1.0 到 v5.0 的多次迭代,从最初"会重复点击"的原型,逐步演进到拥有通知/列表/聊天页三档监视、延时开包、屏蔽关键字、自动回复等能力的成熟工具,这些演进过程都记录在项目根目录的CHANGELOG.md中。

一句话讲清它的价值

它把"发现红包、进入会话、点击拆开"这三个动作交给系统辅助服务自动完成,并且不需要 ROOT、不需要修改微信,代码完全公开。

与同类的模拟点击方案相比,WeChatLuckyMoney 的差异点在于"识别"而非"抢":

  • 不依赖截图识别,而是直接读取微信界面的节点树(AccessibilityNodeInfo),精确找到"领取红包"按钮
  • 通过HongbaoSignature对发送者、红包内容、时间做签名去重,避免对同一个红包反复点击
  • 所有行为在微信的 Activity 边界内执行,符合辅助服务的常规使用方式

三步跑通:从源码到自动抢红包

整个上手过程不需要额外 IDE 环境,一台安装了 JDK 的电脑即可。

第一步,获取源码。克隆项目到本地:

git clone https://gitcode.com/gh_mirrors/we/WeChatLuckyMoney cd WeChatLuckyMoney

第二步,编译安装包。使用项目自带的 Gradle Wrapper,无需手动安装 Gradle:

./gradlew assembleDebug

编译完成后,APK 会生成在app/build/outputs/apk/debug/目录下,把它传输到手机安装即可。项目最低支持 Android 5.0(Lollipop)。

第三步,开启辅助功能。打开应用,点击主界面的开关按钮跳转到"无障碍"设置页,找到「微信红包」并开启。系统会弹窗提示该服务可以"观察您的操作",这是辅助功能的正常授权流程,拒绝后插件将无法工作。

它如何"看见"红包:一套简洁的状态机

要理解 WeChatLuckyMoney 的工作原理,可以先想一个问题:一个应用如何在不 ROOT 的情况下"看见"另一个应用的内容?

答案是 Android 的辅助功能框架。当辅助服务被授予权限后,系统会持续把界面变化事件(比如窗口切换、内容更新、通知到达)推送给服务。核心逻辑集中在app/src/main/java/xyz/monkeytong/hongbao/services/HongbaoService.java,它继承了AccessibilityService,整个抢红包过程可以抽象成一条流水线:

第一步:发现红包入口。服务提供了三个监视入口,对应general_preferences.xml中的三档开关:

监视选项触发方式适用场景
监视系统通知读取"[微信红包]"通知并直接进入会话最不易被察觉
监视聊天列表在消息列表中发现红包提示兼顾速度与隐蔽
自动拆开红包在聊天页内持续扫描"领取红包"节点响应最快

第二步:点击进入红包。服务通过findAccessibilityNodeInfosByText在界面节点树中查找"领取红包"、"查看红包"等文本节点,命中后对节点的父容器执行一次点击(ACTION_CLICK),微信随即弹出拆红包界面。

第三步:点击"拆开"按钮。这是最需要谨慎处理的一步。代码中维护了两个标志位mLuckyMoneyReceivedmUnpackNode,分别表示"已发现红包"和"待拆开的按钮"。在 Android 7.0 以上的机型上,直接对按钮执行点击可能不生效,openPacket()方法会根据屏幕 dpi 计算坐标,通过dispatchGesture派发一条模拟手势来完成拆包动作。

第四步:收尾与去重。拆开后若检测到"红包详情"或"手慢了"等文本,服务会发送返回键(GLOBAL_ACTION_BACK)退出界面。同时,HongbaoSignature会记录本次红包的发送者、内容与时间,生成一条签名,同一签名不会重复触发,从机制上避免了"对着同一个红包狂点"的问题。

整个过程有一个贯穿始终的互斥锁(mMutex)保证每个时刻只处理一个红包,防止状态错乱。

一个真实场景:年三十晚上的家庭群

程序员小周在除夕夜要赶一个线上发布,而家族群里长辈们的红包从晚上八点开始就没停过。他没法一直盯着手机,于是提前做好了配置:

  1. 打开「监视系统通知」,这样即使手机锁屏,也能第一时间感知红包到达
  2. 将「延时拆开红包」设置为 800 毫秒,让抢红包的节奏看起来更接近人手操作
  3. 在「屏蔽红包文字」中填入"专属"和"翻倍",避开带有诱导性质的专属红包
  4. 开启「拆开红包后自动回复」,在comment_preferences.xml对应的设置页填上"谢谢老板"、"恭喜发财"等感谢语,服务会在拆完红包后随机发送一条

结果是他顺利完成了发布,群里也没有遗漏任何一次红包。这个场景想说明的是:WeChatLuckyMoney 的价值不在于"抢得比谁快",而在于把重复性的、需要盯守的操作交给程序,让使用者把注意力放回真正重要的事情上

进阶玩法:让自动抢红包更接近人工操作

如果你已经跑通基础功能,下面这些配置项可以进一步调整插件的"行为风格"。

延时开包,模拟人类反应速度。在设置中拖动滑块,可配置 0-2000 毫秒的延迟。watchChat()中通过Handler.postDelayed实现,延迟结束才执行openPacket()。全速模式适合家庭群,克制模式适合重要工作群。

黑名单与屏蔽文字。HongbaoSignature.generateSignature()会读取pref_watch_exclude_words配置,逐一检查红包内容是否包含屏蔽词,命中则直接跳过。这让"某些群的红包不抢"成为可能。

自动回复。这是实验性功能,定义在app/src/main/res/xml/comment_preferences.xml。拆完红包后,服务会在输入框写入感谢语并发送,支持 @ 发红包的人,也可配置多条回复随机挑选。

息屏抢红包与功耗提醒。PowerUtil使用 WakeLock 在息屏状态下保持后台活跃,实现"锁屏也能抢"。但设置页的提示写得很直白:这个模式最多保持 30 分钟后台活跃,会显著增加耗电。项目对资源消耗的处理方式是"功能给你,风险也讲清楚",而不是默认开启。

如何参与这个项目

WeChatLuckyMoney 是典型的个人开源项目,参与方式很轻量:

  • 反馈问题:主界面的"帮助与反馈"入口会跳转到 Issue 页面,描述问题时附上手机型号、系统版本和微信版本,会大大加快定位效率
  • 阅读源码:核心逻辑集中在services/HongbaoService.javautils/HongbaoSignature.java,加上utils/目录下的PowerUtilUpdateTask等工具类,全部代码不到两千行,适合作为阅读辅助功能 API 的入门样本
  • 关注更新:应用内置了更新检测(utils/UpdateTask.java),联网时自动检查新版本;项目也在持续适配新版微信

收束:工具透明,使用自律

WeChatLuckyMoney 是一个"把话说清楚"的项目:它在 README 中明确声明源自小米的演示代码,使用 MIT 协议开放,同时也明确提示——插件会改变微信的交互方式,使用者需要自行承担包括"禁用红包功能"甚至"微信封号"在内的风险。这种透明和克制,正是它作为开源项目最值得尊重的地方。

如果你对辅助功能开发感兴趣,或只是想解决"过年抢不到红包"的小烦恼,可以按文中的三步跑通一次。编译、安装、授权,然后把注意力放回生活本身——这才是这类工具存在的意义。

【免费下载链接】WeChatLuckyMoney:money_with_wings: WeChat's lucky money helper (微信抢红包插件) by Zhongyi Tong. An Android app that helps you snatch red packets in WeChat groups.项目地址: https://gitcode.com/gh_mirrors/we/WeChatLuckyMoney

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/4127020.html

相关文章:

  • NERFIFY:基于多智能体框架的NeRF论文自动化代码生成实践
  • 工业级代码重构实战:从坏味道识别到安全落地的完整方法论
  • 多智能体深度强化学习在无人机协同导航中的系统化实践
  • Sealos云操作系统:三分钟搭建K8s集群并部署应用实战
  • AI智能体个体化与责任归属:工程化视角下的可问责体系构建
  • HEIC缩略图不显示?三步免费开启Windows 10/11的HEIC缩略图预览
  • 基于Spring AI与本地大模型构建跨工具AI Agent工作流
  • 免费 Windows 系统优化工具 WinUtil 完整指南:装软件、调系统、修故障,一个窗口全搞定
  • 硬件工程师必备:从EDA到生产的BOM与装配图实战指南
  • 猫抓实战指南:从零到一搞定网页视频下载(附避坑清单)
  • 气候归因建模实战:pandas+statsmodels+pyecharts因果推断
  • Nori模型:30M参数挑战1.6B,TabFM架构重塑表格数据AI效率
  • 免费录屏录音工具全攻略:OBS、QuickTime、Audacity实战指南
  • 大规模创新竞赛评审系统设计:动态建模与工程落地
  • Mac菜单栏图标堆成山?三步上手Ice菜单栏管理工具,还你一条清爽状态栏
  • 智能合约实现去中心化治理:构建客观制度避免权力集中
  • ATOD策略蒸馏:破解多轮智能体任务泛化难题
  • 多智能体LLM系统中基于工具调用的隐写术攻防新维度
  • 搜索API技术选型指南:Parallel、Exa与Firecrawl基准测试与实战对比
  • 技术视角下的视频号内容真实性鉴别:从表层观察到技术验证
  • 光伏发电物理建模实战:Python+pvlib混合建模手记
  • 从手动保存到批量自动化:douyin-downloader 抖音批量下载工具上手全记录
  • IBM Plex 字体家族 Web 字体与多语言排版实战指南:一篇文章搞定安装、性能优化与避坑
  • 《加拿大死亡之路》民间汉化补丁安装与问题解决指南
  • 一条被撤回的消息,凭什么还能找回来?Mac 微信防撤回 WeChatIntercept 上手实录
  • 【单片机课设毕设项目】基于 STM32 单片机的火情监测人机交互控制系统设计 基于 STM32 的环境火灾参数监测与机电执行机构联动方案设计(012604)
  • Workplace Agents架构演进与实战:从智能代理到生产力革命
  • 数据无量纲化实战指南:基于分布与模型选型,规避异常值陷阱
  • STM32开发环境搭建与LED闪烁项目实战:从零开始嵌入式开发
  • MCP协议封装JS逆向:不懂JS也能获取加密网站数据