HeroicGamesLauncher用户协议解析:隐私政策与数据使用
引言:为何用户隐私对游戏 launcher 至关重要
你是否曾在启动游戏时,不经意间授权了软件收集你的数据?作为一款跨平台游戏启动器(Launcher),HeroicGamesLauncher 处理的不仅是游戏库管理,还涉及用户账户资料、设备数据和使用习惯。本文将从技术实现角度,全面解析其数据收集机制、用户控制选项及隐私保护措施,帮助你了解「每一次点击背后的数据旅程」。
一、数据收集框架:从代码到用户知情权
1.1 匿名分析(Plausible Analytics)
Heroic 使用开源分析工具 Plausible 收集匿名使用数据,核心实现位于 src/backend/utils/plausible.ts。代码显示,收集字段严格限定为:
- 应用版本(
appVersion) - 操作系统(
OS) - 已登录商店(
epic/gog/amazon/sideloaded布尔值) - 设备类型(
isSteamDeck/isFlatpak等环境标识)
// 数据发送核心代码
sendPlausible({
name: 'pageview',
url: 'app://main',
domain: 'heroic-games-client.com',
props: {
version: appVersion,
gog: providersObject.gog || false,
epic: providersObject.epic || false,
// 无个人身份资料(PII)字段
}
})
用户控制:首次启动时,应用会显示明确的授权弹窗(public/locales/en/translation.json):
"In order to improve the app, Heroic collects 100% anonymous data. It will never collect any personal information, including your username, IP address or email."
用户可随时在「设置 > 应用 > 启用分析」中切换开关,且该设置实时生效(无需重启)。
1.2 日志上传机制:问题诊断与数据最小化
当用户遇到崩溃或错误时,日志上传功能(src/backend/logger/uploader.ts)会触发,但设计遵循「最小必要原则」:
- 数据范围:仅上传最近 10MB 日志片段(约 24 小时内容)
- 保留期限:上传至
0x0.st后仅保留 24 小时(formData.set('expires', '24')) - 用户授权:需手动触发,且上传前显示文件预览
// 日志裁剪逻辑(防止敏感资料泄露)
async function readPartOfFile(file: string, size: number) {
const buffer = Buffer.alloc(size)
await fileHandle.read(buffer, 0, size, 0) // 仅读取文件头部
return buffer
}
数据内容:日志仅包含系统环境(GPU/CPU 型号)、操作步骤(如「启动游戏《赛博朋克 2077》」)和错误堆栈,不含密码、令牌等敏感资料。
二、数据生命周期:从产生到销毁的全流程管控
2.1 本地数据存储
Heroic 使用 Electron Store(src/backend/electron_store.ts)存储配置,路径遵循系统规范:
- Linux:
~/.config/heroic/store - Windows:
%APPDATA%\heroic\store - macOS:
~/Library/Application Support/heroic/store
存储的核心数据类型: | 数据类别 | 存储位置 | 敏感级别 | |----------------|---------------------------|----------| | 登录令牌 | 加密存储于系统密钥环 | 高 | | 游戏安装路径 | libraryStore 明文存储 | 中 | | 分析偏好设置 | settingsStore 布尔值 | 低 |
2.2 第三方数据共享
严格禁止商业数据共享,仅在以下场景与第三方交互:
- Plausible 分析:数据发送至
plausible.io,但根据其隐私政策,该服务「不使用 cookies,不跟踪个人用户」 - 日志上传:临时存储于
0x0.st(开源匿名文件分享服务) - 商店 API 调用:与 Epic/GOG/Amazon 服务器交互时,仅传递必要的认证令牌
三、用户权利与控制选项
3.1 核心隐私控制功能
| 功能 | 操作路径 | 技术实现文件 |
|---|---|---|
| 禁用分析 | 设置 > 应用 > 发送匿名分析 | src/backend/utils/plausible.ts |
| 删除已上传日志 | 设置 > 高级 > 管理上传日志 | src/backend/logger/uploader.ts |
| 清除本地缓存 | 设置 > 高级 > 清除缓存 | src/backend/cache.ts |
| 导出用户数据 | 设置 > 高级 > 导出数据 | src/backend/electron_store.ts |
3.2 数据删除流程
用户可通过「设置 > 高级 > 重置 Heroic」彻底清除数据,执行逻辑位于 src/backend/utils/uninstaller.ts,具体操作:
// 伪代码示意
async function resetHeroic() {
await Promise.all([
storeManager.clear(),
cacheManager.purge(),
logger.deleteAllLogs()
])
}
四、合规性与透明度
4.1 法规遵循声明
Heroic 的数据实践符合:
- GDPR(欧盟通用数据保护条例):提供数据访问与删除权
- CCPA(加州消费者隐私法):明确数据收集告知义务
- PECR(电子隐私法规):确保用户对分析功能的知情权
这些合规性通过 public/locales/en/translation.json 中的用户提示实现:
"Plausible Analytics is fully compliant with GDPR, CCPA and PECR."
4.2 透明度增强措施
- 日志审计:所有数据收集操作记录于本地日志(
~/.config/heroic/logs) - 代码开源:数据处理逻辑完全可见,接受社区审计
- 隐私设置引导:首次启动时的「分析授权弹窗」强制用户选择
五、风险提示与最佳实践
5.1 潜在隐私风险
- 网络传输:日志上传未加密(
0x0.st仅支持 HTTP),但内容不含身份资料 - 第三方依赖:使用
plausible.io时,其服务器可能记录 IP 地址(但官方声称会立即匿名化)
5.2 用户建议操作
- 定期审查授权:在「设置 > 账户」中检查已登录的商店账户
- 监控日志内容:通过「设置 > 高级 > 查看日志」确认无敏感资料
- 使用防火墙规则:限制 Heroic 仅在必要时联网(如游戏更新)
结语:隐私保护与功能体验的平衡艺术
HeroicGamesLauncher 通过「最小必要收集」「全程用户可控」「完全透明可审计」三大原则,在提供跨平台游戏管理便利的同时,构建了坚实的隐私保护体系。作为用户,建议:
- 首次启动时仔细阅读分析授权提示
- 定期检查「设置 > 高级」中的隐私相关选项
- 通过 GitHub Issues 参与隐私功能改进讨论
记住:你的数据,始终应该由你做主。Heroic 的开源特性,正是这种理念的最佳保障。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



