FluidStep-Simulator

流体计步模拟器 (FluidStep Simulator)

由于fakelocation对云运动增加了黑名单,只能降级使用1205左右的版本以及劫持域名到自己的服务器才能正常使用,但是不能模拟步频,市面上没有一款软件能模拟步频,无奈之下自己搓了一个LSPosed模块,通过模拟真实的加速度传感器数据来生成步数。

功能特点

  • 真实模拟:生成接近真实人体步行的三轴加速度数据
  • 可调步频:支持60-180步/分钟的步频设置
  • 配置界面:友好的图形化配置界面
  • 通用兼容:适用于所有读取加速度传感器的应用

技术原理

本模块通过Hook Android系统的SensorManager.registerListener()方法,拦截应用对加速度传感器的注册请求,并注入模拟的传感器数据。

数据生成算法

模拟真实步行时的三轴加速度特征:

  • Y轴(上下起伏)9.8 + 2.5 * sin(2π * t * 步频/60) + 随机噪声
  • X轴(左右摇摆)0.5 * sin(2π * t * 步频/60 + π/4) + 随机噪声
  • Z轴(前后移动)0.3 * sin(2π * t * 步频/60 + π/2) + 随机噪声

传感器采样率:50Hz(每秒50个数据点)

使用方法

1. 环境要求

  • Android 11 (API 26) 或更高版本
  • 已安装LSPosed或EdXposed框架

2. 安装步骤

  1. 用Android Studio打开本项目
  2. 点击菜单:BuildBuild Bundle(s) / APK(s)Build APK(s)
  3. 等待编译完成,APK文件位于:app/build/outputs/apk/debug/app-debug.apk
  4. 将APK安装到手机

3. 配置步骤

  1. 打开LSPosed管理器
  2. 在”模块”列表中找到”流体计步模拟器”,勾选启用
  3. 点击模块进入作用域设置
  4. 勾选需要作用的目标应用(如微信、支付宝、运动健康类应用等)
  5. 打开”流体计步模拟器”应用,设置步频和目标步数
  6. 确保”启用模拟”开关处于开启状态
  7. 点击”保存设置”
  8. 重启目标应用使模块生效

配置说明

配置界面参数

  • 步频设置:控制每分钟的步数,范围60-180步/分钟

    • 60-90:慢走
    • 90-120:正常步行(推荐120)
    • 120-140:快走
    • 140-180:慢跑
  • 目标步数:设置想要达到的总步数(此参数为预留功能)

  • 启用模拟:开关控制模块是否生效

技术细节

Hook点

  • SensorManager.registerListener(SensorEventListener, Sensor, int)
  • SensorManager.registerListener(SensorEventListener, Sensor, int, int)
  • SensorManager.unregisterListener(SensorEventListener)
  • SensorManager.unregisterListener(SensorEventListener, Sensor)

传感器类型

主要Hook Sensor.TYPE_ACCELEROMETER(加速度计传感器)

跨进程通信

使用XSharedPreferences实现跨进程读取配置

常见问题

Q: 模块没有生效?

A: 请检查:

  1. LSPosed管理器中模块是否已启用
  2. 是否勾选了目标应用的作用域
  3. 是否重启了目标应用
  4. 配置界面中”启用模拟”开关是否打开

Q: 步数没有变化?

A: 本模块模拟的是加速度传感器数据,应用需要基于加速度数据计算步数。确保目标应用使用加速度传感器而非直接读取系统计步器。

Q: 如何调试?

A: 在LSPosed管理器的日志中可以看到模块的运行日志:

  • “流体计步模拟器: Hook应用 xxx, 步频=xxx”
  • “流体计步模拟器: 拦截加速度计传感器注册”
  • “流体计步模拟器: 停止传感器模拟”

免责声明

本项目仅供学习和研究使用。使用本模块修改应用数据可能违反相关应用的服务条款,请谨慎使用。作者不对使用本模块造成的任何后果负责。

开源协议

本项目暂不开源。

作者

AG666