今天来聊聊未越狱iPhone虚拟定位的方法。首先给读者朋友们提个醒,App Store那些收费(或者App内购)的宣称能够模拟定位的App,100%都骗人的。因为iOS相对封闭,对定位权限控制很严格,未越狱的情况下App也没有任何接口可以修改系统定位。不过哪里有压迫,哪里就有反抗。需求决定应用,有需求就有市场,办法还是有的。需求是什么呢?为什么要虚拟定位呢?除了上图说的几种原因之外,当然最重要的就是在休闲会所休息时能把定位修改到公司。那在未越狱的iPhone进行虚拟定位,有哪些方法呢? 小司机今天主要分享两种方法。(一)利用Xcode联机调试来虚拟定位这个方法iOS开发的同学应该都知道吧,如果不知道的就要打pp了。我之前文章中也提到过,这里偷个懒,直接复制过来了。(1)选好目的地 比如打开百度地图PC版,搜索马拉卡纳球场,找到对应的经纬度坐标,记录下来。(2)打开Xcode,模拟定位把iPhone连上电脑,打开Xcode随便在手机上运行一个程序,然后把第一步查到的坐标,放在一个gpx文件中,进行模拟,整个iOS系统的定位就已经修改。(二)借助苹果MFi外设,硬件辅助模拟定位刚刚说的用Xcode模拟定位,有一个致命的缺点就是需要连着Mac不够方便,总不能去休闲会所还背个民工包带着个苹果电脑吧。所以,这里重点介绍第二种方法,借助MFi硬件辅助进行虚拟定位,先看个小视频。Play Video这样一个小玩意,还挺方便的,插上也不影响耳机使用和充电,配合一个App,可以随意搜索POI或者地图上点选进行模拟定位。它的原理是怎样的呢?它主要是利用了苹果的通用外设协议,集成MFi芯片,注册成为外置的GPS设备,然后更新系统位置,能够对包括微信在内的所有应用生效。更具体一点说,硬件需要集成苹果的MFi芯片,然后利用了iAP2中的两种协议:External Accessory Protocol和Location Information,大概原理如下:(1)模拟定位的App 使用 EA协议跟外设连接。这个App集成了地图SDK,主要用途就是方便用户进行搜索或者地图点选来获取想要虚拟定位的GPS信息,然后通过EA通道使用自定义的数据协议把用户选好的GPS信息发送给硬件。(2)硬件从EA通道接收到GPS信息之后,根据iAP2中的Location Information协议把GPS信息进行编码,发送给iOS系统。(3)iOS系统接收到硬件通过Location Information协议过来的GPS信息之后,就会把整个系统底层的定位信息更新,这样包括微信在内的所有应用的定位都修改成了刚刚选择的模拟定位点了。苹果为什么要开放这样一个可以修改系统定位的外设协议呢?从这段苹果官方文档的描述可以看到,主要目的是为了提高定位精度,提升某些场合的用户体验。比如汽车的GPS模块定位精度要比iPhone高,如果能够把汽车的GPS信息发给iPhone,那iPhone上的导航体验就会好很多。当然上面这种通过MFi芯片进行模拟定位的硬件,肯定是过不了苹果的MFi认证的。只能够去黑市购买MFi芯片,然后开发走线下渠道销售,App也上不了App Store,只能通过企业证书分发。网上还有一些其他的方法,比如通过各种手机助手(比如PP助手)来修改定位等,我自己没有用过,这里就不做介绍了,大家可以搜索了解一下。另外,本人维护了一个“MFi开发交流”的V_信群,里面有iOS开发 、外设驱动开发、MFi认证机构等各类相关人员,大家相互交流互帮互助。感兴趣的同学可以关注V_信公众号(云峰小罗)私信我进群,入群备注:MFi。
0 评论