# 可选游戏通信插件 设置 → 游戏插件中可选择 `EliteDangerous64.exe`,安装、检查状态、停用并卸载插件。该功能独立于 Journal 读取、材料仓库和模拟改船。安装不会退出当前游戏,也不会立即开始交易;插件在下一次游戏启动时由系统加载。 ## 当前能力 当前包为 `0.5.0-dev`,插件内部使用 C# NativeAOT:`supportsNavigation=true`、`supportsTrade=false`,重进能力取决于实际菜单接口是否就绪。支持姿态、热量、目标、游戏航路、星系目录和带租约的自动飞行。历史实机验收见 NAVIGATION.md;迁移范围及本次验证见 [C# 插件迁移](CSHARP-PLUGIN-MIGRATION.md)。历史实机结果不代表迁移后的实机回归,安装完成不能代替实际能力握手。 普通安装与状态查询不会安装导航挂钩。仅单独的 `navigation.observe.start` 请求会尝试固定构建的游戏观测,不发送驾驶或跃迁指令。服务在系统 DirectInput 初始化成功后通过 C# 后台线程启动。模块保留到进程结束,卸载流程先停用,再于退出后清理占用文件;不调用 `FreeLibrary` 卸载 NativeAOT DLL。 当前包匹配的游戏 EXE SHA-256 为 `6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93`。其他构建会停止安装,不能混用研究偏移。 ## 与汉化组件共存 管理界面与游戏组件分离。插件使用 `dinput8.dll` 加载,转发 Windows System32 的原始 DirectInput;独立于汉化管理,不改写游戏 EXE,也不接管已有汉化文件。目标已有其他来源的 `dinput8.dll` 时保留原文件并停止安装。 安装布局: ```text <游戏目录>/dinput8.dll <游戏目录>/.xfeedtoolbox-plugin/installation.json <游戏目录>/.xfeedtoolbox-plugin/disabled # 仅停用或待卸载时 <游戏目录>/.xfeedtoolbox-plugin/diagnostics/startup-.jsonl ``` 管理器记录自身文件哈希、版本、游戏映像哈希与安装时间。安装采用暂存后移动;卸载只处理本工具创建且哈希仍相符的文件。被用户或其他程序替换的文件会保留。目录链接、构建不匹配、包损坏或加载文件冲突均会停止操作。 ## 卸载 卸载先停止工具箱的执行任务,向所选游戏进程发送停用命令,再写入停用标记、移除自身加载文件。若 Windows 因游戏占用而拒绝删除,显示“已停用,等待退出后清理”,下次点击“卸载 / 完成清理”完成删除。不会为卸载强制结束游戏,也不在任意游戏线程上强行卸载 DLL。现有汉化组件保持原样。 ## 验证范围 安装/回滚/冲突/锁定文件/保留外部文件由临时目录测试覆盖。历史转发和通信检查使用 `artifacts/plugin-probe` 自建程序;用户随后授权了实际 D 盘游戏中的加载和退出测试。2026-10-21 两次启动发生崩溃,详见 [转储排查](CRASH-20261021.md)。重新运行原加载器和原故障 DLL 时暂未复现,不能宣布已确定全部根因。 早期启动对照、状态查询与显式观测保存在 `artifacts/crash-analysis-20261021/`。当前原生 ABI、对象生命周期、输入租约、充满联锁和速度保护测试在自有内存中运行;实际飞行另由真实页面命令、原生遥测和独立 Journal 验收,证据位于 `artifacts/navigation-0410-qa/`。自有内存通过与实际游戏通过分别记录。 源码位于 `native/ManagedPlugin`、`XFEEDToolBox.Core/Plugins` 和 `XFEEDToolBox/ViewModels/PluginViewModel.cs`;旧 C++ 驱动实现已删除,原ABI以 `native/ManagedPlugin/abi-exports.json` 校验。客户端通过项目引用自动编译 `Bundle` 及其底层模块,将 DLL 与匹配清单内嵌,运行时校验并释放到按内容哈希隔离的缓存目录;普通构建与发布不再依赖预先生成的 `PluginPackage`。独立加载方式不能证明符合 Frontier 的规则或不存在账号风险;分析依据见 `ANTI-CHEAT-REVIEW.md`。