Skip to content

About

通过公开sdk检测是否存在定位伪造/虚拟定位

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

使用的百度、高德、腾讯定位sdk均为国内版,不面向非大陆用户,不提供英文。

The Baidu, Amap and Tencent positioning SDKS used are all domestic versions and are not targeted at users outside the Chinese mainland. English is not provided.


LocationVerify 位置真伪检测

Android 位置检测工具,依次运行 百度 → 高德 → 腾讯定位 SDK,展示定位结果与模拟定位信号。至少配置一个 Key;未配置的 SDK 自动跳过。每家 SDK 的应用层等待上限为 15 秒,三家都运行时约需最多 45 秒。

风险等级仅描述 SDK 的返回信号。“低风险”不能证明位置真实;定位失败、超时和字段未知也不能证明位置真实或虚假。

使用

  1. 首次启动阅读功能与隐私说明,勾选同意。
  2. 在「配置密钥」填写至少一个 Key。页面展示当前安装包的包名与签名 SHA-1,可选中复制。
  3. 授予定位权限。建议使用精确位置;应用接受大致位置权限,但 SDK 的结果和可用字段可能受限。
  4. 开启系统定位,确保网络能够访问各厂商服务,点击「开始检测」。

定位流程与风险映射

三家按顺序执行,每家完成、失败、超时或跳过后进入下一家,结果分别显示在三个区域。

SDK 当前配置 重点字段
百度 setEnableSimulateGnss(true)、setScanSpan(0),调用 LocationClient.start() 启动首次定位 getMockGnssProbability()、getMockGnssStrategy()、getDisToRealLocation()、getReallLocation()
高德 setOnceLocation(true)、setMockEnable(true),关闭定位缓存 isMock、错误码 15、trustedLevel、locationType
腾讯 setMockEnable(true)、setEnableAntiMock(true),禁用缓存,使用 requestSingleFreshLocation;请求坐标、不等待地址,SDK 首包超时 10 秒,应用兜底 15 秒 isMockGps()、getFakeProbability()、getFakeReason()、sourceProvider

腾讯 setInterval(0) 表示有新结果时才回调,不表示单次定位。当前使用 SDK 的单次定位接口,完成、取消或超时后仍调用 removeUpdates() 清理;请求返回非 0 时立即报告失败,不再等待 15 秒超时。

以下是应用自己的映射规则,不是统一的厂商真实性保证:

等级 百度 高德 腾讯
高风险 定位成功且概率 HIGH,或虚假点与真实点距离 > 0 isMock=true,或错误码 15 isMockGps=1、来源含 FAKE,或概率在 0.6~1
中风险 定位成功且概率 MIDDLE — 概率 > 0 且 < 0.6
低风险 定位成功且概率 LOW / ZERO 定位成功且 isMock=false isMockGps=0 且没有更高风险信号
无法判断 定位失败或概率未知 其他定位失败 定位失败,或无法判断 Mock GPS 且没有明确反作弊信号

高德错误码 15 表示模拟位置被识别并拒绝,界面显示“检测完成 + 高风险”,不代表获得了可用位置。腾讯 isMockGps=-1、概率为 0 或概率无效本身不作为低风险证据。可信度、定位类型用于提供上下文,不能独立证明真伪。

密钥与签名

应用包名为 com.tiger.locationverify。

厂商 申请入口 配置要点
百度 百度控制台 创建 Android SDK 应用,填写包名和实际安装包的签名 SHA-1
高德 高德控制台 添加 Android 平台 Key,填写包名和正确的签名 SHA-1
腾讯 腾讯控制台 创建应用,按控制台当前鉴权要求配置

调试与发布签名可能不同,以安装后配置页展示的值为准。自行签名时也可以查询 keystore:

keytool -list -v -keystore <你的 keystore 路径>

密钥保存在本地 SharedPreferences。检测器在创建客户端前通过 LocationClient.setKey、AMapLocationClient.setApiKey、TencentLocationManagerOptions.setKey 设置密钥。腾讯使用进程单例,修改腾讯 Key 后请重启应用,确保新值生效。

Manifest 中的密钥占位符默认为空。检测器先检查应用内保存的 Key,因此只修改 Manifest 占位符不会使该 SDK 通过“已配置”检查。日志中的 Key 会遮挡中间部分,但日志仍包含位置和 SDK 详情。

隐私与日志

用户同意决定在本地持久保存,并在创建定位客户端前同步给三家 SDK;未同意时进入隐私页。应用生成的报告与日志保存在本机;SDK 按各自政策向官方服务传输所需信息,应用没有额外上传服务。

隐私政策:百度、高德、腾讯。

地图sdk版本

当前声明的依赖:百度 9.7.0、高德 11.3.000、腾讯 7.6.1.9。

About

通过公开sdk检测是否存在定位伪造/虚拟定位

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages