# 首轮试用与简单验收 这是工具链烟测流程;用于确认同事电脑上能够实际调用工具,遇到阻塞记录后跳过。输入为本机 profile、当前授权目标和用户提供的样本。输出为环境状态、子检查结果和证据,不把烟测等同原 Excel 完整用例验收。 ## 流程 1. 记录 `VERSION`、Windows/Python 位数、Artemis 版本;运行 `tool_runner.py --profile <文件> doctor --check-versions`。逐项检查 `availability` 和 `version_check`:doctor 整体退出 0 只表示盘点完成,可能仍有工具缺失。GUI、MCP 和登录状态另行检查。 2. 优先用本地媒体/固件/PCAP 做离线调用。没有真实固件时可用明确标为合成的正例验证 Binwalk,但不能将它关联为设备安全通过。需要补文件或驱动则按 [环境修复](environment-repair.md) 处理。 3. 已核对完整 SN/型号/IP 后,选择单设备的只读查询、抓包、限定端口或串口子项。同一台设备及共享实验台串行,抓包与被观测操作确需重叠时由同一编排者协调;不占用别人的 COM 或停止其他任务。 4. Artemis 先 workspace/diagnose,再只读 APP 观察及原生报告导出。平台先人工登录,确认当前页面和权限后继续。具体 MCP 参数见 [手机工作流](artemis-workflow.md)。 5. 根据实际观测写断言,再按 [报告契约](evidence.md) 生成综合报告。工具修复成功、用例失败、缺前置和未充分验证分别记录;任一阻塞不必阻止无依赖的其他检查。 ## 可选子项 所有 `tool_runner.py` 的全局参数放在子命令前;使用绝对脚本路径或先进入 Skill 目录。输出目录预先建立,每次采用新文件名。示例中的尖括号必须替换,不能直接执行。 | 烟测 ID / 工具 | 操作及需要的输入 | 工具调用验收 / 业务限制 | | --- | --- | --- | | ENV-01 / 全工具 | `doctor --check-versions` | 每个所需 CLI 版本或帮助成功;DLL/模块可加载。GUI/manual-interface、MCP 待独立核实,不据整体退出码通过全部环境 | | DEV-01 / 配置协议 | `device_adapter.py info --host --expected-sn <完整SN> --expected-model <型号>` | 实际响应身份匹配,记录版本。不能代表配置工具 GUI 搜索/设置或固件升级已验收 | | MEDIA-01 / ffprobe | `tool_runner.py --profile <配置> probe --input <本地原流文件>` | 实际有视频轨、编码和尺寸;名义帧率不能证明持续性能;9系统设置!96 / 9.132 只覆盖读取子项 | | MEDIA-02 / FFmpeg | 对同一已授权本地文件运行有界解码;见下节 | 返回码和诊断共同判断;文件不完整时不能因退出 0 宣布完整录像通过 | | MEDIA-03 / MediaInfo | `tool_runner.py --profile <配置> media-info --input <同一媒体文件>` | 编码、宽高、音轨与 ffprobe 核对;空字段标为未验证;Duration 是毫秒 | | NET-01 / dumpcap+TShark | `capture --interface <接口> --host --duration 10 --output <新pcapng>`,随后 `analyze-pcap --input ` | 能读回来自目标的实际包;0包表示调用可完成但流量证据不足;不等于13安全!15 / 13.14通信安全通过 | | NET-02 / Nmap | `scan --host --ports <双方约定的少量TCP端口>` | 每个请求端口的状态与覆盖度可核对。open不推断服务身份,filtered不等于closed;13.8/13.9完整验收另需范围及允许清单 | | FW-01 / Binwalk | `firmware-scan --input <用户提供固件>` | 记录文件大小、扫描前后SHA-256、退出码和签名结果。0签名是有效观测,不能证明加密或无敏感信息;13.3/13.4另需存储/加密方案/文件内容证据 | | SERIAL-01 / 串口替代 | `serial --port --baud <波特率> --duration 5 --output <新日志>` | 是否成功打开与是否收到字节分别记录。0字节时跳过13.18日志内容检查;不自动发送登录或命令。DTR/RTS仅匹配已知现场设置 | | APP-01 / Artemis | 选定Android设备,只观察移动爱家当前目标页、保存观察笔记并结束,复核trace并导出 | 目标匹配、可见内容、截图/笔记与实际结论一致。completed不等于业务passed,也不等于摄像机物理场景通过 | | GUI-01 / 平台及PC | 观察真实窗口/页面;人工登录后按授权只读查询 | 找到程序、窗口或登录页与完成查询分开记录;无法观察/输入时保留环境阻塞 | ### FFmpeg 本地解码示例 此命令直接调用 FFmpeg,**不是** `tool_runner.py` 已实现的新子命令。只用于本机媒体;RTSP 录制需单独确定 URL、凭据注入、时限和文件完整性,当前 runner 没有通用录制入口。 由 Codex 用 Python `subprocess.run` 的参数数组及 `timeout=35` 调用,保存 stdout/stderr 到本次受控证据目录。外层终端的等待/返回会话时间不等于进程终止时限。命令参数为: ```text <本机ffmpeg.exe> -hide_banner -nostdin -v warning -protocol_whitelist file -i <本地媒体> -map 0:v:0 -t 5 -f null - ``` 不把网络 URL、播放列表或用户提供的额外参数拼进此模板。超时停止本次进程并保存状态;输入含凭据时不能直接归档诊断。出现 `File ended prematurely` 等诊断时记录文件不完整,即使退出码为0也不能给文件完整性通过。I帧间隔另需 ffprobe 逐帧 `pict_type` 与时间戳;基础 `probe` 摘要不足,不能用APP录屏代替原流。 ### 与 Artemis 组合的最小场景 选择同一已确认摄像机:配置适配器只读身份/版本 → Artemis 在 APP 设备设置页观察版本 → 比较同一版本语义,保存两侧原始证据。若 APP 只显示外部版本,不与设备硬件版本或内部版本混比;无法读到字段记未验证。也可 APP 观察直播 → PC 读取用户已提供的原流元数据,但 APP 截图只证明当时 UI 画面,码流参数取自原流。 给 Artemis 的任务正文同时写入目标、只读边界、观测项、失败停止条件和预期输出;不要只放在批次 preconditions 元数据。原生报告与外部证据分别保存,用 session/trace 和 case_id 关联,不改写原生报告。 ## 已有开发机验证与本次试用的区别 2026-10-16 已验证 dumpcap/TShark 4.6.3、Binwalk 2.3.2 独立 Python3.11、Nmap 7.60、MediaInfo 21.09 DLL、FFmpeg/ffprobe 2023-12-18构建,以及配置协议只读查询和带修复的 Artemis v1.5.2 只读观察。这是兼容性记录,不是最新版本推荐或其他机器自动可用的保证。 - 真实固件签名扫描已完成但没有识别到签名,未验证设备Flash加密/AES方案/敏感信息。 - 两路RTSP复制曾达到外层时限,保留的部分媒体可离线分析但不完整;当前未宣称录制稳定。 - 串口曾确认基础双向收发;另一次被动窗口收0字节,尚未确认shell登录。不能将其中一次结果推广为所有设备或COM设置。 - Windows截图/点击与浏览器控制曾受宿主环境阻塞;移动视联还存在程序与控制进程权限不一致。平台登录后的业务、mainThread查询、配置GUI参数操作仍需现场验证。 - firmware_encrypt匹配SDK、老DM及算法OTA等专有入口仍需团队补齐。357条保留用例路由并非357条已自动执行或通过。 将本机实际结果填入 [反馈模板](../assets/feedback-template.md),不要复制历史通过标签作为新电脑的结论。