Mineradio 完整升级指南:安全更新最新版并保护本地登录态
【免费下载链接】Mineradio-paused一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。项目地址: https://gitcode.com/gh_mirrors/mi/Mineradio-paused
Mineradio 是一款以电影镜头、粒子视觉和歌词舞台为核心的 Windows 沉浸式音乐播放器。它的 Mineradio 安全策略做出三条承诺:只维护最新公开版本(当前为2.2.0);升级必须卸载旧版后纯净安装;登录态仅存本地用户数据目录,不收集、不上传。
一、如何判断你的 Mineradio 版本仍在维护期内 🔍
结论:只有最新公开版本受安全维护,当前是2.2.0,更早版本不会获得修复。
仓库当前版本记录在 package.json 中,为2.2.0。SECURITY.md 的“Supported Versions”一节原文只有一句:当前只维护最新公开版本。
对照方法如下:
- 查看软件安装来源的版本号,比如安装包文件名形如
Mineradio-2.2.0-Setup.exe(命名规则见 package.json 的artifactName); - 与 CHANGELOG.md 的最新条目对比,确认你手上的版本就是最新公开版本。
停留在旧版本意味着两件事:
- 不会再收到针对该版本的安全修复;
- 若旧版本是
v1.0.10及更早,其安装与卸载链路还存在已知的安全缺陷(见下节)。
风险分级表述:v1.0.10及更早的旧安装包属于“不再建议继续安装或传播”;已安装旧版用户属于“必须停止使用并升级”的范畴。
二、为什么升级必须“先卸载,再纯净安装” ⬆️
结论:旧安装包的安装/卸载行为本身有风险,修复只能由完整安装包携带,软件内更新通道对此不生效。
旧安装包被弃用的背景
CHANGELOG.md 的v1.1.1条目记录了 P0 级安装器安全修复:
- 默认安装到首个可用的非 C 盘(
D:\Mineradio到Z:\Mineradio),仅当没有 D-Z 盘时才回退C:\Mineradio; - 强制目标路径进入专属
Mineradio目录,阻止占用非 Mineradio 拥有的非空目录; - 新卸载器不再递归删除整个安装根目录,只删已知的 Mineradio/Electron 顶层文件;
- 不带新安全标记的旧卸载器在安装时被跳过,避免间接触发旧的不安全卸载例程。
这些修复必须随完整安装包交付。CHANGELOG.md明确写道:快速补丁 JSON 文件不得作为该问题的唯一交付路径。
软件内更新通道为什么走不通
docs/RELEASE_NOTES_v1.1.0.md 说明:v1.1.0不作为v1.0.10的软件内本地更新包发布,该次 Release 不上传latest.yml,因此旧客户端在软件内收不到这次升级。docs/UPDATE_DELIVERY.md 也指出:每次正式发布需同时提供完整安装包和latest.yml,且旧客户端的检测行为无法远程改变——所以旧版只能靠手动下载。
五步完成纯净安装
- 停止使用旧安装包——旧安装包的写入与卸载行为有已知风险,运行和转发都可能造成扩散;
- 卸载旧版 Mineradio——防止新安装流程间接触发旧的不安全卸载例程;
- 隔离旧
.exe和旧打包目录——单独存放而不删除,便于追溯且不再传播; - 下载并安装最新完整安装包——当前为
Mineradio-2.2.0-Setup.exe,来源见 docs/RELEASE_NOTES_v2.2.0.md; - 按需校验哈希——安装后与发布方公布的 SHA-256 值对照(见下)。
如需从源码自行构建安装包,可运行npm run build:win(package.json);灰度内测版走npm run build:win:internal-beta,配置在 electron-builder.internal-beta.json。
安装包校验与签名状态
v2.2.0的 SHA-256 值已在 docs/RELEASE_NOTES_v2.2.0.md 中公布,下载后可自行计算对照;- docs/RELEASE_NOTES_v1.1.0.md 注明:当前安装包暂未进行代码签名,Windows 可能显示安全提示,属正常现象。
三、你的登录态究竟存在哪里 🔐
结论:登录状态保存在本地用户数据目录,仅用于本机播放请求;仓库代码路径中看不到上传凭证的服务端逻辑。
SECURITY.md 的“Sensitive Data”一节是这一承诺的原文出处:
Mineradio 不应收集或上传用户 Cookie。用户登录状态应保存在本地用户数据目录中。
代码层面的落地分三点。
固定的用户数据目录。主进程启动时计算稳定的STABLE_USER_DATA_PATH(默认在appData/Mineradio),并用app.setPath('userData', ...)固定下来,见 desktop/main.js。本地曲库、内置歌单库、壁纸引擎库等模块都以该路径初始化(desktop/main.js),用户私有数据集中在这一处。
缓存与登录态分离。缓存目录(cache、sessionData)是可配置的,代码注释写明:sessionData承载 Chromium 的 cookies/storage/cache,而userData保持在稳定路径上,因此“更换缓存目录不会把账号登出”,见 desktop/main.js。清理缓存不会丢登录态,登录态也不会跟着缓存被迁走。
凭证只读本地、只用于请求头。各平台的登录凭证以文件形式存放在用户数据目录,如.cookie、.qq-cookie、.kugou-cookie、.qishui-cookie,映射逻辑见 desktop/main.js。主进程通过readQQLoginCookieHeader、readNeteaseLoginCookieHeader、readKugouLoginCookieHeader等函数读取本机会话并组装平台接口的请求头(desktop/main.js),未看到把凭证发往自研服务端的代码路径。此外软件提供凭证导出功能mineradio-export-login-cookie,会生成“平台名_登录cookie.txt”文件(desktop/main.js)——正是最需要妥善保管、绝不外传的文件。
四、提交问题反馈前的自查清单 📋
结论:通过 GitHub Issues 或仓库作者主页联系作者;公开内容中严禁出现 Cookie、Token 与账号信息。
SECURITY.md 对漏洞报告的要求原文如下:
如果你发现安全问题,请通过 GitHub Issues 或仓库作者主页联系作者。请不要在公开 Issue 中直接贴出 Cookie、Token、账号信息、私密链接或可复现的敏感数据。
提交前按这个流程自查:
- 列出附件——确认不包含
.cookie、.qq-cookie等凭证文件、本地音乐文件、账号截图(清单见 SECURITY.md); - 搜索脱敏关键词——在日志中检索
cookie、token、.kugou-cookie、.qishui-cookie、Authorization,命中的行替换为占位文本; - 检查隐私路径——日志里若含用户名或
AppData下的完整路径,先打码再提交; - 描述现象替代贴凭证——用“某平台登录后无法播放”这类现象描述代替直接粘贴敏感数据。
五、安全场景快速决策表 ✅
| 场景 | 建议动作 | 仓库依据 |
|---|---|---|
安装版本早于v1.1.0 | 卸载旧版,手动下载最新完整安装包纯净安装 | SECURITY.md、docs/RELEASE_NOTES_v1.1.0.md |
手头有旧.exe安装包 | 隔离保留,不运行、不转发 | SECURITY.md |
| 软件内未出现更新提示 | 从发布渠道手动获取完整安装包 | docs/UPDATE_DELIVERY.md |
| 想确认安装包完整性 | 对照发布方公布的 SHA-256 值自行计算 | docs/RELEASE_NOTES_v2.2.0.md |
| 发现疑似安全漏洞 | 通过 Issue 或作者主页私联,凭证类信息先脱敏 | SECURITY.md |
| 准备附日志提交反馈 | 先检索并脱敏 cookie、token、隐私路径 | SECURITY.md |
六、立即可以做的三件事
- 核对当前安装版本是否已是
2.2.0; - 隔离旧安装包,按纯净安装流程升级;
- 反馈前脱敏 cookie、token 与隐私路径。
文中版本号、脚本与机制描述均以仓库实际内容为准;如仓库后续更新,请以最新版文档为准。
【免费下载链接】Mineradio-paused一款以电影镜头、粒子视觉和歌词舞台为核心的沉浸式音乐播放器。项目地址: https://gitcode.com/gh_mirrors/mi/Mineradio-paused
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考