基于 Auto.js 实现的蚂蚁森林自动化脚本。
- 核心依赖: 本脚本基于 AutoJS Modify 或 困鱼 (AutoJS.fake) 开发和运行。
- 不兼容: 不再支持原版 4.1.1(已删库且问题多)、官方 Pro 版(限制无障碍、代码审查)。
- 更多版本下载:
https://wwxs.lanzouq.com/b042le51i
(密码:b034
) - 修改版 Auto.js 源代码: TonyJiangWJ/Auto.js
- 系统要求:
- 安卓 7.0 及以上版本 (无需 ROOT)。
- 安卓 5.0 - 6.x 版本 (需要 ROOT 权限)。
- 显示要求: 脚本依赖图像识别,请关闭手机的护眼模式、深色模式 (暗色模式) 等可能影响屏幕颜色的功能。
- 项目渊源: 本项目是在 Nick-Hopps/Ant-Forest-autoscript (原作者 Nick-Hoops 已不再维护) 的基础上发展而来,虽然代码已大幅重构,但仍感谢原作者的开创性工作。解锁模块参考自 e1399579/autojs。
- 自动收能量:
- 通过“逛一逛”高效收集好友能量。
- 识别并跳过开启能量护罩的好友。
- 识别能量球倒计时,智能安排下次收取时间。
- 多种运行模式:
- 计时模式: 根据识别到的最小倒计时启动,可设置最大等待时间。
- 循环模式: 按设定次数不间断执行。
- 永不停止模式: 无倒计时或超过设定时间则按设定间隔启动,实现全天候运行。
- 智能解锁:
- 自动识别屏幕锁定方式 (图形、PIN、密码)。
- 支持支付宝手势解锁。
- 支持扩展自定义解锁方式。
- 多账号支持:
- 自动切换小号进行能量收集、能量雨、同步步数。
- 能量雨自动按顺序赠送机会给配置的其他账号。
- 辅助功能:
- 自动使用双击卡 (可配置时间段)。
- 自动浇水回馈 (可配置阈值、数量、黑名单)。
- 自动执行能量雨 (支持赠送好友机会)。
- 自动执行保护地巡护。
- 自动收集神奇海洋能量 (需关闭 3D 模式)。
- 高级特性:
- YOLO 目标检测: (实验性) 更智能地识别能量球 (需下载模型)。
- Shizuku 支持: (实验性) 通过 Shizuku 获取更高权限 (如自动开启无障碍)。
- 可视化配置: 通过
可视化配置.js
轻松管理所有设置。 - 配置导入/导出: 方便备份和恢复配置。
- 自定义扩展: 支持添加自定义解锁和锁屏逻辑。
- 运行状态显示: 悬浮窗实时展示脚本状态和收集结果。
- 运行控制: 音量键可延迟或终止脚本。
- 能量统计: 图表化展示每日/每小时能量收集情况。
- 健壮性:
- 通话状态监听 (来电时自动延迟)。
- 设备姿态检测 (防止锁屏状态下误触)。
- 自动开启无障碍服务 (需 ADB 或 Shizuku 授权)。
- 环境准备:
- 下载并安装 AutoJS Modify 或 困鱼。
- 将整个脚本项目文件夹放置到设备的
/sdcard/脚本/
目录下。
- 授权与设置:
- 打开 AutoJS 应用,下拉刷新列表,找到本项目。
- 授予 AutoJS
后台弹出界面
、显示悬浮窗
、自启动
、电量无限制
等必要权限。 - 保持 AutoJS 应用在后台运行(加入电池优化白名单)。
- (可选) 通过 ADB 授权脚本自动开启无障碍权限。
- 首次配置 (重要!):
- 必须: 首次运行前,请务必运行
可视化配置.js
进行个性化设置,特别是图像相关的配置,否则脚本很可能无法正常工作。详见 配置 小节。
- 必须: 首次运行前,请务必运行
- 运行脚本:
- 直接运行项目或
main.js
。
- 直接运行项目或
- 定时任务:
- 如需定时自动运行,点击
main.js
右侧的菜单按钮,选择更多
->定时任务
进行配置。
- 如需定时自动运行,点击
- 单脚本运行:
- 如果遇到提示“有任务正在队列中”,请运行
可视化配置.js
->高级设置
-> 勾选单脚本运行
。
- 如果遇到提示“有任务正在队列中”,请运行
通过运行 可视化配置.js
进行所有设置。
- 基本操作:
- 配置项按类别分组,点击进入相应菜单。
- 列表项可 左滑 进行删除或修改。
- 部分输入框 (如区域、颜色) 可 左滑 触发高级编辑控件。
- 右上角菜单可 重置所有配置 为默认值。
- 配置管理:
- 右上角菜单可 导出/导入 配置到
local_config.cfg
文件。 - 默认使用设备 Android ID 加密,仅本机可用。
- 跨设备或跨版本同步,需手动获取
device.getAndroidId()
(运行setClip(device.getAndroidId())
复制) 并在导入时输入。 - 运行时数据 (如统计) 的导出/导入方式同上。
- 右上角菜单可 导出/导入 配置到
- 图像识别配置 (核心):
- 注: 当开启YOLO识别后,可以跳过该配置,但是也可以配置部分图片用于YOLO识别失败时的保底
- 重要: 由于手机分辨率和界面差异,必须 前往
查找图片设置
,按照说明截取你手机上对应的图片,特别是 逛一逛按钮 等关键识别点。 - 好友能量球区域: 前往
图像识别相关配置
进行设置。- 点击
实时查看可视化配置信息
按钮可预览当前框选区域。 - 运行
test/全局悬浮窗显示-配置信息.js
可在支付宝界面上叠加显示配置区域,方便调整。 - 可在
resources
目录下放置截图region_check.jpg
作为可视化配置.js
的背景参考。 - 区域输入框可左滑使用拖动控件调整。
- 点击
- 一键收能量: 需要自行配置对应图片才能生效。
- OCR 配置:
- 用于识别倒计时等文字信息。
- 优先级: mlkit-ocr (需插件或修改版AutoJS) > PaddleOCR (需修改版AutoJS且耗电) > 百度OCR (需API Key且有次数限制)。
- mlkit-ocr: 速度快,准确性尚可,基本满足需求。
- PaddleOCR: 准确性高,速度慢,必须使用修改版 AutoJS 并设置电量无限制。
- 可在
可视化配置.js
中调整 OCR 相关设置。
- 计时模式 (默认):
- 关闭
循环模式
和永不停止模式
时启用。 - 识别好友列表中的倒计时,取最小值。
- 如果最小值 <
最大等待时间
(可在配置中修改,默认60分钟),则按最小值等待后启动。 - 否则,脚本停止执行 (等待下一次定时任务)。
- 关闭
- 循环模式:
- 在配置中启用
循环模式
并设置次数。 - 脚本会不间断地执行指定次数后停止。
- 在配置中启用
- 永不停止模式:
- 关闭
循环模式
并启用永不停止模式
。 - 需要设置
重新激活时间
(可设为固定值或随机范围)。 - 如果识别到的最小倒计时 <
重新激活时间
,则按倒计时等待。 - 如果识别到的最小倒计时 >=
重新激活时间
(或无倒计时),则按重新激活时间
等待后启动。 - 实现全天候不间断运行。
- 关闭
- 自定义模式脚本:
unit
目录下提供了预设模式的快捷启动脚本,执行后会中断当前任务并按新模式启动:自定义1永不停止.js
: 25-35分钟随机轮询,适合白天 (如设置每天9点定时任务)。自定义2计时停止.js
: 按倒计时执行 (最长等60分钟),适合早晚收尾 (如设置7点、23点、0点定时任务)。自定义3循环千次只收自己.js
: 循环收自己能量,适合能量生成前运行 (如生成前1分钟定时启动,2分钟后用自定义2
停止)。
- 可参考这些文件创建自己的模式。
- 配置: 运行
可视化配置.js
->多账号管理
,添加支付宝账号并设置 昵称 (用于能量雨赠送),并勾选一个 主账号。确保添加的账号在当前设备可免密登录切换。 - 运行脚本:
- 自动收集:
unit/循环切换小号并收集能量.js
(支持小号给大号浇水)。 - 自动能量雨:
unit/循环切换小号并执行能量雨收集.js
(建议关闭主脚本的自动能量雨)。能量雨会按 A->B->C->A 的顺序自动赠送机会。 - 自动同步步数:
unit/循环切换小号用于同步数据.js
。 - 森林集市:
unit/循环切换小号执行森林集市.js
- 自动收集:
- 定时任务: 为需要的脚本设置定时任务。
- 手动启动: 运行
unit/能量雨收集.js
(或在可视化配置中开启对应开关),然后进入能量雨界面手动点击开始,脚本会自动接管。 - 自动启动 (无小号): 对
unit/自动启动并执行能量雨.js
创建定时任务。 - 自动启动 (有小号): 使用
unit/循环切换小号并执行能量雨收集.js
的定时任务。 - 配置:
- 可配置自动赠送好友机会 (支持正则匹配好友名)。
- 效果: 暴力点击,基本保证满分。
- 运行: 运行
unit/自动巡护.js
或为其创建定时任务。 - 功能: 自动将当日步数兑换为 5 次巡护机会,并执行巡护 (每日保底 3+5 次)。
- 运行: 运行
unit/森林集市.js
或为其创建定时任务。 - 功能: 自动浏览森林集市中的商品以获取相应的奖励能量
- 运行: 对
unit/神奇海洋收集.js
创建每天 7 点后的定时任务。 - 配置:
可视化配置
->图像识别相关配置
->神奇海洋相关配置
,按提示配置 OCR 区域、垃圾球角标位置等。- 需要 OCR 支持 (至少安装 MlKitOCR 插件或使用修改版 AutoJS)。
- 重要: 默认无法通过无障碍点击收集,请务必在支付宝的神奇海洋设置中 关闭 3D 模式 (入口: 神奇海洋右上角三点菜单 -> 设置 -> 关闭“3D模式”)。
- 脚本会尝试 Shizuku 点击,若已关闭 3D 模式,忽略日志中的相关提示即可。
-
需要 ADB 或 Shizuku 授权
WRITE_SECURE_SETTINGS
权限给 AutoJS。 -
ADB 命令 (请将包名替换为你使用的 AutoJS 版本,可通过
context.getPackageName()
获取):adb shell pm grant org.autojs.autojs.modify android.permission.WRITE_SECURE_SETTINGS
-
详细教程: 通过ADB授权脚本自动开启无障碍权限
在脚本根目录下新建 extends
文件夹,进行以下自定义:
- 获取控件信息: 运行
unit/获取锁屏界面控件信息.js
,根据提示操作获取布局信息。 - 创建文件:
extends/ExternalUnlockDevice.js
- 编写代码: 参考
extends/ExternalUnlockDevice-demo.js
实现unlock
方法。 - 测试: 运行
test/测试解锁.js
。
// ExternalUnlockDevice.js 示例结构
module.exports = function (obj) {
this.__proto__ = obj; // 继承原型
this.unlock = function(password) {
// 在此处编写你的设备解锁逻辑代码
// 例如:滑动、输入密码等
// 必须返回解锁检查结果
return this.check_unlock();
};
};
- 前提: 非 ROOT 设备安卓 9 以上通常可通过无障碍服务锁屏,无需此定制。若无障碍锁屏失败,可使用此方法。
- 创建文件:
extends/LockScreen.js
- 编写代码: 参考
extends/LockScreen-demo.js
实现自定义锁屏逻辑。 - 测试: 运行
test/TestLockScreen.js
。
// LockScreen.js 示例结构
let { config: _config } = require('../config.js')(runtime, global); // 注意 global 可能需要根据上下文调整
module.exports = function () {
// 在此处编写你的锁屏逻辑代码
// 例如:下拉通知栏点击锁屏按钮
// swipe(800, 10, 800, 1000, 500); // 示例:下拉
// sleep(500);
// click(parseInt(_config.lock_x), parseInt(_config.lock_y)); // 示例:点击锁屏按钮坐标
};
- 欢迎将你的自定义扩展代码 (如解锁脚本) 提交到 share_configs 分支 的
extends
目录下。 - 命名建议:
ExternalUnlockDevice-手机型号.js
。 - 其他用户可前往该分支下载使用。
- 优势: 理论上可以更智能地识别能量球,减少对固定图片和区域配置的依赖。
- 前提:
- 使用最新版 AutoJS Modify 或 困鱼。
- 运行
独立工具/模型下载.js
下载 YOLO 模型 (forest_lite.onnx
)。若下载失败,请手动下载 (https://wwxs.lanzoup.com/b042le51i
密码:b034
) 并解压到./config_data/
目录下。
- 启用:
可视化配置
->图像识别相关配置
-> 打开使用YOLO模型识别能量球
。若环境不支持或模型未下载,将自动降级。 - 性能: YOLO 识别速度约 100ms,传统方案约 30-40ms,请自行取舍。默认关闭。
- 优势: 可通过 Shizuku 获取更高权限,实现如自动授权无障碍等功能。
- 前提:
- 安装并激活 Shizuku (详见 Shizuku 官方文档)。
- 使用最新版 修改版 AutoJS 或 困鱼。
- 在 AutoJS 的抽屉菜单中启用 Shizuku 并授权。
- 示例:
独立工具/shizuku示例工具.js
包含通过 Shizuku 授权媒体权限、写入 Secure 设置 (用于自动开无障碍) 等示例。
- 运行
update/检测更新.js
检查并更新脚本。 - 也可在
可视化配置.js
的右上角菜单中进行更新。 - 支持覆盖更新或备份后更新。
- 可视化配置.js 异常/白屏/加载失败:
- 尝试运行
unit/功能测试-重置默认配置.js
。 - 确保使用的是推荐的 AutoJS 版本 (Modify 或 困鱼)。
- 强制关闭 AutoJS 应用后重试,可能是网络资源加载问题。
- 尝试运行
- 报错
Function importClass must be called with a class;...
:- 强制关闭 AutoJS 应用再打开。通常发生在跨版本更新后,新版脚本已尝试解决。
- 运行异常/卡顿:
- 强制关闭 AutoJS 应用后重试。
- 建议定期强制关闭 AutoJS,避免内存占用过高。
- 图像识别遗漏/不准:
- 检查是否关闭了护眼模式/深色模式。
- 尝试在
可视化配置
中调低颜色相似度
(默认已改为 20)。 - 确保关键图片 (如逛一逛) 已按自己手机截图替换。
- 报错
获取截图失败多次
:- 在
可视化配置
->高级设置
中,尝试增加获取截图等待时间
(默认 500ms),或取消勾选是否异步等待截图
。
- 在
- 定时任务不准时:
- 检查系统电池优化设置,将 AutoJS 设为无限制/允许自启动/后台运行。
- 系统限制严格时,可考虑使用 Tasker 等工具通过广播触发脚本执行 (需自行研究)。
- 基于图像分析收取不正常:
- 若开启
是否直接基于图像分析收取和帮助好友
后运行异常,先取消勾选。 - 尝试勾选
区域点击来收取能量
,并根据需要扩展自定义区域点击代码 (目前无直接扩展接口,需修改源码或等待后续支持)。
- 若开启
- 开启日志: 在
可视化配置.js
->高级设置
中,勾选保存日志到文件
,并将日志文件大小
调整为 1024KB 或更大。 - 复现问题: 重新运行脚本直到问题出现。
- 收集信息:
- 详细描述问题现象、操作步骤。
- 提供使用的脚本版本、AutoJS 版本、手机型号、安卓版本。
- 长截图AutoJS软件中的日志,可以的话再附上日志文件 (
logs/log-verboses.log
)。日志默认保存 100k,旧日志在logs/logback
。 - 如有截图或录屏更有助于定位问题。
- 提交:
- 收集完一个好友后,可能因未能立即获取其新生成的能量球倒计时而导致少量漏收。
- 部分系统 (如 MIUI) 的省电策略可能导致 AutoJS 定时任务不准时 (非脚本问题)。
- 通话状态监听功能可能不稳定,且 Pro 版无法使用。
- 蚂蚁庄园脚本
- 聚合签到-签到薅羊毛
- AutoScriptBase: 用于快速开发 AutoJS 脚本的基础项目。
- 详细的历史版本更新记录请查看 RELEASES 页面。
- 更早的记录可参考旧仓库 RELEASES(旧仓库)。
如果觉得项目对你有帮助,欢迎请我喝杯咖啡!
- 一元喝速溶、五元喝胶囊、十二买全家、三十三买星巴克,感激不尽!
支付宝 | 微信 | 也欢迎支付宝扫码领红包,你领我也得,双赢! |
---|---|---|
![]() |
![]() |
![]() |
- 也可以运行
unit/支持作者.js
在线获取红包口令,通过支付宝直接打开领取,每使用一个红包我都可以获取一分钱的收益。如果你不嫌烦的话可以给unit/支持作者自动版.js
设置定时任务,每天自动领取。
Alipay
*剑
**杰
**佑
**豪
**旸
**渔
**真
**刚
**刚
**亚
**成
*毅
**杰
*之
**旸
*硕
**杰
**宏
**鲁
*赟
*鹏
**杰
**恒
*鹏
**光**彬
**胜
**庭
**光
**杰
**俊
*森
*悦
*森
*剑
**亮
*伟
**飞
**骞
**旻
**锟
**锟
**锟
z*g
*鸟
*鸟
*明
*妖
**昌
**昌
**昌
*济
*🧸
A*g
**昌
**昌
*信
**昌
*涛
J*k
*🍅
*🧸
F*sW
**昌
F*sW
**昌
*z
**昌
**昌
*🍃
w*x
*邱
G*n
*河
*己
*漏