目标与证据范围
跳转到“目标与证据范围”本地解包、删除备份和整机恢复处理的数据不同,启用条件和检查结果的方法也不同。使用前请先看清本页说明;这些功能还不能作为经过验证的灾难恢复方案。这三项均为 Experimental,默认关闭。常规需求先用只读查看或移除设备。
本地解包、删除及相关保护措施已实现,也有自动测试;但还没有用真实设备和备份完整测试界面中的操作流程。本文不提供未经真机验证的整机恢复执行教程,也不声称某型号或 iOS 版本可以成功恢复。实验验证只能使用可丢弃的数据副本和非关键设备,开始前完成实例备份。
功能分级与默认开关统一见功能状态。以下各节分别说明各项操作的启用条件、会影响的数据和检查方法。
先检查隔离与门禁
跳转到“先检查隔离与门禁”-
停用选定测试设备的自动备份并保存。等待已有操作结束;仅关闭开关不会取消任务。保存另一份已检查过的实例副本,测试目录不得指向唯一生产备份。
-
需要检查解包/删除入口时,在测试部署的 Compose 中将
services.iosbackup.environment.IOSBK_ENABLE_EXPERIMENTAL_OPERATIONS改为"true"。自定义 Compose 应先对照配置参考。保持认证开启,主密钥不变。终端窗口 docker compose config --quietdocker compose up -ddocker compose logs --tail=100 iosbackup只在没有活动操作时重建。该开关不启用整机恢复,也不会绕过认证、CSRF、设备状态或并发保护。
-
在 Web UI 展开选定设备,进入“备份管理”。启用全局开关后才出现“解包…”和“删除备份…”。当前页面在设备离线时会禁用整个管理区域;虽然本地 API 不要求手机连接,当前界面仍需设备在线才能操作。
-
如果只是检查入口或补截图,停在按钮之前,不必执行破坏性操作。结束后把全局开关恢复为
false,等待测试操作结束再重建容器。

本地解包:支持范围与受控验证顺序
跳转到“本地解包:支持范围与受控验证顺序”目标: 把未加密备份中的普通文件整理为按 domain/原始相对路径排列的副本。它不是可导入手机的另一种完整备份格式,也不会还原设备符号链接。
-
核对选定测试备份确已完成,并有普通、明文 SQLite
Manifest.db;加密备份、缺失清单、缺对象文件均不适合继续。空间需同时容纳原备份和解包副本,先在主机检查对应文件系统的空间和 inode。 -
核对
<该设备备份目录>/_unback_不存在。现有目录会导致拒绝覆盖;只有确认它是旧浏览副本且另有保存后,才安排在停用相关任务时移走。不要删除Manifest.db、Info.plist或哈希对象目录来让检查通过。 -
当前已实现的 UI 操作是“备份管理 → 解包…”,随后出现额外空间/耗时确认。只对隔离的测试副本执行此操作。“解包已开始,请查看日志”只表示请求已接受;按钮约数秒后重新可用不代表结束,不要反复点击。
-
到主机上查看结果;目前没有单独展示解包结果的页面。
终端窗口 docker compose logs --since=10m --tail=200 iosbackup成功日志为
unback 解包完成。输出先写.iosbackup-unback-*临时目录,正常完成后改名为_unback_,并包含.iosbackup-unback.json。核对完成标记的时间、文件数、目录数、跳过符号链接数,再抽查非敏感文件内容。原备份目录由设备设置决定,不能一律假定为data/backups/<设备标识>。
失败分支: 加密或非 SQLite 清单被拒绝时停止,当前不支持解包这类备份;源对象缺失/格式不支持时保存日志并保留原备份。正常错误返回会清理本次临时目录,但断电/强杀后可能留残余;确认所有相关进程结束后再调查,残留目录不代表解包成功。失败后不应生成本次任务的 _unback_。已有旧输出不证明新任务完成。
本地 API 可以在设备离线时处理完整未加密备份,但仍要求认证、有效 CSRF、设备未被移除及任务互斥。本页不提供绕过 UI 条件的 API 操作脚本。
删除备份:先确认对象和回退副本
跳转到“删除备份:先确认对象和回退副本”目标: 释放选定设备当前本地备份目录的空间。它不删除 iPhone 数据,也不等同于从控制台移除设备。
- 先用设备与存储指南确定真正需求:只是不再管理设备,应使用可恢复的“移除设备”。需要保留内容时先复制到独立受保护位置,并验证那份副本可读。
- 在测试副本中核对设备名、当前保存路径、目录占用以及是否含
_unback_。删除以整个设备备份目录为对象,包含其中的浏览副本;不能选择只删某次运行或某些文件。保留设备配置和配对记录不会保留被删的备份。 - 当前 UI 的“删除备份…”会要求输入完全匹配的设备名;不匹配时不会提交。没有备份副本或无法明确对象时,取消确认。需要验证此操作时,只针对可丢弃副本执行,并保留操作前目录清单。
- 成功请求会显示“备份已删除”。再核对目标目录确实不存在、最后备份时间已重置、其他设备目录未改变。页面中的空间/文件数清空只能作为辅助观察;发生失败时先检查实际目录是否部分删除,不连续重试。
停止条件: 只有一份重要备份、目标路径不明、设备正忙、返回权限/磁盘错误,均不继续删除。下次备份需要重新建立完整数据副本,先保留足够空间。本操作没有撤销按钮;需要找回数据只能依赖事先独立保存的副本。
整机恢复:当前入口与未验证边界
跳转到“整机恢复:当前入口与未验证边界”当前设备面板包含“备份恢复”,并由默认关闭的“允许恢复(高级)”控制;它独立于解包/删除的全局开关。界面还要求确认覆盖数据、设备名、关闭“查找”的检查,并提供备份密码和恢复选项。设备需要在线,界面的加密/恢复区域也受服务主密钥可用状态约束。
界面上有恢复按钮、后端实现了恢复功能,并不表示已经在真机上恢复成功。当前请求返回“恢复已开始”后在后台运行,结果应查看日志;没有专门显示恢复任务最终结果的页面,也没有文档支持的取消或断点续传。恢复 restore 完成 表示命令执行结束,还不能证明照片、应用、账号、系统设置及重新配对均已正确恢复。
因此,本页只说明恢复功能的现状,不提供在重要设备上执行恢复的步骤。补齐正式执行指南前,需要在可清空测试设备上记录:兼容 iOS/设备与备份类型、密码正确性、选项含义、开始/结束结果、重启后的数据抽查、应用行为,以及恢复失败后如何让设备重新可用。不要把界面中的预计重上线时间当作承诺,也不要假设 iOS 兼容性已验证。
需要恢复日常使用的设备时,采用你已经验证且保留独立副本的恢复方案;本项目当前可以继续提供USB 备份、只读检查和实例数据保存。
下一步:实验结束后关闭此前开启的实验开关,保留验证记录,确认无后台操作后恢复正常计划。如有失败,保留必要的错误信息,遮去隐私后按排错与求助整理。