Skip to content

MoonCast 0.7

Latest

Choose a tag to compare

@meta-tabchen meta-tabchen released this 12 Oct 16:46

MoonCast 0.7

VersionCode 57 · package com.mooncast.community · tag v0.7.

中文

修复与改进

  • 修复已复现的GameStream首次身份初始化缺类问题。 使用Bouncy Castle官方BOM配套:bcpkix/bcutil 1.85,bcprov 1.85.2。旧组合把phone的pkix/util1.77与TV选择的prov1.85.2混用,APK缺类与主机NoClassDefFoundError复现相吻合。实际0.4.6 APK是工作基线,不是Git父版本0.3.1。
  • 启动错误主动回传。 在清理host前保存有界阶段/错误并主动发布,界面也可读取匹配会话的结果,避免250ms退出早于1500ms轮询而吞掉原因。不会清除或重建用户配对身份来掩盖失败。
  • 手机协议Tab优化。 两行等权、窄屏中英文断词布局;新增模拟布局回归。
  • 连接中也能取消。 修正连接中控件隐藏导致Disconnect不可达的问题;增加createOffer尚未完成时的取消测试,Mac最终21项浏览器夹具与新增取消用例通过。
  • 浏览器沉浸显示。 控件自动隐藏、触摸恢复、安全区布局;全屏API缺失或拒绝时使用页面内沉浸。Safari浏览器/系统栏仍可能显示,不承诺网页能控制它们。

已检查与仍有限制

本轮本地结果:Tab 88项与18个模拟布局用例、21个桌面浏览器夹具、803项中英资源检查;旧BC组合失败、新配套临时目录首次/既有身份、签名及重复ensure不改写PEM检查通过。最终两ABI签名及BC DEX类型引用范围已独立检查,保留三项可选JSSE类型引用例外;lint为0错误、11警告。

本地OriginalMediaServerTest连接重置失败仍保留,修复后的main CI已通过,但不抹掉独立Mac测试失败,手动设备任务跳过。 没有追加用户手机、物理iPhone Safari或完整GameStream端到端验收;本次修复解决已复现的依赖初始化问题,不承诺所有设备已恢复。历史code54 GIF、code55画质数据保持原标签,不当作0.7实测。验证明细

下载、升级与来源

  • MoonCast-0.7-arm64-v8a.apk
  • MoonCast-0.7-armeabi-v7a.apk
  • MoonCast-0.7-source.zip
  • MoonCast-0.7-notices.zip
  • SHA256SUMS

固定包名与现有证书不变;证书SHA-256为 290e4372fff33c00848758b12275936900b2eccad053dc63c18622e1a1222bb2。公开测试签名用于升级身份连续性,不能证明维护者身份。最终来源和附件哈希以核验后的发布清单为准;不要沿用旧APK哈希。

此前公开版本是browser preview.4等历史Release;数字0.6.0仅为草稿,从未公开发布。旧标签和附件保留。纯数字0.7与Latest分类不意味着实验协议、所有设备和网络均稳定。

WebRTC源码范围仍为应用源码加固定外部SDK源码/DEPS/获取构建映射,不是完整离线SDK依赖树,原生SDK未独立重建。信令使用可信局域网HTTP、媒体DTLS-SRTP;不绕过DRM,不启用麦克风或反控,不修改系统安全设置。

English

Fixes and improvements

  • Fix a reproduced GameStream fresh-identity initialization class failure. Use the official Bouncy Castle BOM-compatible set: bcpkix/bcutil 1.85, bcprov 1.85.2. The old unified combination mixed phone pkix/util1.77 with TV-selected prov1.85.2; APK missing-class inspection matched the host NoClassDefFoundError reproduction. The actual working 0.4.6 APK is the baseline, not a Git-parent 0.3.1 approximation.
  • Actively deliver startup errors. Save a bounded stage/error and publish before host teardown; the UI can retrieve a matching session result. A 250 ms host exit should not erase the reason before a 1500 ms UI poll. User pairing identities are not deleted or regenerated to conceal failure.
  • Improve phone protocol tabs. Equal-width two-line labels address narrow English/Chinese wrapping, with additional mocked-layout regression cases.
  • Keep cancellation reachable while connecting. Fix controls hiding Disconnect in the connecting state; add cancellation while createOffer is pending. The final 21 Mac browser fixtures and added cancel case passed.
  • Add browser immersion. Auto-hide controls, touch restoration and safe-area layout; absent or rejected native fullscreen APIs fall back to page-level immersion. Safari/browser/system bars may remain visible; a page cannot promise to control them.

Checked and still limited

Local results include 88 tab checks plus 18 mocked-layout cases, 21 desktop-browser fixtures and 803 localization entries. The old BC set failed; the corrected set passed temporary-directory fresh/existing identity, signature and repeated-ensure checks without rewriting existing PEM. Both final ABIs were independently checked for signature and BC DEX type references with three optional JSSE reference exceptions; lint reported 0 errors and 11 warnings.

The local OriginalMediaServerTest connection-reset failure is retained, and repaired main CI passed. This does not erase that separate Mac failure; the manual device job was skipped. No additional user-phone, physical iPhone Safari or complete GameStream end-to-end acceptance was performed. The change addresses the reproduced dependency initialization failure, not proof that every affected device now works. Code54 GIFs and code55 measurements retain their original historical labels. Validation details

Downloads, updates and source

  • MoonCast-0.7-arm64-v8a.apk
  • MoonCast-0.7-armeabi-v7a.apk
  • MoonCast-0.7-source.zip
  • MoonCast-0.7-notices.zip
  • SHA256SUMS

The package and signer are unchanged; certificate SHA-256 is 290e4372fff33c00848758b12275936900b2eccad053dc63c18622e1a1222bb2. The public test signer provides update continuity, not maintainer authentication. Use verified final provenance/manifests and SHA256SUMS; never reuse an older APK hash.

Previous public releases include browser preview.4; numeric 0.6.0 remained an unpublished draft. Old tags/assets remain intact. Numeric 0.7 and Latest classification do not establish universal protocol/device/network stability.

WebRTC source scope remains application source plus pinned external SDK source/DEPS/fetch/build mappings, not a full offline SDK checkout or independently rebuilt native SDK. Signaling is trusted-LAN HTTP and media is DTLS-SRTP. No DRM bypass, microphone/remote-input enablement or system-security modification is introduced.

Final build provenance / 最终构建来源

  • Local build / 本地构建:5ab1b3064d57ddd02416d6e3734eabc818d66b1e.
  • Public main and v0.7 target / 公开main及标签目标:70ee18591e4ae6fed1c7d42e96338d53189d1871.
  • Identical Git tree / 完全一致源码树:0489e0fa1bca7ade608db7ff84582835f0d80a88.

The local and public commit IDs differ, but their exact source trees match. The local SHA is retained as build provenance, not represented as a publicly browsable commit. The final delta after candidate b677abd is connecting-state CSS and its cancellation test; no additional physical-device acceptance is claimed.

本地与公开提交ID不同,但源码树完全一致;本地SHA保留作溯源,不称其为公开可浏览提交。相对b677abd的最后变更为连接中CSS与取消测试,没有追加真机验收。

  • MoonCast-0.7-arm64-v8a.apk: SHA-256 dfb81195e668df8de38569d51d5221d5f28da1b8e87d40fdcf1ed1cb799041fa.
  • MoonCast-0.7-armeabi-v7a.apk: SHA-256 ef21c1bae6df8be8c117f3dbd842af8b6a37463fb57224bfe0011e95ebacd99d.

BC verification is limited to type-reference closure; it does not prove complete method linkage or all optional-path guards. Three optional JSSE type references are reviewed exceptions. Source/notices hashes come from final archive verification and SHA256SUMS; the repaired main CI rerun passed host, build, lint and signature checks; the manual device job was skipped. The recorded Mac OriginalMediaServerTest reset failure remains disclosed.

BC验证限于类型引用闭包,不证明完整方法链接或所有可选路径保护;三项可选JSSE引用为审阅例外。源码/声明哈希以最终归档校验及SHA256SUMS为准,修复后的main CI通过主机、构建、lint和签名检查,手动设备任务跳过;Mac OriginalMediaServerTest连接重置失败继续保留。

Source archive and CI follow-up / 源码归档与CI后续

MoonCast-0.7-source.zip: 362,291,996 bytes, 9,962 files, SHA-256 1bb2cf7e0a8504fa4d630aa96137f039bb0513a0f10aeaa87d798cef150eecd8. It preserves the tag70ee source tree matching the original Mac5ab build. The notices companion includes provenance, the original source-history bundle and the later CI-only patch explanation.

源码包大小 362291996字节、9962文件,上述SHA-256已确定;保留tag70ee与原始Mac5ab一致的源码树。声明附件包含来源映射、原始源码历史bundle及后续仅CI补丁说明。

The first CI on 70ee18591e4ae6fed1c7d42e96338d53189d1871 failed in the host-test dependency resolver: raw Android classpath artifact types were ambiguous. This was a test-task resolution failure, not evidence of an APK runtime failure. Main commit b8be23646aa7f65ce348a611504d4c1a6b3586f5 changes only that CI/test resolution to an artifactView selecting Bouncy Castle module JARs from the actual release graph, retaining the tests. It does not replace the frozen runtime/source tag.

首次70ee CI在主机测试依赖解析处失败,原始Android classpath产物类型存在歧义;这是测试任务解析失败,不是APK运行失败证据。main提交 b8be23646aa7f65ce348a611504d4c1a6b3586f5 仅将该解析改为artifactView,从实际release依赖图选择BC模块JAR,测试保留,冻结运行/源码标签不变。

CI snapshot: run38278828071 completed successfully on b8be236: host/BC tests, ARM64/ARMv7 builds, lint, QR roundtrips, APK type closure and signing guards passed. The manual device job was skipped, not passed. Tag v0.7 stays at70ee, exactly matching the original build's source tree. The earlier Mac OriginalMediaServerTest connection-reset failure remains disclosed separately.

CI快照: 重跑38278828071在b8be236上成功完成:主机/BC测试、双ABI构建、lint、QR回环、APK类型闭包与签名检查通过。手动设备任务跳过,不当作通过。v0.7仍指向70ee,与原始构建源码树一致;此前Mac OriginalMediaServerTest连接重置失败独立保留。