企业宣传,产品推广,广告招商,广告投放联系seowdb

如何利用xposed模拟位置

在我们的日常工作过程中,经常会遇到线上出现问题,但是又需要模拟到某个城市以复现问题,模拟定位成为了必不可少的需求,但是又不能给正式环境留下漏洞以实现模拟位置。那么如何模拟位置呢,用什么工具可以做到呢,下面进行阐述。既然要定位,那么我们肯定要了解清楚定位的基本原理。定位方式分析:定位可分为:GPS定位,基站定位,WIFI定位GPS定位:需要GPS硬件支持,直接和卫星交互来获取当前经纬度。优点:可在无网络时使用。缺点:可在户外使用、比较耗电。基站定位:一般我们手机附近有三个基站及以上,基站间进行三角定位,由于基站的位置是不变的,发出电磁波利用电磁波的中转时间推测出手机所在的坐标;优点:只要有基站就能知道设备的大概位置。缺点:定位精准度不高,偏远地区无法使用,如果基站信息更新不及时定位不准确。WIFI定位:我们的WIFI都有一个固定的Mac地址,我们安装无线路由器以后,手机会搜集周围的WIFI信息,并通过定位SDK上传到云端,通过WIFI的SSID+WIFI信息去云端数据库进行匹配来确定用户的位置,这就是为什么搬家以后定位还是在以前住的地方的原因,因为云端数据库信息还没有来得及更新,只有时间长了,算法根据权重进行了更正,位置才可能发生变化。也就解释了为什么打开地图类软件会让你开启WIFI提高定位精准度,虽然你可能没有连上WIFI优点:只要有wifi就能使用。缺点:户外无法使用,商场干扰强。工具选择xposed: 工具作用可修改app中的任何方法。搭建xposed环境:可参考:查询全国基站数据:可参考:查询基站是否可用:可进行测试:查询经纬度信息:可参考通过以上分析我们就可以利用工具模拟位置:思考,如何屏蔽到不需要的定位呢,以避免暴露真实位置:GPS定位可通过修改经纬度。对应安卓中的类 Location -> getLatitude,getLongitude基站定位可通过修改当前基站编号,屏蔽附近基站,来达到目的。对应安卓中的类 TelephonyManager -> getNeighboringCellInfo,getAllCellInfo,getCellLocationWIFI定位可通过屏蔽附近WiFi达到目的:对应安卓中的类 WifiManager -> getScanResults每次只是用一种方式进行定位以避免位置暴漏:这里我们举例使用基站进行定位:使用Xposed工具屏蔽GPS定位,屏蔽Wifi定位,下载查询全国基站数据后解压,查询某地的经纬度信息,通过经纬度查询基站数据信息(需要利用正则表达式查询)例如: 通过以上步骤查询到的基站信息为:loc:4301,cid:20986通过查询基站是否可用:利用xposed设置当前基站信息:运行重启设备后,就可正常修改位置;总结与反思:xposed的诞生无疑是把双刃剑,对我们软件测试复现Bug带来的极大的便利,同时由于他强大的功能也使的一些灰色产业兴起。不得不使我们产生极大的危机感,因此我们应该更加致力于App数据安全中,使用各种检测技术保护数据安全。当然实现模拟定位的方式还有很多,例如使用Magisk,EdXposed,模拟器等…, 这只是一个方向,更重要的是他很强大,我们必须重视,保护数据安全。

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender