Skip to content

v1.5.6

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Nov 16:03

English

v1.5.6 — Fix large-metadata history imports and CSV list completeness

  • Fix a v1.5.5 failure where metadata larger than 8 MiB could leave an existing-backup import pending and prevent subsequent backups from starting. Copying, history preservation, and TAR export now stream SHA-256 independently of plist parsing limits.
  • Add IOSBK_PLIST_MAX_MIB, defaulting to 64 and accepting integers from 1–256. It limits each plist input and converted output during checks and browsing. An over-budget backup can still be preserved and exported as a pending history point, without becoming an incremental baseline.
  • Show the failing plist and effective parsing limit. Identify the existing-backup import stage and distinguish permission or read-only storage failures from insufficient space. Preserve pending policy settings so storage preparation can be retried.
  • Fix long records being omitted from online CSV file lists. Support individual records up to 1 MiB and report oversized records explicitly. Abort an already-started download so clients can detect an incomplete transfer.
  • Update English and Simplified Chinese messages and configuration, history, and browsing documentation. Existing configuration and backup formats remain compatible.

Upgrade notes

  • If storage preparation failed on v1.5.5, upgrade to v1.5.6, then select Device settings → Backup retention → Retry storage preparation. Keep the original backup and saved policy settings.
  • No new setting is normally required. To parse plists larger than 64 MiB, set IOSBK_PLIST_MAX_MIB: "128" under your Compose service's environment and recreate the container. This setting limits plist parsing, not the total backup or TAR export size. A higher limit can increase parsing memory use.
  • Pending points remain available for preservation and export but cannot serve as normal incremental baselines. Passed checks and matching export hashes do not establish successful whole-device recovery.

Validation / 验证

  • ARM64 test-machine Go suite: 971 top-level cases passed, with conditional skips; all 173 frontend tests passed. The complete race suite passed on macOS; the test machine's 39-bit VMA kernel cannot start ThreadSanitizer.
  • Verified 9 MiB and 65 MiB plist imports, the 128 MiB setting, recovery of a persisted v1.5.5 failure, repeated retry without duplicate history points, and preservation across restart.
  • A real encrypted history-point export matched all 10,004 source-file SHA-256 hashes. A real unencrypted CSV contained 145,905 data records, matching an independent SQLite count. These checks did not perform a new device backup or whole-device restore.

中文

v1.5.6 — 修复大文件历史导入与 CSV 清单完整性

  • 修复 v1.5.5 导入已有备份时,超过 8 MiB 的元数据可能导致存储准备失败、后续备份无法启动的问题。复制、历史保存和 TAR 导出改用流式 SHA-256,不再受 plist 解析大小限制。
  • 新增 IOSBK_PLIST_MAX_MIB,默认 64,接受 1–256 的整数,限制检查和浏览时单个 plist 的输入及转换输出。超过上限的备份仍可保存为可导出的待确认历史点,不参与增量基线选择。
  • 改善失败提示:显示发生问题的 plist 文件名和本次使用的上限;历史导入失败时标明“导入已有备份”阶段,并区分权限不足、只读挂载和空间不足。保留已有未完成策略,支持重试存储准备。
  • 修复在线 CSV 清单中的长记录可能被遗漏的问题。单条记录支持到 1 MiB,超过上限时明确报错;下载已开始时中断传输,让客户端识别下载不完整。
  • 同步中英文界面提示和配置、历史备份、浏览文档,沿用现有配置和备份格式。

升级须知

  • 已在 v1.5.5 遇到存储准备失败的设备,升级到 v1.5.6 后,在“设备设置 → 备份保留策略”点击“重试存储准备”。不需要删除原备份或重新开启策略。
  • 通常无需新增配置。若需要解析超过 64 MiB 的 plist,可在 Compose 的 environment 中设置 IOSBK_PLIST_MAX_MIB: "128" 并重建容器。该值仅控制 plist 解析,不是整份备份或 TAR 导出的大小限制;调高上限可能增加解析内存占用。
  • 待确认历史点可保留和导出,但不能作为正常增量基线。检查通过及导出哈希一致不代表已验证整机恢复成功。

Related / 关联: #29, #30.

Full changelog / 完整变更: v1.5.5...v1.5.6