使用教程
一、准备一个能登录的账号
本系统通过官方协议登录你的运动账号,所以账号必须满足:
- 是邮箱注册的账号(手机号注册的账号第三方登录不了)
- 密码你知道,而且没开二次验证
- 如果是新设备首次登录,官方 App 可能会弹一个「新设备登录」提醒,进去点同意即可
二、绑定账号
- 进入「我的账号」,填写账号邮箱和密码
- 平台默认选「Zepp Life / 小米运动(国内)」,国际版账号选「Zepp(国际)」
- 点「验证并绑定」,系统会真的去登录一次,成功才保存
- 绑定成功后会显示「正常」状态
三、刷步数
- 进入「开始刷步」,选中要刷的账号
- 填目标步数,点「立即同步步数」
- 页面提示成功后,打开官方 App 下拉刷新,数据就变了
四、设置每天自动刷
- 进入「定时任务」,新建任务
- 选择账号、时间(比如 08:00)、目标步数(比如 20000)
- 浮动填 2000,表示实际在 18000~22000 之间随机,每天不一样更自然
- 保存后保持「已启用」状态即可,服务器会到点自动执行
五、绑定第三方平台(微信运动/支付宝等)
刷步后想让微信运动、支付宝蚂蚁森林也同步步数,需要在 Zepp Life App 里绑定第三方平台:
- 打开 Zepp Life(原小米运动) App,登录你的账号
- 点击底部「我的」 找到「第三方接入」或「账号与安全」「第三方平台」
- 选择要绑定的平台:
- 微信运动:点击「微信」 用微信扫码授权 关注「Zepp Life」公众号
- 支付宝:点击「支付宝」 跳转到支付宝授权 同意同步运动数据
- QQ运动:点击「QQ」 用QQ授权登录
- 绑定成功后,在本系统刷步,数据会自动同步到已绑定的第三方平台
- 关键前提:微信运动只同步 Zepp 账号里「已配对设备」的步数。没绑定过真实手环的账号,即使刷步成功,微信也不会更新——详见下一章
- 微信运动同步可能有 5-30 分钟延迟,不是实时的
- 如果微信运动步数没更新,先确认 Zepp App 里绑定了微信(我的→第三方接入→微信),再照下一章排查
- 不要在 Zepp App 里解绑微信,解绑后步数将不再同步到微信运动
- 必须用邮箱注册的 Zepp 账号才能在本系统绑定,手机号注册的账号不支持
六、微信运动同步排查指南
这一章专门解决「Zepp 里步数已经变了,但微信运动一直不更新」。这是最常见的疑问,原因基本都出在同一个地方。
6.1 为什么 Zepp 有步数,微信却不更新?
- 微信运动只同步 Zepp 账号中「已配对设备」产生的步数。它在意的不是「Zepp 里有多少步」,而是「这些步数是不是一台已配对设备报上来的」。
- 没绑定过真实手环的账号:Zepp 后端接收了上报的步数(你在 App 里也能看到),但因为账号里没有任何「已配对设备」,Zepp 不会把这批步数推给微信。
- 老号(曾经绑定过手环,设备列表非空):微信同步正常,刷完步刷新一下微信运动就有。
- 新号(从没绑定过任何手环):微信不同步——这就是问题根源。
6.2 解决方案(按优先级排序,从最有效开始)
-
借一个小米手环/手表,在 Zepp App 里绑定一次(最有效)。
绑定成功后,可以马上解绑——Zepp 服务器会保留这条「设备记录」,账号从此就有「已配对设备」了,之后刷步微信即可同步。 - 用之前已经绑定过手环的「老 Zepp 账号」。老号设备列表非空,天生就能同步,是最省事的办法。
- 确认 Zepp App 里正确绑定了微信:打开 Zepp Life →「我的」→「第三方接入」→「微信」→ 扫码并开启同步。
- 在微信里把数据来源选对:微信 →「我」→「设置」→「通用」→「辅助功能」→「微信运动」→「数据来源」→ 选择 Zepp / 小米运动。
- 首次绑定微信后,可能要等 24 小时才会开始同步,请耐心等待。
- 同步时间建议在 8:00-21:00 之间,这个时段服务器同步最稳定。
- 还是不同步? 在 Zepp App 里下拉刷新同步一次数据,然后回到微信运动,点进「排行榜」手动刷新看看。
- 不要在 Zepp App 里解绑微信,解绑后步数将不再同步到微信运动(需要重新扫码绑定,并重新等待生效)。
6.3 支付宝 / QQ 的同步说明
- 支付宝蚂蚁森林:每天早上 7 点左右更新前一天的数据;同样需要账号有「已配对设备」才会同步。
- QQ 运动:和微信一样,需要「已配对设备」;绑定方式为 Zepp Life →「我的」→「第三方接入」→「QQ」。
- 本系统的「绑定虚拟设备」功能(见下一节)已于 2026-10 做过深度逆向——结论是试验性、基本无效,请直接看 6.4。
6.4 关于「绑定虚拟设备」功能(2026-10 深度逆向结论)
在「我的账号」页,每个账号都有「设备状态」和几个按钮。这里说清楚它们到底做了什么,以及为什么虚拟设备基本无法通过接口创建。
- 检测设备状态(推荐常用):调用官方 App 真实使用的接口
GET /users/<userid>/devices读取该账号下「已配对设备」列表,并把结果更新到设备状态标识上。这是判断微信能不能同步最直接的办法。 - 绑定虚拟设备(试验):把候选的「登记设备」请求发出去,并如实返回结果。
重要提醒:Zepp / 华米没有公开的设备创建接口,真实绑定是「官方 App 蓝牙配对 + 服务端签名」—— 配对密钥 = SHA256(手环蓝牙地址 ‖ 手环下发的随机数 R),其中 R 只能由真实手环通过蓝牙提供, 没有真机就无法生成合法密钥。所以这个按钮几乎必然失败,失败时会如实提示,绝不假装成功。 - 我已绑定真实设备:如果你已经用自己的手环在官方 App 给这个账号绑定过,点这个按钮手动标记为「已绑定设备」即可。
已经实测过的设备接口(2026-10,无 token 探测 + 开源项目交叉验证):
| 接口 | 方法 | 实测结果 | 说明 |
|---|---|---|---|
api-open.huami.com/users/-/devices | GET | 401 invalid token | 官方开放平台,只读设备列表(需 Bearer) |
api-open.huami.com/notifications | POST | (文档确认) | 开放平台唯一的写入接口,仅推送通知 |
api-mifit.huami.com/users/<userid>/devices | GET | 401 invalid token | App 侧设备列表,存在(本项目「检测」即用它) |
api-mifit.huami.com/v1/device/binds.json | GET/POST/PUT/DELETE | 401 invalid token | 绑定记录,存在但只能由蓝牙配对流程写入 |
api-mifit.huami.com/v1/devices 等 | GET/POST | 404 / 405 | 路径不存在(曾被误用为创建设备接口) |
- 「绑定虚拟设备」为试验性(可能无效),不默认开启,不影响正常刷步
- 它不会让你在 Zepp App 的「我的设备」里看到新设备——那只能靠真实蓝牙配对
- 最可靠、且已验证有效的做法:借一个真实手环/手表在官方 App 绑定一次(绑定后可解绑,设备记录会留存),或直接使用之前绑定过手环的「老账号」
- 若「检测设备状态」长期报接口错误,通常是 token 失效,点一下「重新登录」再试
6.5 关于「安卓模拟器 + 蓝牙 Hook 自动绑定设备」(2026-10 可行性结论)
有人问:能不能不借手环,用安卓模拟器跑官方 App、再用 Xposed 模块模拟一台虚拟手环,让服务器自己把设备加上去? 我们做了专项可行性研究,结论是理论成立、工程上不可行或不划算,所以本系统不提供这个功能。原因如下:
| 路线 | 可行性 | 关键障碍 |
|---|---|---|
| 服务器端批量跑安卓模拟器 | 不可行 | BlueStacks 5 官方明确「不支持蓝牙连接与蓝牙传感器」;夜神只支持 USB 手柄;Android 官方模拟器 不支持蓝牙(Classic / BLE)。模拟器 拿不到蓝牙射频与 HCI 权限,连「扫描到设备」都做不到 |
| 真机 + LSPosed 模块伪造蓝牙外设 | 理论可行,成本极高 | 现有模块(如蓝牙模拟类)只能伪造「扫描列表/查询返回值」,不提供 GATT 服务端;要骗过官方 App 的配对握手,必须在系统蓝牙进程里重写一整台手环的 GATT 服务与私有配对协议,且强依赖 Android 版本与机型,App 一升级就可能失效 |
| BLE 开发板(ESP32 / nRF52)刷手环模拟固件 | 技术上最可行 | 需要重新逆向华米/Zepp 的私有 BLE 协议(公开的 BreakMi 论文覆盖的是小米 MiFit 生态,协议不一样);还要采购硬件、写固件、持续跟进 App 更新。单台硬件约 ¥15–40,加物流与售后 |
| 借真实手环绑定一次 | 已验证有效 | 只需要借一台手环;绑定后可立即解绑,设备记录会留在服务器上 |
七、小米运动健康(Mi Fitness)能用吗?
很多新设备(小米手环 7 Pro / 8 / 8 Pro / 9、Redmi 手环等)只支持「小米运动健康」App,不支持 Zepp Life, 所以大家会问:能不能新增「小米运动健康」平台?我们做了专项逆向研究,结论是 目前不可行。
7.1 先分清两个 App(非常重要)
| Zepp Life(原小米运动) | 小米运动健康(Mi Fitness) | |
|---|---|---|
| 开发方 | 华米(Zepp Health) | 小米 |
| 应用包名 | com.xiaomi.hm.health | com.xiaomi.wearable |
| 账号 | Zepp 账号(邮箱注册) | 小米账号(手机号/小米ID) |
| 云端 | api-mifit*.huami.com | hlth.io.mi.com |
| 本系统是否支持 | 支持(就是你现在用的平台) | 暂不支持 |
7.2 为什么暂不支持?(研究结论)
- 没有可用的步数上报接口。App 侧数据接口全部是只读的
get_*;官方开放平台(澎湃OS 开发者平台)的健康接口也全部是 GET 查询(数据源、采样点、运动记录、运动详情),只提供读取,不提供写入。 - 官方开放平台门槛高且只读。需要开发者账号、应用审核、
clientId+ 密钥 + 用户授权;实测无 clientId 时返回{"code":-8,"message":"auth fail, invalid clientId"}。即使拿到资质,也只能「读用户步数」,不能写。 - 微信同步同样卡「设备」。小米官方 FAQ 原文:「微信运动的接入目前只对穿戴设备用户开放」;没有设备时,微信运动显示的是手机自己的计步数据。这和 Zepp 的机制一模一样——所以换平台并不能绕开设备墙。
- 协议更复杂。小米健康云有额外的 RC4 加密层与签名机制,数据上传走的是加密的二进制对象存储,不是简单的 JSON 步数字段。
完整的研究过程、实测接口清单(URL / 方法 / 状态码 / 响应)见项目源码目录
docs/mifitness-api-research.md。
7.3 持有只支持小米运动健康的新设备怎么办?
- 优先确认该设备能不能绑 Zepp Life:小米手环 5 / 6 / 7 系列两套 App 都支持,可以绑 Zepp Life 后在本系统使用;
- 若设备仅支持小米运动健康(如 7 Pro / 8 / 8 Pro / 9),在该 App 里绑定微信运动后,微信运动拿到的是该设备的数据,本系统目前无法代刷;
- 替代思路:另备一个能绑 Zepp Life 的账号(老号最佳)用于微信运动,本系统继续刷这个账号。
常见问题
1. 提示 token 失效?
长时间没用会过期,去「我的账号」点一下「重新登录」,系统会用保存的密码重新登录一次。
2. 提示账号或密码不正确?
先去官方 App 里退出登录,用邮箱+密码重新登录一次,确认能登进去。如果不记得密码,先在 App 里重置。
3. 每天能刷几次?
默认每天 3 次,当天有效,不累积。定时任务默认不占用次数(可以在后台设置里改成占用)。
4. 最多绑几个账号?
默认 5 个,解绑后名额会释放。
5. 密码安全吗?
账号密码使用 AES-256 加密后保存在服务器上,只用于同步数据。系统不做任何其他用途,也不会在界面上显示明文。
6. 刷了步,微信/支付宝还是没变?
按优先级检查:① 账号有没有「已配对设备」(见第六章);② Zepp App 里第三方平台是否绑定且未解绑;③ 微信数据来源是否选了 Zepp/小米运动;④ 是否在 8:00-21:00 之间并已等待 5-30 分钟。
7. 我的账号是小米运动健康(Mi Fitness)的,能绑吗?
暂时不能。小米运动健康和 Zepp Life 是两个完全不同的平台(账号、云端、协议都不同),且小米运动健康没有可用的步数上报接口,微信同步同样要求账号里有真实穿戴设备。详见第七章。本系统只支持 Zepp Life / Zepp(国际版)两个平台。
8. 能不能用安卓模拟器自动帮我绑一台虚拟手环?
不能,也不打算做。安卓模拟器没有蓝牙能力(官方明确不支持蓝牙/BLE),无法完成真实配对;真机 Hook 或专用蓝牙硬件的路线的开发与维护成本远超收益。详见 6.5 节。请用「借一个真实手环在官方 App 绑定一次」的办法,绑定后可立即解绑。