Repository navigation
macOS 阶段 11:完整包校验、自替换与恢复 - #98
Queued
DeathofBrain wants to merge 38 commits into
Queued
DeathofBrain wants to merge 38 commits into
DeathofBrain wants to merge 38 commits into
Conversation
Preserve upstream disk budgets and rotating logcat capture while routing new common native calls through the existing host facade. Keep Windows implementations, CI, and upstream test fixtures unchanged.
…cos-6-review # Conflicts: # internal/components/fetch.go
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
为原生 Apple Silicon macOS 接入独立的完整包更新事务:支持
update prepare/install --package ZIP --sha256 HEX,私有复制后验证摘要、严格清单、ARM64 Mach-O、可执行权限、受限符号链接及签名完整性;安装时持有实例启动锁并检查占用进程。允许当前 updater 替换自身路径,按单元记录交换进度,离线恢复时完成已验证的候选包或还原旧文件与本事务的版本元数据。协议为
modavd-macos-update-v1、平台macos-arm64,细节见internal/update/MACOS.md。不复用 Windows/AUTO-MAS 的交换格式。远端没有兼容资产时明确返回update_unavailable;正式发布包、分发签名、公证及打包配置对齐留到阶段 13。当前签名检查包括 ad hoc,验证完整性,不证明发布者身份;本地 SHA256 需从可信独立渠道取得。macOS 进程扫描和 flock 提供协作式排他。本阶段独立提交:17ea66d。依赖 #72、#92、#94,前置合并前相对 main 的完整 diff 包含依赖。保持 Draft,不包含发布工作流。
验证:Apple M4 / macOS 26.6.2 (25G83) / Go 1.26.5。现有全量 build/test/vet、Windows/Linux 交叉构建和相关 vet、Darwin 无 cgo 相关测试通过。仓外实际 ad hoc 签名 ARM64 fixture 覆盖离线安装、运行中的 updater 自替换、签名内容篡改、错误架构、链接图、严格 ZIP/JSON、真实进程与启动锁占用、取消、缺失远端资产。17 个交换边界分别验证完成与回退,共 34 个中断场景;版本元数据恢复与成功后重复 recover 均验证幂等。独立复核确认丢失原件时保留现场、拒绝重定向的备份父目录。
未使用正式模拟器发布包,未进行断电或真实 Android 验收。详细结果记录在 ModAVD/ModAVD#68。
不改 CI、脚本、构建配置或依赖;无新增仓内测试文件/函数、结果、日志、签名夹具或二进制。仅为原有 unsupported 测试同步原生平台适用范围,原断言保持。
本批统一验证记录:ModAVD/ModAVD#68 (comment)