meshtastic/ATAK-Plugin

GitHub: meshtastic/ATAK-Plugin

Meshtastic ATAK 插件,实现 ATAK 与 Meshtastic 网状网络的集成,支持战术通信。

Stars: 493 | Forks: 68

# Meshtastic ATAK 插件 官方 Meshtastic ATAK 插件,用于将目标坐标(CoT)事件发送到 Meshtastic Android 应用中的 IMeshService。 ## 概述 Meshtastic ATAK 插件实现了 Android 团队意识套件(ATAK)与 Meshtastic 网状网络设备之间的无缝集成。此插件允许战术团队通过 Meshtastic 的长距离、低功耗网状网络共享位置位置信息(PLI)、聊天消息和其他 CoT 事件。 ## 功能 ### 核心功能 - **位置位置信息(PLI)** - 通过 Meshtastic 在 ATAK 设备之间共享实时位置数据 - **聊天集成** - 通过网状网络发送和接收 GeoChat 消息 - **文件传输** - 使用喷泉码编码(需要 Short_Turbo 调制解调器预设)传输任务包和文件 - **语音备忘录** - 录制语音到文本消息并通过 Meshtastic 广播 - **外部 GPS 支持** - 将 Meshtastic 设备的 GPS 作为 ATAK 的外部 GPS 源 - **服务器中继** - 在 Meshtastic 网状网络和 TAK 服务器之间转发 CoT 事件 ### 架构改进(v1.1.15+) 插件已重构以提高可维护性和性能: - 模块化架构,关注点分离 - 中心化服务管理 - 改进的错误处理和日志记录 - 喷泉码编码,用于在有损网络上可靠地传输大量数据 - 线程安全的单例模式,用于共享资源 ## 安装 1. 从 [Google Play](https://play.google.com/store/apps/details?id=com.geeksville.mesh) 安装 Meshtastic Android 应用 2. 从 [tak.gov](https://tak.gov) 安装 ATAK-CIV 3. 从 [Releases](https://github.com/meshtastic/ATAK-Plugin/releases) 下载最新的 Meshtastic ATAK 插件 APK 4. 在您的 Android 设备上安装插件 APK 5. 启动 ATAK 并从插件菜单加载 Meshtastic 插件 image ## 配置 ### 插件设置 通过:**设置 → 工具首选项 → 特定工具首选项 → Meshtastic 首选项** 访问插件设置 #### 网状设置 - **Meshtastic 通道索引** - 选择用于 ATAK 流量的 Meshtastic 通道(0-7,默认:0) - **按通道索引过滤** - 仅接收来自指定通道的消息(默认:关闭) - **跳数限制** - 出站消息的最大跳数(1-7,默认:3) - **请求确认** - 请求交付确认,增加通道使用(默认:关闭) #### PLI & 报告 - **限制 PLI 报告速率** - 减少 PLI 频率以节省网状带宽(默认:开启) - **PLI 报告间隔** - 发送位置更新的频率(30 秒到 30 分钟,默认:5 分钟) - **仅发送 PLI 和聊天** - 使用优化的 protobuf 格式,建议用于 Meshtastic(默认:关闭) - **发送读取/交付收据** - 为聊天消息发送交付和读取收据(默认:开启) #### 显示设置 - **显示 Meshtastic 设备** - 在地图上显示所有 Meshtastic 节点作为标记(默认:开启) - **隐藏无 GPS 的设备** - 不显示报告 0,0 坐标的节点(默认:关闭) - **隐藏本地节点** - 不在地图上显示您自己的 Meshtastic 设备(默认:关闭) #### 服务器中继 - **转发到服务器** - 将 Meshtastic 的消息转发到连接的 TAK 服务器(默认:关闭) - **从服务器转发** - 从 TAK 服务器转发 PLI 和聊天到 Meshtastic(默认:关闭) #### 文件传输 - **启用文件传输** - 允许通过 Meshtastic 发送文件,需要 Short_Turbo 预设,最大 56KB(默认:关闭) #### 音频 & 语音 - **文本到语音** - 大声朗读传入的 Meshtastic 文本消息(默认:关闭) - **PTT 键码** - 语音备忘录录音的硬件按钮代码(默认:79) #### GPS 设置 - **使用 Meshtastic GPS** - 使用 Meshtastic 设备 GPS 作为 ATAK 的外部 GPS 源(默认:关闭) #### 加密 - **启用额外加密** - 使用 AES-256-GCM 和 PSK 加密所有出站消息(默认:关闭) - **加密 PSK** - 加密的前共享密钥,所有用户必须具有相同的密钥 ## 将 Meshtastic 作为外部 GPS 使用 要将您的 Meshtastic 设备作为 ATAK 的 GPS 源使用: ### 要求 - 带有 GPS 接收器的 Meshtastic 设备(例如,LILYGO T-Beam) - 在 Meshtastic 设备上启用并配置 GPS - 在 Meshtastic 设置中配置位置数据包 ### ATAK 配置 1. 导航到 **设置 → 调令和设备首选项 → 设备首选项 → GPS 首选项** 2. 将 **GPS 选项** 设置为 "忽略内部 GPS / 仅使用外部或网络 GPS" 3. 在插件设置中启用 **使用 Meshtastic GPS** 4. 禁用 **显示 Meshtastic 设备** 以避免重复标记 ## 语音备忘录功能 语音备忘录工具允许免提消息传输: 1. 通过 **Meshtastic 插件工具菜单 → 语音备忘录** 访问 2. 按住配置的 PTT 按钮进行录音 3. 释放以将语音转换为文本并传输 4. 启用 TTS 的接收者将听到消息 **注意:** 目前仅支持英语,由 Vosk 语音识别库提供支持。 ## 技术细节 ### 架构组件 #### 核心服务 - **MeshServiceManager** - 处理与 Meshtastic Android 应用的连接和通信 - **CotEventProcessor** - 处理和转换 CoT 和 Meshtastic 格式 - **FountainChunkManager** - 管理喷泉码编码以进行大量数据传输 - **NotificationHelper** - 处理用户通知以进行文件传输 #### 数据流 1. ATAK 的 CoT 事件被插件拦截 2. 事件被处理并转换为 Meshtastic protobuf 格式 3. 大消息(>231 字节)使用喷泉码(LT 码)编码 4. 数据包通过 IMeshService 发送到连接的 Meshtastic 设备 5. 接收到的 Meshtastic 数据包被转换回 CoT 格式 6. CoT 事件被注入到 ATAK 的事件调度器中 ### 支持的消息类型 - 位置位置信息(PLI) - GeoChat 消息(所有聊天室和直接消息) - Meshtastic 节点的传感器数据 - 通用 CoT 事件(使用 EXI 压缩) ### 性能优化 - 喷泉码编码,用于在有损网络上可靠地传输大量有效载荷 - EXI 压缩,用于通用 CoT 事件 - 优化的 protobuf,用于 PLI 和聊天消息 - 可配置的跳数限制,用于网络范围控制 ## 从源代码构建 ### 要求 - Android Studio Arctic Fox 或更高版本 - Android SDK 33 - Android NDK - ATAK SDK(CIV 或 MIL) ### 构建步骤 ``` # 克隆仓库 git clone --recurse-submodules https://github.com/meshtastic/ATAK-Plugin.git cd ATAK-Plugin # 配置 local.properties 文件中的 SDK 路径和签名密钥 cp local.properties.example local.properties # 使用您的配置编辑 local.properties 文件 # 构建插件 ./gradlew assembleCivDebug # 输出 APK 将位于 app/build/outputs/apk/ ``` ## 视频教程 要全面了解功能和设置,请观看我们的 [视频教程](https://www.youtube.com/watch?v=7cn4ofiSd0A). ## 故障排除 ### 常见问题 **插件无法连接到 Meshtastic:** - 确保已安装并运行 Meshtastic 应用 - 检查 Meshtastic 设备是否已配对并连接 - 验证插件具有必要的权限 **消息无法接收:** - 确认设备之间的通道设置匹配 - 检查跳数限制是否足够用于您的网络 - 验证节点是否在无线电范围内 **GPS 无法工作:** - 确保Meshtastic 设备已获得 GPS 定位 - 验证位置数据包已在 Meshtastic 中启用 - 检查 ATAK GPS 设置是否已配置为外部 GPS ## 贡献 欢迎贡献!请: 1. 分叉存储库 2. 创建功能分支 3. 进行更改 4. 提交拉取请求 有关详细指南,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md). ## 支持 - **问题:** [GitHub 问题](https://github.com/meshtastic/ATAK-Plugin/issues) - **讨论:** [Meshtastic Discord](https://discord.gg/meshtastic) - **文档:** [Meshtastic 文档](https://meshtastic.org) ## 许可证 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 致谢 - TAK.gov 的 ATAK 开发团队 - Meshtastic 社区和贡献者 - Vosk 语音识别库 - EXIficient 压缩库 ## 版本历史 有关版本历史和发布说明,请参阅 [CHANGELOG.md](CHANGELOG.md).
标签:Android开发, Android插件, ETW劫持, GPS支持, JS文件枚举, Meshtastic, 位置信息共享, 单例模式, 团队意识工具, 客户端加密, 性能优化, 战术信息传递, 战术信息共享, 战术信息工具, 战术信息解决方案, 战术协作, 战术应用工具, 战术应用插件, 战术应用解决方案, 战术数据共享, 战术网络, 战术网络工具, 战术网络插件, 战术网络解决方案, 战术通信, 战术通信工具, 战术通信插件, 战术通信解决方案, 文件传输, 日志记录, 服务器中继, 检测绕过, 模块化架构, 移动应用, 线程安全, 网络编码, 网络设备, 聊天集成, 语音备忘录, 错误处理