M1n6 基于 Auto.js Pro 开发的 Android 智能打卡助手,支持热更新、定时任务、推送通知、执行历史记录。
- 🔄 热更新引擎 - 云端脚本动态加载,无需重装 APK
- ⏰ 定时任务 - 每日自动执行,支持自定义时间
- 🎲 随机延迟 - 模拟人类操作,规避检测
- 📊 执行历史 - 记录统计,成功率一目了然
- 📱 PushPlus 推送 - 执行结果实时通知
- 🛡️ 权限向导 - 一键检查授权状态
- 📸 异常截图 - 失败自动截图,便于排查
- 🎯 三连击策略 - 确保 100% 命中打卡按钮
- 🔴 红点调试 - 可视化显示点击位置
ClockMaster/
├── project.json # Auto.js 项目配置
├── app/
│ ├── main.js # 主入口 (v3.0)
│ ├── assets/
│ │ └── generate_icon.js # 图标生成工具
│ └── modules/
│ ├── storage.js # 配置存储
│ ├── permission.js # 权限管理
│ ├── launcher.js # 热更新引擎
│ ├── scheduler.js # 定时任务 ⭐ NEW
│ ├── history.js # 执行历史 ⭐ NEW
│ ├── pushplus.js # 推送通知 ⭐ NEW
│ ├── utils.js # 工具函数
│ └── ui_pres.js # 配置界面(备用)
└── cloud/
└── core_task.js # 核心打卡逻辑 (v3.0)
-
通过 ADB 部署文件(Linux/Mac):
adb push app /sdcard/脚本/ClockMaster/app adb push cloud /sdcard/脚本/ClockMaster/cloud adb push *.js /sdcard/脚本/ClockMaster/ adb push project.json /sdcard/脚本/ClockMaster/ -
Windows 用户: 手动复制文件到手机
/sdcard/脚本/ClockMaster/目录 -
打开 AutoX.js 运行辅助脚本:
# 第一次使用,清理旧配置 /sdcard/脚本/ClockMaster/clear_all_config.js # 运行主程序 /sdcard/脚本/ClockMaster/app/main.js -
配置并使用:
- 界面会自动加载默认配置
- 点击"保存配置"
- 点击"立即执行"测试打卡
-
部署云端脚本
将
cloud/core_task.js上传到 GitHub 或 Gitee,获取 Raw 链接:# GitHub Raw 格式 https://raw.githubusercontent.com/MinG-98/ClockMaster/main/cloud/core_task.js # Gitee Raw 格式 (国内推荐) https://gitee.com/MinG-98/ClockMaster/raw/main/cloud/core_task.js -
打包 APK
- 使用 Auto.js Pro 打开项目
- 点击菜单 → 打包应用
- 配置签名后生成 APK
-
配置使用
安装 APK 后:
- 授权权限 - 点击"检查权限",按向导授予权限
- 填写配置
- PushPlus Token (获取地址)
- 目标 App 包名/名称(如:YourApp)
- 云端脚本 URL(填写 GitHub/Gitee Raw URL)
- 最大随机延迟(建议 5-15 分钟)
- 测试推送 - 点击"测试推送"验证配置
- 立即执行 - 点击"立即执行"测试打卡
- 设置定时 - 开启定时任务,选择执行时间
| 脚本 | 用途 |
|---|---|
clear_all_config.js |
彻底清理并重置所有配置 |
reset_config.js |
重置配置为默认值 |
fix_config.js |
修正脚本路径配置 |
test_run.js |
跳过配置检查,直接测试执行 |
simple_main.js |
简化版主程序(无热更新) |
update_token.js |
快速更新 PushPlus Token |
| 配置项 | 说明 | 示例 |
|---|---|---|
| PushPlus Token | 推送通知令牌 | abc123... |
| 目标App包名 | 被自动化的应用 | YourApp |
| 云端脚本URL | core_task.js 的 Raw 地址 | https://raw... |
| 最大随机延迟 | 执行前随机等待 (分钟) | 0-30 |
| 调试模式 | 输出详细日志 | 开/关 |
- 开关: 启用/关闭定时任务
- 执行时间: 设置每日打卡时间(如 09:00)
- 下次执行: 自动显示下次执行时间
- 测试推送: 测试 PushPlus 配置是否正确
- 强制更新: 强制从云端更新脚本
- 查看历史: 查看最近 20 条执行记录
- 清除历史: 清除所有历史记录
编辑 cloud/core_task.js 中的打卡步骤:
// 修改目标应用名称
var targetAppName = storage.get("targetAppPackage", "YourApp");
// 修改入口查找关键词
var entry = text("移动考勤").findOne(5000);
// 修改打卡按钮关键词
var targetWidget = text("打卡").findOne(4000);重要原则:
- ✅ 优先使用
text()/desc()选择器 - ✅ 使用
press(x, y, duration)进行点击 - ❌ 避免使用固定坐标点击
云端脚本支持版本号管理,在文件头部声明:
/**
* @version 3.0.0
*/Launcher 会自动检测版本更新并提示。
支持的推送类型:
- ✅ 成功通知:包含执行时间、耗时、版本号
- ✅ 失败通知:包含错误信息、截图路径
- ✅ 测试通知:验证配置是否正确
- ✅ 自定义通知:支持 info/success/warning/error 级别
获取 Token:
- 访问 https://www.pushplus.plus
- 微信扫码登录
- 复制 Token 到配置界面
记录内容:
- 执行时间(日期 + 时分秒)
- 执行结果(成功/失败)
- 执行耗时
- 错误信息(如果失败)
- 截图路径
- 脚本版本
统计信息:
- 总执行次数
- 成功次数 / 失败次数
- 成功率百分比
- 今日执行统计
工作原理:
- 使用 Auto.js 的 setTimeout 实现
- 任务执行后自动设置下次执行时间
- 支持跨天定时(如每天 09:00)
注意事项:
⚠️ 需要 App 保持后台运行⚠️ 建议关闭电池优化⚠️ 建议加入白名单
为应对 clickable:false 的控件,采用三重保障:
- 第 1 击: 点击文字中心坐标
- 第 2 击: 点击文字下方偏移位置(+150px)
- 第 3 击: 点击屏幕黄金点(屏幕中心偏下 55%)
确保 100% 命中率。
执行时会在点击位置显示红色标记点:
- 持续时间:0.8 秒
- 颜色:红色圆点
- 用途:直观判断点击位置是否准确
- 运行环境: Auto.js Pro 9.x / AutoX
- 目标系统: Android 8.0 - 14.0
- UI 框架: Auto.js 内置 XML
- 存储: SharedPreferences
- 网络: HTTP (脚本拉取 + 推送通知)
- 定时: setTimeout / setInterval
- ✅ 无障碍服务(必需):自动化操作核心权限
- ✅ 悬浮窗权限(必需):显示运行状态和红点
- ✅ 存储权限(推荐):保存截图和日志
- 保持 Auto.js 后台运行 - 关闭电池优化
- 定时任务依赖 App 存活 - 加入白名单
- 首次使用先手动测试 - 确认打卡流程正常
- 敏感信息勿上传 - Token 保存在本地
问题:定时任务未执行
- 检查 App 是否被系统杀后台
- 检查是否关闭电池优化
- 查看历史记录确认上次执行时间
问题:推送未收到
- 测试推送功能验证 Token
- 检查网络连接
- 查看日志确认推送是否发送
问题:打卡失败
- 查看历史记录中的错误信息
- 查看截图确认界面状态
- 调整三连击的偏移参数
Auto.js Pro 控制台可以查看详细日志:
- 执行流程日志
- 错误信息
- 推送结果
- 历史记录保存状态
截图保存在:/sdcard/Pictures/ClockMaster_*.png
文件命名格式:
- 成功:
ClockMaster_Success_v3.0_<timestamp>.png - 失败:
ClockMaster_Error_v3.0_<timestamp>.png
新增功能:
- ✨ 支持上班和下班分别打卡
- ✨ 用户可独立设置上班打卡时间(如 09:00)
- ✨ 用户可独立设置下班打卡时间(如 18:00)
- ✨ 显示下次执行时间(同时显示上班和下班时间)
UI改进:
- 🎨 重新设计定时任务卡片,分别显示上班和下班打卡时间
- 🎨 添加 emoji 图标:🌅 上班、🌆 下班
- 🎨 改进视觉层级和布局
工作流程:
- 在"定时打卡"卡片中分别设置上班和下班时间
- 打开"定时打卡"开关,系统自动创建两个定时任务
- 每天会自动在设定时间执行打卡
示例:
- 上班打卡:09:00(每天上班时自动打卡)
- 下班打卡:18:00(每天下班时自动打卡)
安全更新:
- 🔒 移除所有特定应用名称引用,避免法律风险
- ✅ 使用通用示例名称(YourApp)替代
- ✅ 配置默认值改为空或通用示例,由用户自行填写
兼容性修复:
- 🐛 修复 execution.on() 兼容性问题 - 添加类型检查避免在旧版 AutoX.js 中报错
- 🐛 修复按钮 UI 布局不平衡问题 - 统一按钮高度和间距
用户体验:
- ✨ 首次使用时需在配置界面填写目标应用名称
- ✨ 更好的跨版本兼容性
关键修复:
- 🐛 修复 launcher.js 参数传递问题 - core_task.js 现可正确接收配置参数
- 🐛 修复文件路径配置错误 - 统一使用
/sdcard/脚本/而非/sdcard/Scripts/ - 🐛 修复备份目录路径错误
- ✅ 添加配置诊断日志 - 立即定位配置问题
- ✅ 添加 launcher 错误事件监听
- ✅ 创建多个辅助脚本用于配置管理
- ✅ 设置正确的默认配置值
新增工具:
clear_all_config.js- 彻底清理并重置配置reset_config.js- 重置为默认配置test_run.js- 直接测试执行simple_main.js- 简化版主程序
技术改进:
- loadConfig() 函数支持从 launcher 参数读取配置(优先级高于 storage)
- 增强错误处理和日志输出
- 改进配置验证逻辑
- ✅ 新增 PushPlus 推送通知
- ✅ 新增执行历史记录
- ✅ 新增定时任务调度
- ✅ 增强异常处理和截图
- ✅ 完整的 UI 界面
- ✅ 详细的日志输出
- ✅ 三连击策略
- ✅ 红点可视化调试
- ✅ 解决 clickable:false 问题
- ✅ 基础打卡功能
- ✅ 热更新引擎
- ✅ 配置管理
MIT License
- GitHub: @MinG-98
- Project: ClockMaster
免责声明: 本项目仅供学习交流使用,请遵守相关法律法规,不得用于非法用途。