Skip to content

Latest commit

 

History

History
36 lines (24 loc) · 3.1 KB

AX5_RESTORE_TOOL.md

File metadata and controls

36 lines (24 loc) · 3.1 KB

AX5 恢复工具(待完整验收)

这是面向维护者的命令行原型。页面的恢复执行按钮仍禁用;K2P 不支持此执行器。不要把本工具用于跨机型或整机固件恢复。

电脑先完整检查所选目录或 ZIP 的清单、长度、SHA256、gzip CRC、归档路径、链接和 ARM ELF。执行时还要求清单 SHA 确认,并保存原设备的私有 SSH 快照。此快照可能含 WebDAV 凭据,不能分享。电脑需要 Python 3 和已经能正常登录的 SSH;不把密码写进命令或项目。

只读预检示例,使用自己的路由器地址和已下载完整备份:

python3 tools/restore_ax5.py AX5-backup --host router.example

预检返回 manifest_sha256、停止内核后的内存预算及是否更换内核,不修改设备。确认目标及覆盖范围后执行:

python3 tools/restore_ax5.py AX5-backup --host router.example \
  --apply --confirm-manifest <预检返回的完整SHA256> \
  --receipt-dir ./private-restore-receipt

目录默认对应当前 WebDAV 的滚动备份。若恢复独立目录,额外传入 --remote-prefix baselines/备份名 或 imports/备份名。目录与电脑已检查文件必须完全相同。新 receipt 目录不能已存在;SSH 密钥或既有控制会话由本机管理,可传 --control-path、--host-alias。

执行顺序:

  1. 确认本机内核记录一致、WebDAV 已开启并验证且能连接、没有其他后台任务,核算 RAM 和最终闪存空间。
  2. 电脑保存并校验私有原始快照;把独立执行器和本次计划放在应用目录以外。
  3. 路由器保存操作前应用及资源,向独立 recoveries/<事务号>/ 保存三组件并回读校验。失败则不覆盖、不暂停代理。
  4. 暂停代理并释放可重建的运行文件;分组件获取,验证字节数、SHA、CRC、路径及配置元数据,才写入目标文件。
  5. 保留当前 SSH/WebDAV 连接身份;恢复当时应用、ShellCrash、内核记录、资源、订阅、DNS、分流、选择与启动状态。重建运行内核并核对带鉴权的版本响应。
  6. 覆盖后失败自动恢复操作前应用、资源、内核及服务;保留结果和错误日志,不删除回退点。

小闪存不需要同时存放两套完整应用和内核。应用在 RAM 暂存,旧应用先有独立回退点,按组件写入;相同且校验通过的内核包直接复用。不同内核时仍需要旧包回退空间,最终安装文件也必须放得下。WebDAV 分段传输不能代替内存预算,超预算会拒绝。

任务结果在 /tmp/sc-restore-<事务号>/result.json,日志在同目录 worker.log;电脑 receipt 保存计划、日志及结果。轮询中断或超时不等于设备任务结束,先查询原事务,不要重复提交或删除目录。执行器设计为独立运行,但本轮没有专门验证电脑中途断线。断电自动续作、长任务锁租约、真实跨版本大内核恢复及 K2P 仍待实现或验收。恢复过程中请保持供电及局域网可达。

实机结果只证明文档列明范围,不能替代所有页面按钮和失败场景测试。