@ capgo/ 电容- 位置- 检测器
检测假的GPS 和位置 在你的Capacitor app中 与分层,App Store 安全检查iOS和Android。 保护报到、送货和地点奖励.
🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用
@capgo/capacitor-mock-location-detector在您的电容应用程序中:npx skills add Cap-go/capgo-skills。然后问你的经纪人: 添加@capgo/capor-mock-location-detector到我的Capacitor应用软件上并把它接上" 代理设置指南 • 妇女 主机磁共振
主要特点
- 全面分析数字 :
analyze()返回时isSimulated,一个信任水平,一个riskScore和触发的检查. - 单次检查数字 :
runCheck()对于模拟旗,模拟位置应用程序,开发者选项,亚行,模拟器,位置异常和运动相关性. - 监测数字 :
startMonitoring()编辑locationIntegrityChanged当判决改变时. - 能力数字 :
getCapabilities()列出平台支持的检查. - 开发者设置数字 :
openDeveloperSettings()安卓号. - 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-21. 在网上不可用.
抓图
- 插件名称 :
@capgo/capacitor-mock-location-detector - 一行数值 : Capacitor apps的多层 GPS 扫描和开发工具检测
- 维护者 : 队长
- 状态 : β 语录
问题范围( S)
此插件为何存在
Pokeep和iMyFone AnyTo等工具可以对设备定位进行搜索. iOS等一面旗帜 isSimulatedBySoftware 不可靠 与每一种欺骗方法。 这个插件结合了多个独立信号,因此您的应用可以做出更好的预防欺诈的决定.
它会做什么
- 运行分层检查:系统模拟旗帜、开发者选项、已知的模拟应用程序、运动热度和运动相关性
- 返回已记分
LocationIntegrityResult详细情况 - 支持与
locationIntegrityChanged事件 - 打开最佳设置屏幕, 让用户可以禁用开发者/ 模拟工具
它不会做的
- 无法在程序上禁用开发者模式或模拟位置设置( iOS/ Android 不允许)
- 无法保证100%检测到每个未来的偷窥工具
- 在 iOS 上, Apple 没有公开的 API 读取直接切换的开发者模式
兼容性
| 插件版本 | 电容兼容性 | 维护 |
|---|---|---|
| 联合国 | 联合国 | ✅ |
| 页:1 | 页:1 | 应要求 |
| 页:1 | 页:1 | 应要求 |
安装
npm install @capgo/capacitor-mock-location-detector
npx cap sync
设置
iOS系统
在您的应用程序中添加位置使用描述 Info.plist数字 :
<key>NSLocationWhenInUseUsageDescription</key>
<string>We verify your location has not been spoofed.</string>
可选: 为您想要检测的 company spoof apps 声明 URL 方案 :
<key>LSApplicationQueriesSchemes</key>
<array>
<string>anyto</string>
<string>fakegps</string>
</array>
机器人
确保您的应用程序请求运行时间位置权限 。 插件在其显示的合并中声明粗细/精细位置权限 .
使用量
import { MockLocationDetector } from '@capgo/capacitor-mock-location-detector';
const result = await MockLocationDetector.analyze({
requestLocationSample: true,
minDetectedChecks: 1,
});
if (result.isSimulated) {
console.warn('Possible GPS spoofing detected', result.checks);
}
// Guide the user, apps cannot disable developer mode automatically
await MockLocationDetector.openDeveloperSettings();
运行一个检查层 :
const mockFlag = await MockLocationDetector.runCheck({
check: 'system_mock_flag',
});
开始监视 :
await MockLocationDetector.addListener('locationIntegrityChanged', (event) => {
console.log('Integrity changed', event.riskScore, event.checks);
});
await MockLocationDetector.startMonitoring({ intervalMs: 30000 });
检查层
| 检查身份 | iOS系统 | 机器人 | 说明 |
|---|---|---|---|
system_mock_flag | ✅ | ✅ | 目前位置固定上的OS模拟/模拟旗帜 |
developer_options | - 说吧 | ✅ | Android 开发者选项已启用 |
developer_mode_indicators | ✅ | ✅ | 间接开发者/ 调试者构建时速 |
mock_location_app | ✅ | ✅ | 已知的 spoof 应用软件包/ URL 方案 |
adb_enabled | - 说吧 | ✅ | 启用 USB 调试 |
mock_provider_settings | - 说吧 | ✅ | 准予模拟地点许可的申请 |
location_anomaly | ✅ | ✅ | 无法移动速度/ 远程端口热力 |
motion_correlation | ✅ | - 说吧 | GPS 移动不匹配加速计活动 |
simulator | ✅ | ✅ | 模拟/模拟环境 |
Capgo 链接
- 插件文件 URL :
https://capgo.app/docs/plugins/mock-location-detector/ - 网站/文件重播:
https://github.com/Cap-go/website
getCapabilities()analyze(...)runCheck(...)openDeveloperSettings()startMonitoring(...)stopMonitoring()addListener('locationIntegrityChanged', ...)getPluginVersion()- 接口
- 类型异名
探测到模拟GPS位置和开发者工具,这些工具通常可以对应用软件进行扫描.
这个插件结合了多个独立检查,因为没有单一的OS旗是可靠的对抗 工具如 Pokeep 或 iMyFone AnyTo。 在iOS上,苹果公司不提供公共API来读取该版本 开发者模式直接切换;插件则使用App Store-safe Heuristics取而代之.
Apps 无法在程序上禁用开发者模式或模拟位置设置 。 使用 QQLink MocLocation DetectionorPlugin. open DevelopersSettings } 引导用户进入相关设置.
获取能力( )
getCapabilities() => Promise<MockLocationDetectorCapabilities>
回返情况: Promise<MockLocationDetectorCapabilities>
分析(...)
analyze(options?: AnalyzeOptions | undefined) => Promise<LocationIntegrityResult>
| 参数 | 类型 |
|---|---|
options | AnalyzeOptions |
回返情况: Promise<LocationIntegrityResult>
运行检查(...)
runCheck(options: RunCheckOptions) => Promise<LocationCheckResult>
| 参数 | 类型 |
|---|---|
options | RunCheckOptions |
回返情况: Promise<LocationCheckResult>
打开开发者设置( C)
openDeveloperSettings() => Promise<void>
启动监测(...)
startMonitoring(options?: MonitoringOptions | undefined) => Promise<void>
启动本土平台背景完整性监控.
与 QQlink MockLocation 探测器Plugin.add listener 的对等以接收
locationIntegrityChanged 应用程序处于前景时的事件.
| 参数 | 类型 |
|---|---|
options | MonitoringOptions |
停止监视 ()
stopMonitoring() => Promise<void>
停止监控并释放本地位置的听众.
添加倾听器( “ 位置变化 ” ,...)
addListener(eventName: 'locationIntegrityChanged', listenerFunc: (event: LocationIntegrityChangedEvent) => void) => Promise<PluginListenerHandle>
在 QQlink MockLocation DetectionorPlugin. startMonitoring 活动时聆听完整性更新 .
| 参数 | 类型 | 说明 |
|---|---|---|
eventName | 'locationIntegrityChanged' | 一定是这样 'locationIntegrityChanged'。 。 。 . |
listenerFunc | (event: LocationIntegrityChangedEvent) => void |
回返情况: Promise<PluginListenerHandle>
获取 PluginVersion ()
getPluginVersion() => Promise<PluginVersionResult>
回返情况: Promise<PluginVersionResult>
接口
模拟探测器能力
| Prop | 类型 |
|---|---|
platform | LocationIntegrityPlatform |
availableChecks | LocationCheckId[] |
supportsMonitoring | boolean |
canOpenDeveloperSettings | boolean |
集成结果
| Prop | 类型 |
|---|---|
isSimulated | boolean |
confidence | LocationIntegrityConfidence |
riskScore | number |
platform | LocationIntegrityPlatform |
checks | LocationCheckResult[] |
developerMode | DeveloperModeResult |
locationSample | LocationSample | null |
recommendation | string |
位置检查结果
| Prop | 类型 |
|---|---|
id | LocationCheckId |
name | string |
platform | LocationIntegrityPlatform |
available | boolean |
detected | boolean |
message | string |
metadata | { [key: string]: unknown; } |
开发者ModeResult
| Prop | 类型 |
|---|---|
detected | boolean |
canDetectDeveloperMode | boolean |
checks | LocationCheckResult[] |
地点样本
| Prop | 类型 |
|---|---|
latitude | number |
longitude | number |
accuracy | number |
altitude | number |
speed | number |
timestamp | number |
分析选项
| Prop | 类型 |
|---|---|
checks | LocationCheckId[] |
requestLocationSample | boolean |
locationTimeoutMs | number |
minDetectedChecks | number |
additionalMockAppPackages | string[] |
additionalMockAppUrlSchemes | string[] |
运行检查选项
| Prop | 类型 |
|---|---|
check | LocationCheckId |
监测备选方案
| Prop | 类型 | 说明 | 默认 |
|---|---|---|---|
intervalMs | number | 在监测活动期间,如何频繁地进行重新检查。 最小的5000毫秒(英语: 默认为30000. | 30000 |
emitOnlyOnChange | boolean | 何时 true, (中文(简体) ), locationIntegrityChanged 仅在 isSimulated, (中文(简体) ), confidence, (中文(简体) ), riskScore,或触发检查ID更改。 总是会起火. | true |
插件听筒
| Prop | 类型 |
|---|---|
remove | () => Promise<void> |
位置完整性 更改事件
当监测发现时, 由 QQlink MockLocation 探测器Plugin.add listener 所排放的有效载荷 一个新的诚信快照.
在拨打 QQlink MockLocation DetectionorPlugin. startMonitoring 之前, 登记听众 :
| Prop | 类型 | 说明 |
|---|---|---|
reason | 'interval' | 'location_update' | 'manual' | 为什么这个快照被发布 manual 监控开始后的第一个快照 interval 定期重新检查(intervalMs) - (英语) location_update ——设备位置在监测时被改变(仅内部) |
插件变压器
| Prop | 类型 |
|---|---|
version | string |
类型异名
位置 集成格式
'ios' | 'android' | 'web'
位置检查
插件曝光的个人完整性检查 .
'system_mock_flag' | 'developer_options' | 'developer_mode_indicators' | 'mock_location_app' | 'adb_enabled' | 'mock_provider_settings' | 'location_anomaly' | 'motion_correlation' | 'simulator'
地点 完整性
'none' | 'low' | 'medium' | 'high'