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文件枚举, 传感器, 信号处理, 后台面板检测, 域名枚举, 战术态势感知, 无线定位