weworkhook使用全解析:手动输入经纬度、地图选点与开关功能详解
【免费下载链接】weworkhook企业微信打卡助手,在Android设备上安装Xposed后hook企业微信获取GPS的参数达到修改定位的目的。注意运行环境仅支持Android设备且已经ROOT+Xposed框架 (未 ROOT 设备可尝试 virtualxposed 中使用) 。(最新支持拍照打卡)本案例仅供学习参考使用,如果有更好的想法和建议欢迎与作者交流!项目地址: https://gitcode.com/gh_mirrors/we/weworkhook
weworkhook 是一款基于 Xposed 框架的企业微信打卡助手模块,核心功能是修改企业微信打卡时的 GPS 定位:你可以通过手动输入经纬度、腾讯地图选点两种方式设定打卡位置,并配合一键开关随时启停。本文面向新手,完整讲解 weworkhook 的安装前提、三大核心功能与进阶玩法。
📌 开始前的环境要求
weworkhook 是 Xposed 模块,运行环境有硬性要求:
| 要求项 | 说明 |
|---|---|
| 操作系统 | 仅支持 Android 设备 |
| ROOT 权限 | 设备需要已 ROOT |
| Xposed 框架 | 已安装 Xposed(最低版本号 30) |
| 备选方案 | 未 ROOT 设备可尝试 virtualxposed |
⚠️ 本项目为实验性质,仅供学习研究使用,不承担因代码被误导、滥用产生的任何风险与责任。
从项目 Releases 页面下载 APK 安装后,需要在 Xposed 框架的模块列表中勾选 weworkhook 并重启设备才能生效。模块声明见 AndroidManifest.xml;插件入口在 Main.java——当检测到企业微信进程启动时,即注入定位 Hook 逻辑。
🔢 功能一:手动输入经纬度坐标
适合已经知道打卡地点坐标(例如用查坐标工具获取)的用户。
操作步骤:
- 打开 weworkhook 主界面;
- 在「纬度 latitude」「经度 longitude」输入框中分别填入目标坐标;
- 点击「保存坐标」按钮,出现"保存修改成功"提示即设置完成。
主界面布局定义见 activity_main.xml。点击保存后,坐标会以广播形式实时同步给企业微信进程,并写入企业微信的本地配置,逻辑见 MainActivity.java。
💡 两个输入框只接受小数、且都不能为空,否则提示"格式异常"。若从未保存过坐标,企业微信侧会使用内置的默认坐标(见 WeWork.java)。
🗺️ 功能二:腾讯地图选点打卡
不想手动查坐标?直接点地图选点,这是最直观的方式。
操作步骤:
- 点击主界面顶部的「拾取坐标」按钮,进入腾讯地图页面(入口见 MainActivity.java);
- 在地图上找到目标位置,单击任意位置放置一个红色标记;
- 标记上方会弹出坐标信息框,显示经纬度并提示"点我保存";
- 再点击一次该信息框,弹出"企微打卡:已更新坐标"提示,选点完成。
地图点击放置标记的代码见 TencentMapActivity.java,点击信息框保存坐标的处理见 TencentMapActivity.java。
⚠️ 注意:点地图只是放置标记、显示坐标,必须再点一次标记上方的信息框才会真正保存。地图默认会以你上次保存的坐标为中心点。
🔁 功能三:启用修改开关(一键启停)
主界面右下方有一个「启用修改」复选框(默认勾选),用于实时启停定位修改功能:
- 勾选:所有 Hook 生效,企业微信获取到的是你设定的坐标;
- 取消勾选:所有 Hook 立即跳过,企业微信恢复使用真实 GPS 定位。
开关通过广播weworkdk_open同步到企业微信进程(见 MainActivity.java),核心变量isOpen决定每个 Hook 是否执行,逻辑见 WeWork.java。
使用建议:开关状态保存在企业微信进程的内存中,企业微信被杀进程后重启会恢复为默认"启用"状态。建议养成习惯——先设置好开关,再打开企业微信打卡。
📷 进阶功能:拍照打卡(1.1 版本新增)
最新版本已支持替换拍照打卡的图片:
- 点击「拾取图片」按钮,从相册中选择一张图片(限 1 张);
- 图片会被自动复制到企业微信的考勤图片目录;
- 确认「图片绝对路径」输入框内容后,点击「保存图片地址」;
- 弹出"图片注入成功"即生效,下次企业微信读取打卡图片时返回的就是你设置的这张图。
选图与复制逻辑见 MainActivity.java;图片注入通过 Hook 企业微信读取extra_photo_url字段实现,且使用一次后自动复位,逻辑见 WeWork.java。
⚙️ 它是怎么做到的?原理速览
weworkhook 在企业微信启动(Application.attach阶段)时注入 Hook,对企业微信获取位置信息的关键接口进行拦截替换:
| 拦截目标 | 效果 |
|---|---|
LocationManager定位接口 | 返回你设定的经纬度 |
| GPS 状态与卫星信息 | 伪装成 GPS 正常、5 颗卫星定位 |
基站信息(TelephonyManager) | 返回空,避免基站定位穿帮 |
WiFi 信息(WifiManager) | 返回空扫描列表 + 已联网状态 |
为了让结果更像真机,weworkhook 还会对坐标做固定偏移 + 随机抖动(模拟真实 GPS 漂移),因此实际打卡位置会与目标点有轻微偏差,这是正常现象。核心代码见 WeWork.java 与 WeWork.java。
❓ 常见问题(FAQ)
Q1:界面底部显示"插件启动失败"怎么办?说明 Xposed 模块未生效:请确认已在 Xposed 框架中勾选本模块并重启设备。模块通过 Hook 自身的confirm()方法来判断启动状态,见 Main.java 与 MainActivity.java。
Q2:保存坐标后没生效?坐标通过广播实时同步,若企业微信当时未运行,则读取上次保存的坐标(见 WeWork.java)。建议保存坐标后重启企业微信再打卡。
Q3:没有 ROOT 能用吗?可以尝试 virtualxposed 方案(作者已验证可生效),需自行探索配置。
Q4:打卡位置为什么会和设定位置差几米?这是代码中刻意加入的偏移与随机抖动,用于模拟真实 GPS 漂移,属于预期行为。
✅ 功能小结
| 功能 | 界面入口 | 适用场景 |
|---|---|---|
| 手动输入经纬度 | 两个坐标输入框 + 保存按钮 | 已有精确坐标 |
| 地图选点 | 「拾取坐标」按钮 | 可视化快速选点 |
| 启用修改开关 | 「启用修改」复选框 | 上下班一键切换 |
| 拍照打卡 | 「拾取图片」按钮 | 需要替换打卡照片 |
再次提醒:本项目仅供学习交流,请遵守公司考勤制度与相关法律法规,理性使用。更多细节可参考 README.md。
【免费下载链接】weworkhook企业微信打卡助手,在Android设备上安装Xposed后hook企业微信获取GPS的参数达到修改定位的目的。注意运行环境仅支持Android设备且已经ROOT+Xposed框架 (未 ROOT 设备可尝试 virtualxposed 中使用) 。(最新支持拍照打卡)本案例仅供学习参考使用,如果有更好的想法和建议欢迎与作者交流!项目地址: https://gitcode.com/gh_mirrors/we/weworkhook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考