# 软件更新与按需安装 入口:**主屏幕设置 → 应用、投屏与更新**。 ## tvOS 风格界面 「应用与更新」采用全屏左右分栏:左侧为标题、当前 Tigris 版本、检查更新和自动更新开关;右侧按「桌面」「可选应用」分组显示 Tigris、MiracastReceiver、HGTV。取消整屏外框和固定底栏,默认 1080p 布局可完整显示三个应用。每个应用显示标识、安装版本/状态、下载进度及**一个主操作**: - 未安装 → **获取**(仅在用户选择后请求下载) - 已安装且有新版本 → **更新** - 已安装且是第三方应用 → **打开**;Tigris 已是最新版本时显示只读「最新版本」 - 下载中、校验中 → 显示进度或状态,不常驻无效按钮 - 等待系统确认 → **继续安装**(仅在存在确认请求时) - 等待确认但点后立即返回或长期无进展 → 可选择 **强制重试**;只取消该应用自己的旧安装任务,保留已安装应用及数据。已下载且校验匹配的 APK 会复用,否则重新下载;哈希、包名、版本、签名仍需通过原有校验。 - 电视没有安装确认页 → 不提交无法完成的安装会话;保存已校验的 APK,并在状态里保留 `adb install -r` 与确切路径 - 安装失败 → **重试**(不会自动卸载旧版本) 未获得 APK 安装授权时才显示授权入口。遥控器方向键焦点只停留在真实可操作控件,其他状态是只读标签;滚动时露出完整应用行,不只露出其按钮。开始下载导致操作隐藏时,焦点回到「检查更新」。开关向无障碍服务提供可勾选状态。下载任务和 PackageInstaller 的跨活动生命周期由原有会话状态负责。 「继续安装」会重新提交本应用创建的确切会话,并等待系统回传新的安装确认请求;不重放重启前保存的确认 Activity。Android 在重启后不保留普通安装会话解析得到的 APK 状态,官方 `Session.commit()` 明确支持重启后重新提交。通知也通过更新页恢复任务。已校验的 APK 保存在应用私有 `files/updates` 中,直到安装成功或任务被明确清除;打开确认页不等于安装完成,不会因此删除 APK。 返回更新页时按实际安装版本和确切会话编号核对结果:达到目标版本则结束任务;进程退出导致的下载/准备中断或丢失会话显示可重试状态;仍存在的任务允许继续提交。不会因其他应用存在同名旧会话而误认当前任务。 ### 液态玻璃材质 应用行使用低强度的透明折射材质,按钮和开关操作区的玻璃更突出。`UpdateGlass` 复用主屏幕 Dock 的 `LiquidGlass.bake`:对同一张背景进行模糊采样、圆角边缘折射和方向性高光;降低乳白遮罩,让背景细节透过材质。焦点同步轻微放大、移动光斑并照亮关联应用行,白字保持可读,不用统一白色描边代替焦点。原有主页和控制中心材质不变。 背景使用当前缓存壁纸或主题的静态模糊图,不在更新页下载壁纸或启动视频播放。折射纹理由后台线程生成,场景宽度最多 720 像素;滚动和布局变化合并刷新,过期结果不覆盖新布局。页面销毁时停止动画、丢弃纹理引用并关闭工作线程。小屏幕或大字体时列表仍可滚动。 ## 产品行为 Tigris 本体包含**零份** HGTV 或 MiracastReceiver APK。默认 Dock 和桌面不会加入尚未安装的应用占位图标,也不会抢占用户固定排序。 | 应用 | 独立上游 | 安装文件选择 | 未安装时 | 已安装后 | |---|---|---|---|---| | Tigris 桌面 | [lesnolie/Tigris](https://github.com/lesnolie/Tigris) | 匹配当前 Standard / Guard | 桌面本体 | 可检查并更新 | | 投屏 MiracastReceiver | [weekdayjast/MiracastReceiver](https://github.com/weekdayjast/MiracastReceiver) | 官方 GitHub Latest 的 `miracast-receiver-vX.Y.Z-universal.apk` | **只有点安装后**才下载与安装 | 可打开、更新、移动至 Dock | MiracastReceiver 从 v1.2.14 起把包名从 `com.weekd.miracastreceiver` 改为 `top.jast.miracastreceiver`(上游为接入 AirPlay 改名),Android 会视为新应用。Tigris 按新包名检查和安装;电视上仍有旧包名时,投屏卡片显示「卸载旧版」,确认卸载后再安装新版。上游明确说明旧应用数据不会迁移,因此不要把它当作可覆盖升级。 | HGTV 红果短剧(第三方) | [pan8664716/HGTV](https://github.com/pan8664716/HGTV) | 官方 GitHub Latest 的 `HGTV_X.Y.Z.apk` | **只有点安装后**才下载与安装 | 可打开、更新、移动至 Dock | 桌面常规应用扫描自动识别已安装的第三方 App;用户可以自己移动到 Dock / 文件夹。不在首页塞默认预装推广图标。 ## 安装和更新保障 1. 后台每六小时检查 GitHub Latest **元数据**,但**不下载可选 APK**;自动更新仅处理已安装应用。 2. 用户选择“安装 / 更新”之后,下载 GitHub 正式版 APK。严格匹配资产文件名、发布仓库和 HTTPS 下载域名。 3. 第三方 APK 必须有 SHA-256 发布元数据,下载后再次计算 SHA-256,校验大小、包名、Android 最低版本和签名。 4. 首次安装 MiracastReceiver(`top.jast.miracastreceiver`,旧包名 `com.weekd.miracastreceiver` 视为待卸载的旧版)要求已记录的官方签名 SHA-256 `ea7f4568203d294bd37acac966d6d707f79147549d24c2244f58a6fbc27a6291`;首次安装 HGTV 要求上游历史发布记录证书 `b237b1d3714a5a010b453e0a51ed32bceac40d8d4207c61bfdf8d6c97a0caeaa`,包名预期 `com.hgtv.star`。如果上游新版本不符,则**阻止安装**,等待重新审查;不能默默忽略。 5. 升级仅允许相同签名且 versionCode 增加。不卸载已有包,不清理 HGTV 收藏/历史/登录状态,也不请求 ROOT。 6. Android PackageInstaller 最终处理安装权限和电视端确认。固件若无法解析安装确认页(例如部分 Sony BRAVIA Android 9 的安装器没有 Activity),则不提交会话;SHA-256 校验通过后把 APK 保存到应用外部目录 `Download/Tigris/`,并给出 `adb install -r` 与该路径。有确认页的设备仍走原来的会话安装。 7. 投屏和 HGTV 都是独立应用,不获得 Tigris 特权;Tigris 不整合 HGTV 非官方内容接口,也不分发其 APK。 ## 来源及限制 HGTV 当前公开仓库主要是使用说明和演示图片,不能据此声称其 Android 完整源码已经过审。该项目是第三方短剧客户端,使用非官方内容接口,与内容平台无关联;协议变更可能导致播放异常。用户自行决定是否安装。HGTV 上游版本更新也可能导致签名、包名或文件名变化,因此引入“失败关闭”检查。此工程尚未经过 HGTV + 投屏在所有电视厂商上的实机验收。 上游来源: - https://github.com/pan8664716/HGTV/releases - https://github.com/weekdayjast/MiracastReceiver/releases