隐私 / 可核对
诊断报告里装了什么、不装什么,以及我们怎么证明
「无遥测」这句话很好说。而你主动发出的那份支持报告, 是数据唯一一次离开你机器的时刻——所以这里必须是可以被核对的,而不是让你相信。
它引用的是冻结快照
报告由你按下按钮那一刻拍下的一份快照组装而成。它刻意不回读活状态—— 因为你看到问题的那一刻和你上报的那一刻之间,活状态可能已经变了。 报告里的每一个值都是普通值,整个构造器是一个纯函数。
它包含什么
- 显示型号、连接方式、分辨率。绝不含序列号——就是面板标题上已经显示给你的那些字段。
- DDC 状态的一句话,用词与界面完全一致。
- macOS 暴露了几个 DDC 控制端点,以及面板应答过的 VCP 功能标签。
- 滚动引擎的状态,做成现成的「标签 / 值」两列。
- 一条最新在前的短时间线——只保留最前面几条。
离开之前会被去掉什么
- 显示序列号与 EDID 字符串序列号。它们标识一台物理设备, 而它们绝不该活在一个你可能贴到公开 issue 里的文件中。
- 任何凭据——实际就是许可证密钥。
- 你的家目录路径,否则它经过的每条路径都会泄露你的账户名。
为什么「纯函数」这件事重要
因为这样一来脱敏变得可证明。报告构造器只接收普通值、返回文本; 它不需要显示器、不需要窗口、也不需要网络。这就是自检能在一台没接显示器的机器上 断言脱敏契约的原因——否则要测它,你就得接上那台你正想保密序列号的硬件。
诚实的边界
- 一份脱敏后的报告仍可能含有我们没想到的识别信息。如果你发现了,那是一个值得上报的 bug。
- 「无遥测」描述的是这个 App,不是你使用第三方服务的记录。你把报告贴到论坛,那个论坛就看得见它。
- 脱敏覆盖的是构造器已知的字段。它是对已知字段的契约,不是对每一个可能字符串的保证。