一些应用程序(微信)如何忽略虚假位置然后检测真实位置?

bla*_*ara 10 android location android-gps

我安装了一个虚假的位置应用程序,并设置我的位置不同.然后打开谷歌地图和微信应用,

  • 谷歌地图显示我的位置,我设置(假)
  • 微信应用程序忽略虚假位置并检测真实位置(如何?)

然后我想阻止微信分析我以前收到的真实位置和新假位置.

  • 卸载微信
  • 重启我的设备
  • 将我的位置设为假
  • 再次安装微信

但同样的结果,它检测到我的真实位置.

我真的很想了解他们是如何做到这一点的.有任何想法吗?


我试过的

  • Gps提供者恶搞
  • 网络提供商恶搞
  • 融合位置提供商恶搞
  • IP地理定位恶搞
  • Gps提供商恶搞+ IP地理定位恶搞

UPDATE

即使在禁用时也使用GPS.

在此输入图像描述

07-02 11:46:15.504 2346-2356 /?D/LocationManagerService:请求434a7e28 gps从com.tencent.mm请求[ACCURACY_FINE请求gps = + 1s0ms最快= + 1s0ms](10173)


结论

  • 您可以在较旧版本的微信上伪造位置(低于6.0)
  • 使用像BaiduLocationSDK这样的东西.它不受任何通过LocationManager和Fused提供程序的模拟尝试的影响.
  • 我不确定但是,好像百度位置SDK通过硬件级别使用GPS.

Bon*_*ide 1

如果ALLOW_MOCK_LOCATION设置了 并将 aTestProvider添加到LocationManager. 要获取真实位置,您需要执行以下两个步骤:

  • 检测 MockSettings 是否已启用以及是否安装了应用程序如何伪造位置。
  • TestProvider然后您可以从中删除LocationManager并获取实际位置。

查看Jambaaz 答案以获取其在代码中如何工作的示例。

注意:要删除,TestProvider您需要权限android.permission.ACCESS_MOCK_LOCATION,但ALLOW_MOCK_LOCATION自 API 23 起已弃用。您现在可以直接检查位置是否来自 TestProviderLocation.isFromMockProvider()