excanear/epa
GitHub: excanear/epa
EPA 是一个基于 Buildroot 的便携式 CLI 嵌入式 Linux 环境,专用于在目标机器上快速采集硬件、固件和系统清单并生成结构化报告。
Stars: 0 | Forks: 0
# 开发中
# 扫描 Portable Appliance (EPA)
**一个便携的、仅限 CLI 的嵌入式 Linux 设备环境,用于硬件、固件和系统的审计、信息收集以及事件响应。**
[](LICENSE)
[](docs/roadmap.md)
[](docs/build.md)
[](core/)
EPA 直接启动进入其自己的 shell —— 没有登录提示,没有桌面,没有 systemd,也没有其他的 userspace。它的存在是为了在你被授权检查的机器上快速回答一个问题:
*这个系统究竟是什么?*
```
epa# hardware cpu
epa# firmware info
epa# report json
Report written to /var/reports/epa-report-2026-07-28T19-42-00.json
```
## 为什么
事件响应人员和审计员通常需要一个值得信赖的、最小的、一次性的环境,以便在目标机器上启动并收集完整的硬件/固件/系统清单,而无需引入整个桌面 OS。EPA 就是这个环境:一个专门构建的设备环境,而不是一个在通用 Linux 发行版上拼接工具的产物。
## 设计
- **仅限 CLI。** 永远没有 GUI。一切都在 `epa#` 提示符下进行。
- **EPA *就是* OS。** EPA 自己的 C 代码在一个基于 Buildroot 的最小根文件系统上作为 PID 1 运行。没有 init 系统,没有登录管理器,除了 EPA 自己的之外没有其他 shell —— 该设备直接启动进入其中。
- **一次实现,两种输出。** 每个模块(`hardware cpu`、`firmware info`、...)只需编写一次,并呈现为人类可读的 shell 输出,或作为结构化 JSON 报告的一部分 —— 绝不重复。请参阅 [docs/architecture.md](docs/architecture.md)。
- **原生优于 vendored。** 只要实际可行,数据将直接从 `/proc` 和 `/sys` 读取。唯一 vendored 的外部工具是 `smartmontools`,用于读取磁盘 SMART 数据。
- **QEMU 优先,真实硬件其次。** 针对 QEMU x86_64 进行开发和测试;ARM64/RISC-V 以及物理硬件的启用已在路线图中。
## 状态
EPA 正处于早期的积极开发中。**v0.1** 是当前的目标:
| 领域 | 状态 |
|---|---|
| 启动至 `epa#` shell(Buildroot + 自定义 PID 1 init) | 🚧 进行中 |
| `hardware cpu / memory / pci / usb / disk` | 已规划 |
| `firmware info` (BIOS/UEFI, SMBIOS, ACPI, Secure Boot, TPM) | 已规划 |
| `system info` | 已规划 |
| `report json` | 已规划 |
| `/etc/epa.conf` | 已规划 |
| 网络、存储、文件系统、日志、安全、插件 | 在 v0.5 / v1.0 之前不在范围内 |
有关完整的 v0.1 → v0.5 → v1.0 计划,请参阅 [docs/roadmap.md](docs/roadmap.md);要了解为什么某些文件夹目前是占位符,请参阅 [docs/architecture.md](docs/architecture.md)。
## 快速开始
需要 Linux 构建环境(原生 Linux 或 Windows 上的 WSL2)。Buildroot 无法在包含空格的路径中构建 —— 有关完整的前置条件列表和故障排除,请参阅 [docs/build.md](docs/build.md)。
```
make setup # one-time: init the Buildroot submodule, check host tools
make run # build (if needed) and boot in QEMU, drops into epa#
```
## 仓库结构
```
boot/ QEMU boot scripts, kernel cmdline
kernel/ Linux kernel config fragment
core/ epa-init (PID 1), module framework, JSON writer, config parser
cli/ the epa# shell: line editing, dispatch, builtins
modules/ hardware / firmware / system / report module implementations
br2-external/ Buildroot external tree (package, defconfig, board files)
config/ /etc/epa.conf template + schema
tests/ unit tests + QEMU boot smoke test
docs/ architecture, build guide, module authoring, roadmap
scripts/ setup / build / run wrappers
```
`network/`、`storage/`、`filesystem/`、`security/`、`browsers/`、`drivers/`、`plugins/` 作为未来里程碑的占位符存在 —— 每个目录下都有一个 `README.md` 标明其目标版本。
## 法律声明 / 仅限授权使用
EPA 专为您拥有或明确授权检查的系统进行审计和事件响应而构建。它不尝试绕过加密、身份验证或其他保护机制,而且根据设计,它永远不会这样做。请负责任地使用,并仅在您有权限的地方使用。
## 贡献
该项目尚处于起步阶段,架构仍在不断完善 —— 添加新模块前请参阅 [docs/architecture.md](docs/architecture.md) 了解模块协议,并在其发布后(v0.1 里程碑 M7)参阅 [docs/module-authoring.md](docs/module-authoring.md)。
## License
[MIT](LICENSE)。标签:固件审计, 客户端加密, 嵌入式Linux, 库, 应急响应, 无线安全, 硬件审计, 系统信息收集, 身份验证强制