跳转至

OneTHU 0.11.2 发布执行记录

用户要求在本轮 0.11.1 修订构建期间改发 0.11.2,并将新增交互、新闻语言和手机触摸问题一同修复,再更新三端与所有下载渠道。

当前阶段

应用源码、三端构建及最终验包已完成。GitHub Release v0.11.2 已公开并设为 Latest;清华云盘三端安装包、校验码和更新清单已同步。三平台实际更新器均通过双源读取和故障回退检查。官网与文档执行独立的下载及部署验收,记录见下文。

此前准备的 0.11.1 本地 APK 作为过程产物保留,公开安装包未替换。v0.11.1 已在 GitHub 与校内镜像恢复到实际已发布源码 7413291a34e3b941a46481f9abafdf0b31dc6770。两次旧版构建因用户改发版本而取消。

本轮交付内容

  • 三种模式共用新版提醒弹窗,支持前往软件更新及 1 小时、1 天、7 天后提醒。提醒期限按版本存于本机,重启后保留,新版本重新提醒。
  • 更新提示等待已有对话框、导览与实践返回条完成;支持 Escape 和 Android 返回。前往更新直接定位共享更新区域并复用已取得的结果,下载和安装由用户操作。
  • 软件更新的来源、检查状态、切源说明和安装提示随当前语言渲染;学校或原生返回的外部错误与发布说明保留来源文本。
  • 新闻读取按学校门户的中英文协议设置语言,相关读取串行,首页与新闻页统一数据入口。缓存按语言隔离,迟到的旧语言结果不覆盖当前显示;搜索和订阅详情也恢复当前语言的来源名称。
  • 简洁首页删除重复口号,保留今日待办、今日课程标题与内容,日期采用当前界面语言。
  • 手机白板确认按钮单独处理触摸手势,小幅按钮内移动可以确认;拖出、明显移动与取消保留取消语义。退场保留当前预览,减少目录重建。
  • 包含同日的学习会话恢复、跨设备壁纸媒体备份、横屏平板编辑开关、学习页面玻璃与桌面 OH 单实例修复。

验证证据

各组分别记录,避免重复合计。

范围 结果
提醒期限、重启、版本与存储失败 24 项行为检查通过
三模式中英文更新提醒浏览器 最终单轮 133 项通过,12 组手机/桌面矩阵、时长与持久化、返回与导览、动态语言及首页文案,运行时无异常
更新提示实时语言 7 项行为检查通过
更新请求超时、取消和重试 5 项行为检查通过
安装器调用边界 14 项隔离 IPC 检查通过,未启动真实安装器
新闻语言、缓存与详情元数据 8 项客户端行为、8 项真实 React hooks 浏览器检查通过
手机组件添加 49 项实际触摸输入与桌面操作检查通过
中英文词典 各 7588 键,全部译文齐全,静态检查 0 错误;Android 62 条小组件兜底通过
工程护栏 桌面 TypeScript、82 个 CSS 文件结构、OneGUI、发布身份及文档纪律通过

详见更新提醒、新闻语言、手机组件确认、学习会话与壁纸、玻璃材质、桌面窗口。

构建与产物

应用与安装包版本为 0.11.2,Android versionCode 为 11011,继续使用正式证书和标准 Logo。Windows x64 与 macOS ARM64 由同一 Actions run 构建,Android ARM64 使用本地正式环境。产物目录:/Volumes/OneTHUBuild/artifacts/release-0.11.2/final/。

三端安装包已通过版本、架构、签名、内嵌前端与源码来源检查。清华云盘保留旧版,新增各系统的 0.11.2 文件,根清单与校验码在安装包上传完成后更新。

验收边界

浏览器测试使用隔离的虚构数据、合成壁纸与拦截更新清单。触摸输入通过 Chromium CDP,Android 返回验证实际前端导航处理;实体 Activity、系统安装器、Windows 单实例 IPC 及反馈用户的校园账户尚待实机确认。以下编译和安装包检验结果与这些实机边界分别记录。

统一来源和安装包核验

构建源码与标签:8e44d56b2118c5e13345d27a7b72cbe7ca556b2f。GitHub 与校内 Git 的 main、v0.11.2 在构建时一致。Windows x64 与 macOS ARM64 共用 Actions 39795020138,run 和两项 job 均为 completed/success。Android 使用同一冻结提交本地构建。后续文档提交保留标签与应用源码。

平台与文件 字节数 SHA-256
OneTHU_0.11.2_aarch64.dmg 18858681 596d2b8793579a5329b9cb7bedb73e4f960743037dbcbc1e484f75062301ef11
OneTHU_0.11.2_x64-setup.exe 17282008 08cf910d2be016ac5182cc5d3c8c8c26ebc34f6b883cc2372746956170f82788
OneTHU_0.11.2_arm64.apk 31851381 25f97714a97c0a7f3e297a4b0b6e5a9242fa492f5fcdf380a988108b88b72d08
  • Android:app.onethu.desktop,0.11.2 / versionCode 11011,ARM64;v2/v3 签名及 ZIP alignment 检查通过。正式证书 SHA-256 为 cc14d735667bb8b5d3134e7dfdccf6a4d9353e1a2fce54503f4a29705423aa97。15 个编译 PNG 与标准 Logo 像素一致,launcher、round 和 adaptive 图标引用正确。当前 JS/CSS 与两个壁纸原生命令已内嵌,开发面板已排除。
  • macOS:应用和 Harness 均为 ARM64,版本 0.11.2;codesign --verify --deep --strict 通过。该检查证明包内临时签名完整;Apple 公证不在本次验收范围内。
  • Windows:安装器和应用版本均为 0.11.2.0,应用与 Harness 为 x64。NSIS 内应用与 Actions 原始应用仅有预期 bundle 类型标记差异。安装器包、原始应用及 Actions ZIP 逐层校验,两个新增壁纸命令和正式资源存在。

Windows 单实例的实际代码核验

旧验包脚本要求 tracing::warn! 的完整文字,优化后的发布文件没有保留该可选日志分支。检查已改为解析真实 PE 导入表、ABI 参数及分支目标。安装器内 onethu.exe 的 SHA-256 为 4b6cfa7abaef68254e5c20a81c45fd84f983f9aa179b616ae69827116264ee2a,实际存在 40 次窗口探测、每次 25 ms 等待、WM_COPYDATA / SMTO_NORMAL / 10000 ms 的 SendMessageTimeoutW 调用,以及探测耗尽与发送后的退出路径。

9 组机器码检查通过;原文件通过、10 个单字节篡改分别被拒绝,共 11 项夹具通过。最终验包重新检查实际字节,并绑定应用、安装器、源码和 run 的哈希。报告与反汇编保存在产物目录 verification/windows-native-code-review.md、windows-single-instance-disassembly.txt 和 windows-native-code-check.json。该静态审查确认程序包含相应策略,Windows GUI 双开与 IPC 实测仍待设备验收。应用包无需为日志判据重建。

公开渠道与更新器

GitHub Release v0.11.2 的 3 个安装包、SHA256SUMS.txt 与 latest.json 共 5 个公开资产,其 API 大小和 SHA-256 均与本地一致;Release 已设为 Latest。

清华云盘发布目录 的 /macOS/、/Windows/、/Android/ 分别新增本版文件。上传仅作用于既有 OneTHU 发布资料库,旧版保留。每份上传内容在发送前重新校验来源与哈希,三端文件齐全后更新根 latest.json 和 SHA256SUMS.txt。

node tools/update-sources-live-test.mjs 使用实际更新器函数读取公开数据:macOS、Windows、Android 均取得 0.11.2,GitHub 与云盘名称和 SHA-256 一致;主动模拟 GitHub 不可达后,三平台均正确回退云盘。该检查仅执行 HTTP 读取,未调用系统安装器。结果保存在 verification/updater-live.log。

官网下载快照

tools/check-release-mirrors.py 按三个系统目录分别选择最高版本,匿名完整下载了三份 0.11.2 文件,大小及 SHA-256 均与 GitHub、本地正式包一致;同时校验两份公开更新清单的版本、系统 URL 和校验码。网站 assets/downloads.json 由此检查生成。中英文官网共用这份下载证据,直接云盘下载链接保留各系统独立入口。官网页面、文档部署与线上浏览器结果由网站仓库发布记录保存。

最终证据目录另含 github-upload-check.json、asset-manifest.json、final-bindings-check.json、签名与 Logo 检查、UI 截图和各平台验证记录。原生包的可验证性与真实设备功能反馈分别追踪。