这个项目能做什么

BootIntel 是一个 Rust 命令行工具,将交互式 UART 串口终端与流式启动日志分析相结合。它捕获串口会话,保留原始字节,并在数据到达时识别引导加载程序、内核、设备及有风险的启动设置。本地识别离线运行,无需账户;可选的服务器分析增加 CVE 匹配和报告。 典型工作流程:`bootintel ports` 列出带有 USB VID/PID 元数据的串口适配器;`bootintel analyze /dev/ttyUSB0 --baud 115200 --log-file boot.log` 打开 UART,保留原始字节并内联打印发现结果;`bootintel scan boot.log --format text` 离线重新扫描已保存的捕获。输出格式包括 text、JSON、SARIF 和 JUnit,并可通过 `--gate-critical` 用于 CI 门禁。`--tui` 标志(构建特性)渲染分屏 ratatui 仪表板,包含串口流、发现结果和服务器窗格。 除捕获外,该工具还提供 `verdict`,完全离线评估 U-Boot 环境允许哪些操作(自动启动可中断性、镜像验证、网络启动路径、bootargs 重写、saveenv 持久化);`diff` 用于比较固件启动;`share` 通过 lz-string 压缩将日志嵌入 URL 而不上传;以及 `analyze --interrupt-autoboot` 用于中断自动启动并拉取环境。子命令还包括 batch、watch、cve、bench、replay、manpage、detectors、schema、export、view、demo、init、doctor 和 completions。 隐私被重点强调:本地检测从不需要账户,串口输入从不自动发送,服务器分析通过 `--api` 或 `--api --preview` 显式选择加入。该 CLI 记录了 sysexits 风格的退出码,以便 CI 区分空捕获(2)、无法识别的日志(3)、门禁失败(1)、速率限制(75)和认证失败(77)。安装选项包括 shell 一行命令、PowerShell、Homebrew、Docker、Nix、crates.io 以及可复用的 GitHub Actions 复合操作,并提供 SHA256 校验和和构建来源证明。该项目采用 Apache-2.0 许可,面向 Linux、macOS 和 Windows,Rust 1.90+ MSRV。