Skip to content

命令总览

SoFixer-skills-CLI 采用子命令 + 全局选项风格(类似 git / gh):

SoFixer-skills-CLI [全局选项] <子命令> [子命令选项] [参数]

子命令

子命令作用必填选项详见
fix修复从内存 dump 的 SO-sfix
info查看 ELF / SO 结构信息-sinfo
verify校验 SO 结构有效性-sverify
version工具与构建信息
help列出命令与选项 schema

全局选项

选项说明
--format json|text输出格式,默认 json(机器友好)
--pretty美化输出(当前与默认一致,预留)
--help / -h等价于 help 子命令
--version等价于 version 子命令

输出契约(面向 AI)

所有输出都是单行 JSON,统一信封:

json
{
  "ok": true,
  "tool": "SoFixer-skills-CLI",
  "arch": 64,
  "command": "fix",
  "result": { ... }
}

失败时:

json
{
  "ok": false,
  "tool": "SoFixer-skills-CLI",
  "arch": 64,
  "command": "fix",
  "error": {
    "code": "load_failed",
    "message": "source so file is invalid",
    "stage": "ElfReader::Load"
  }
}
  • ok:唯一权威成败标志。
  • error.code:机器可读的稳定错误码(见 输出格式与错误码)。
  • error.stage:失败发生在哪个阶段。

退出码

退出码含义
0成功
1业务失败(加载/重建/校验未通过)
2参数错误(未知命令/选项/缺必填)
3内部错误

AI 可据此区分"换输入再试"还是"修正调用方式"。

自省:help 子命令

AI agent 可先调 help 拿到全部命令的选项 schema,无需查阅文档即可正确调用:

bash
SoFixer-skills-CLI64 help

返回每个命令的 namedescriptionoptions(含 long/short/takes_value/required/help)。

位宽变体

一个二进制只处理对应位宽的 SO(核心代码用 __SO64__ 宏硬编码位宽):

  • SoFixer-skills-CLI32 → 处理 32 位 SO
  • SoFixer-skills-CLI64 → 处理 64 位 SO

info 探测时若返回 class_mismatch,换另一个变体重试。

基于 VitePress 构建