niccellular/wifi2cot

GitHub: niccellular/wifi2cot

wifi2cot 是一款 ATAK 插件,通过移动采集 Wi-Fi 接入点的 RSSI 信号并利用三边测量算法估算 AP 位置,以 CoT 标记形式呈现到地图上。

Stars: 29 | Forks: 5

# wifi2cot 一款 ATAK 插件,能在您移动时从附近的 Wi-Fi 接入点采样 RSSI,然后 估算每个接入点的位置并将其绘制为 CoT 标记。 ## 说明 1. 按 **Start scan** 并穿过感兴趣的区域。**请走环形或 L 型路线,不要走直线** —— 走直线无法分辨 AP 偏向哪一侧(几何位置模糊),因此请将您的 采样点在两个维度上分散开。 2. 状态栏会显示已采集的 AP 数量和样本数量。 3. 完成后按 **Stop scan**,然后按 **Compute & plot**。 每个 AP 都会作为一个 CoT 标记落下,并标记其 SSID/BSSID、 使用的样本数量、估算方法以及估算的精度(这也 会写入 CoT 的 `ce` 字段中)。 ## 位置估算原理 系统会自动使用两种估算器(见 `Trilateration.java`): - **加权最小二乘三边测量。** 每个读数都会通过 对数距离路径损耗模型转换为*测距*,并被视为以 观察者位置为中心的圆。在局部 东/北(米)平面内求解最大似然交点,并赋予更强(更近)的读数 极高的权重。与质心不同,这可以将 AP 放置在偏离 您路径**之外**的位置。 - **功率加权质心(兜底方案)。** 在样本少于三个, 或几何结构退化(例如直线路径)且 最小二乘解不稳定时使用。 精度取决于校准:`Trilateration.DEFAULT_REF_RSSI_1M`(1 米处的 RSSI)和 路径损耗指数是主要的调节参数。这些数学计算没有 Android 依赖项,并在 `TrilaterationTest` 中进行了单元测试。 ## 构建 目标为 **ATAK 5.7**(`ATAK_VERSION = 5.7.0`),AGP 8.9 / Gradle 8.14,Java 17, `compileSdk 36`。当不存在 `local.properties` 密钥时,签名会回退到 构建生成的 `${buildDir}/android_keystore`,因此它 在 tak.gov/user_builds 上可以保持不变进行构建。
标签:Android, ATAK插件, DSL, JS文件枚举, 传感器, 信号处理, 后台面板检测, 域名枚举, 战术态势感知, 无线定位