使用Xcode + Python进行IOS运动轨迹模拟

article/2025/8/26 9:02:21

前言

在某些app中,需要根据用户的实时位置来完成某些事件

例如跑步打卡软件(步道乐跑)、考勤打卡软件(叮叮)、某些基于实时位置的游戏(Pokemon Go、一起来捉妖)

一般解决办法是通过使用安卓模拟器,通过改变模拟器的位置属性来实现模拟位置

但是某些软件会通过比对常用设备的uuid,设备序列号等

一旦出现不匹配或者无法识别就可能会被列为怀疑对象,且安卓模拟器较难实现连续的拟人化的路径

因此,为了减少被判定作弊的可能,只能通过在常用设备上连续的改变实时位置来模拟跑步行为

 

硬件环境:

    MacBook Pro (15-inch, 2017)

    iPhone 8 Plus

软件环境:

    macOS Mojave 10.14.5

    iOS 12.4

    Xcode 10.2.1

    Python 3.7.0

    sublime text 3.1.1

 

具体步骤

1.使用Xcode创建一个IOS项目

打开Xcode -> Preferences 添加Apple ID

          

在Xcode上创建新项目

打开Xcode -> create a new Xcode project

选择ios菜单 -> Single View App

填写项目名 推荐非中文

在事先准备好的文件夹内存放 文件夹推荐非中文

        

       

此时将iPhone连接mac 左上角显示连接设备

出现如下结果即为成功:

 

 

2.使用Xcode创建一个含有gpx的文件

GPX(GPS eXchange Format,GPS交换格式)是一个XML格式,为应用软件设计的通用GPS数据格式,专门用来存储地理信息

一个GPX文件内包含一些经纬度点组成的轨迹,包含了时间、名字等信息

 

回到Xcode 打开Xcode -> File -> New -> File...

在IOS菜单下选择GPX File

选择一个位置并命名GPX文件 例:fake_loc.gpx

             

 

自动生成如下gpx文件即为成功

分析该gpx文件,格式类似标签语言风格

在<wpt>标签内包含经纬度(lat、lon)、该点名称以及时间

第一段注释内容大意为: 

  “提供一个或多个包含纬度/经度对的点

  如果提供一个点,Xcode将模拟那个特定的点

  如果提供多个点,Xcode将依次模拟每一个点”

第二段注释内容大意为: 

  “可以选择为每一个坐标点添加一个时间标签可,Xcode可以根据时间标签的顺序依次移动到每一个坐标点,并根据时间点来插入速度X

  如果不提供一个时间标签,那么Xcode将使用一个固定的速度

  航路点必须按时间升序排序

 

因此,可以通过输入一系列点来模拟位置,让Xcode来依次定为每一个点来模拟人的跑动行为

 

3.使用Python来自动生成一系列轨迹点

mac下python与sublime text3的环境配置在第一篇随笔中有记录

 

分析gpx文件结构可以得到目标gpx文件结构应该为:

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"><wpt lat="坐标点经度1" lon="坐标点纬度1"></wpt><wpt lat="坐标点经度2" lon="坐标点纬度2"></wpt><wpt lat="坐标点经度3" lon="坐标点纬度3"></wpt>#......#以此类推
</gpx>

 

在地图经纬度查询网站可以得到指定地点的经纬度信息:http://www.gpsspg.com/maps.htm

我们选择西安市某211高校作为实验地点:

该网站提供多个公司的定位标准下的经纬度信息

由于每一家公司的定位标准不同,经纬度就会存在偏差,这时候就要看用来模拟的APP使用哪家的地图了

我们以某跑步打卡APP 步道乐跑 作为实验对象

在该高校实现水平移动与竖直移动

 

经过验证该APP使用的是 谷歌地球标准

 

通过该网站首先得到一段直线的首尾经纬度点:

      

 

 

开始点:

lat:34.3752989239

lon:108.9080291565

中间点:

lat:34.3740193255

lon:108.9085977848

结束点:

 

lat:34.3733728774

 

lon:108.9064091023

 

 

在该网站可以通过经纬度获得距离信息:http://www.hhlink.com/经纬度/

计算得到距离约为78米

后续可根据需求,通过测距来得到相应距离 从而计算得到水平与竖直移动速度

可以得出结论:

在该高校相对从北到南 经度减少,纬度增加

在该高校相对从东到西 经度减小,纬度减小

在符合跑步打卡APP步道乐跑的配速要求:3~9 min/km

 

 例如从北到南生成100个点

经度依次减少 纬度依次增加,并使得这100个点散布在路径上

每个点之间减少或者增加的距离可以通过乘以指定范围内的随机数,使得点之间呈现左右略为摇摆的路径

在点数量较多的情况下近似为人的跑动轨迹

 

根据该高校的位置情况编写相应的python程序:

import random#初始点信息
a1 = 34.3752989239;
b1 = 108.9080291565;
#中间点信息
a2 = 34.3740193255;
b2 = 108.9085977848;for i in range( 1,1000 ):while( a1 >= a2 ):        # 循环条件 经度未到达中间点时执行xa = round( random.uniform(0.2, 7) )    # 随机数,用于模拟人跑动xb = round( random.uniform(12, 15) )# 竖直移动a1 = round( a1 - 0.0000072 * xa , 10 )b1 = round( b1 + 0.0000008 * xb , 10 )# 输出信息print( '<wpt lat="' + str( a1 ) + '"' + ' ' + 'lon="' + str( b1 ) + '">' )print( '</wpt>' )for i in range( 1,1000 ):xa = round( random.uniform(2, 8) )xb = round( random.uniform(1, 3) )# 水平移动a2 = round( a2 - 0.000003 * xa, 10 )b2 = round( b2 - 0.000025 * xb, 10 )print( '<wpt lat="' + str( a2 ) + '"' + ' ' + 'lon="' + str( b2 ) + '">' )print( '</wpt>' )

 

得到输出(节选):

 

将该输出复制并粘贴在gpx文件里

并 command + s 保存

可以在xcode项目目录内找到并打开该文件:

 

 

4.开始位置模拟

确保手机连接上电脑,并解锁保持屏幕常亮

点击Xcode右上角开始图标:

 

第一次会提示iPhone未信任开发者

在设置 -> 通用 -> 设备管理 点击该开发者并选择信任

再次在Xcode上点击右上角图标

一分钟左右手机上会多出一个灰色的app图标

点击后按home键退出,进入步道乐跑

在Xcode下方多出一栏功能,点击位置图标并选择你的fake_loc

 

此时APP就已经按照gpx文件内的路径开始移动了

 

 

 

 

 

5.总结

在模拟时没有考虑速度的因素,按照默认的Xcode对gpx的点的更新速度来实现的

在控制整体的移动速度时完全是按照点的密集程度,即点的位置变化程度来实现的

后期可以根据时间标签<time>来改进获得更精确的速度

 

根据步道乐跑后台数据,检测作弊主要依靠平均配速、每公里的步数、设备uuid、设备序列号来检测的

文章的方法可以解决平均配速、uudi、序列号等问题(因为就是使用真机来实现的)

但是对于步数只能依靠在模拟时通过摇晃手机来实现

 

转载于:https://www.cnblogs.com/Joeric07/p/11173651.html


http://chatgpt.dhexx.cn/article/J4DynfjI.shtml

相关文章

运动世界校园刷跑的简单方法应用

工具&#xff1a;安卓手机&#xff08;系统版本不要太低&#xff09; 软件 &#xff1a;运动世界校园&#xff0c;GPS JoyStick&#xff08;一款很优秀的模拟定位软件&#xff0c;拥有操作杆&#xff09; Step 1: 下载安装软件&#xff08;GPS JoyStick是我在Google Play上面…

运动世界校园【夜神模拟器】5.30

文章目录 前言一、下载安装夜神模拟器二、打开夜神模拟器三、定位跑步区域四、模拟跑步①步频 总结 前言 ​ &#x1f496;&#x1f496;《运动世界校园》&#x1f496;&#x1f496;&#xff1a; &#x1f3a8;个人主页&#xff1a;MIKE笔记 &#x1f3a8;专栏&#xff1a;爱…

乐跑解决方案

步道乐跑V3.3.6&#xff08;最新版本&#xff09;——三个随机打卡点问题解决方案 郑重声明&#xff1a; 步道乐跑初衷是为积极响应国家推进课外体育信息化工作&#xff0c;深入贯彻执行《高等学校体育工作基本标准》、《国家学生体质健康标准》、《“健康中国2030”规划纲要》…

论“正确”的使用步道乐跑(二)

有了想法后&#xff0c;然后看了很多大佬的方法&#xff0c;很多都是用Fake Location&#xff0c;但一看好像要花钱注册会员&#xff0c;作为资深白嫖党&#xff0c;果断放弃&#xff0c;然后就找到了一个使用模拟器的方法&#xff0c;除了不能提前规划路线&#xff0c;一天只能…

步道乐跑技术更新版

相信大家看了我的上篇文章已经懂得了乐跑的基本知识&#xff0c;由于fakelocation有些功能不可以使用&#xff0c;造成步道乐跑那段时间不可以使用。博主呢&#xff01;我又和舍友每天晨跑打卡了。过了一些自律的生活&#xff0c;有开始搞事情了。下面讲的是最新的步道乐跑知识…

步道乐跑

关于如何正确使用步道乐跑的方法介绍&#xff08;小白一枚&#xff0c;学习交流使用&#xff09; 免责声明&#xff1a;大多操作内容是来自网络&#xff0c;本人仅是用自己有限的知识储备进行组装&#xff0c;仅供参考学习&#xff0c;并非倡导&#xff0c;如有侵权&#xff0…

2022年步道乐跑(最新版本)

1&#xff0c;拥有一台电脑 2.拥有一台水果机 满足条件请看链接内容&#xff1a;&#xff08;两个链接都是一样的&#xff0c;那个可以用就那个&#xff09; 链接&#xff1a;https://pan.baidu.com/s/1_aA0HP1oul9RNyLfr4QCIQ?pwd1111 提取码&#xff1a;1111 链接&…

步道乐跑(最新版本)

步道乐跑V3.3.6&#xff08;最新版本&#xff09;——三个随机打卡点问题解决方案 郑重声明&#xff1a; 步道乐跑初衷是为积极响应国家推进课外体育信息化工作&#xff0c;深入贯彻执行《高等学校体育工作基本标准》、《国家学生体质健康标准》、《“健康中国2030”规划纲要》…

如何正确使用步道乐跑

步道乐跑是一款记录运动健康的软件&#xff0c;跑步对有些人是一件幸事&#xff0c;但也造成了一些人烦恼。我们都知道跑步的好处有很多&#xff0c;提高免疫力&#xff0c;强身健体&#xff0c;增强体质&#xff0c;改善肤色。。。本人也是喜欢跑步&#xff0c;感受跑步带来的…

基于Inspeckage的安卓APP抓包逆向分析——以步道乐跑APP为例

引言&#xff1a;本人最近稍微弄懂了inspeckage的用法&#xff0c;特在此以步道乐跑APP为例&#xff0c;较详细记录地记录APP抓包与简单的逆向分析过程&#xff0c;用于备忘与共同学习&#xff01;另外&#xff0c;温馨提醒&#xff0c;本文图片较多&#xff0c;建议连接WiFi阅…

2030年量子计算市场规模预计将达45310.4亿美元

&#xff08;图片来源&#xff1a;网络&#xff09; 2020年&#xff0c;量子计算市场规模占3873亿美元。据最新研究&#xff0c;预计到2030年&#xff0c;量子计算市场规模将达45310.4亿美元&#xff0c;年复合增长率为28.2%。 这项研究主要从以下几个方面进行了预测&#xff1…

量子计算(十四):超导量子芯片

文章目录 超导量子芯片 超导量子芯片 超导量子计算是基于超导电路的量子计算方案&#xff0c;其核心器件是超导约瑟夫森结。超导量子电路在设计、制备和测量等方面&#xff0c;与现有的集成电路技术具有较高的兼容性&#xff0c;对量子比特的能级与耦合可以实现非常灵活的设计…

量子计算(十五):半导体量子芯片

文章目录 半导体量子芯片 前言 半导体量子技术的发展 半导体量子芯片 前言 当传统计算模式趋近瓶颈时&#xff0c;下一代计算模式的重大变革也即将来临。在不久的将来&#xff0c;量子计算可以改变世界已经成为了共识。 一些大公司已经开始将量子计算研究视为一场竞赛。谷…

ICV光子盒:2023全球量子计算产业发展展望

近日&#xff0c;全球著名的前沿科技咨询机构ICV与国内专注量子领域的行业研究机构光子盒&#xff0c;联合发布了2023全球量子计算产业发展展望&#xff0c;为量子计算行业的决策者、投资者和政策制定者提供了宝贵的见解&#xff0c;帮助其紧跟量子计算的最新发展&#xff0c;并…

量子计算进阶:量子计算机的组建和量子计算原理(包含相关论文推荐60篇)

量子计算进阶&#xff1a;量子计算机 量子计算量子计算机的组建量子门量子存储量子CPU测控系统量子纠错 另推荐相关论文(基础领域20篇,深化领域30篇&#xff09;量子基础量子计算基础 前置所需知识&#xff1a; 量子计算入门&#xff1a;量子计算机的理解与术语科普 本文中的大…

量子计算(6)pyqpanda编程1:量子程序与量子线路

目录 一、概述 1、前言 2、构建量子程序前的几个步骤 ①导入pyqpanda包 ②创建量子虚拟机 ③申请量子比特和经典寄存器 二、QGate类 1、量子比特门 ①单量子比特无角度 ②单量子比特有角度 ③多量子比特无角度 ④多量子比特有角度 2、接口 ①对矩阵进行伴随…

量子计算(二):为什么需要量子计算

目录 为什么需要量子计算 前言 一、大数据检索 二、 量子模拟 三、 金融服务 四、人工智能 五、现代农业 六、 云计算 七、网络安全 为什么需要量子计算 前言 根据摩尔定律&#xff0c;集成电路上可容纳的晶体管数目每隔约18-24个月增加一倍&#xff0c;性能也相应增…

量子计算(1)科学背景1:量子力学基本理论(上)

一、量子技术的历史 二、量子力学 1、量子的四特性 2、量子力学基本理论 ①态矢 ②内积与外积 ③两能集系统 ④观察概率 一、量子技术的历史 我们学习一个东西&#xff0c;归根结底是要掌握他在科学上的用途。而如何去使用、历史上是如何运用的&#xff0c;值得…

量子计算(七):量子系统

文章目录 量子系统 前言 一、量子化 &#xff08;Quantization&#xff09;与量子态 &#xff08;QuantumState&#xff09; 二、量子叠加性 &#xff08;Quantum Superposition&#xff09; 三、状态的演化&#xff08;Evolution of State&#xff09; 四、测量和坍缩&…

量子计算(十):量子计算原理

文章目录 量子计算原理 一、酉变换 二、矩阵的指数函数 三、单位矩阵 四、单量子比特逻辑门 五、泡利矩阵 六、常见逻辑门 量子计算原理 经典计算中&#xff0c;最基本的单元是比特&#xff0c;而最基本的控制模式是逻辑门&#xff0c;可以通过逻辑门的组合来达到控制电…