Repository navigation
PCL Lite 1.7.0-pre-3
Pre-release
Pre-release
PCL Lite 1.7.0-pre-3。
预览版,只有选了「预览」「快照」或更激进通道的用户会收到。稳定版通道请继续用 1.6.4-hotfix-5。
改了什么
导入的 Refresh Token 档案不再变回「设备代码」
现象:用 Refresh Token 登录成功,账号列表里却标着「正版验证 · 设备代码」。令牌本身是好的,游戏也能正常启动,只是标签错了 —— 但错的不只是标签。
根因在 McProfile.Clone():它是手写的字段清单,漏了两个字段。
续期时档案是「复制一份、就地替换」,于是:
LoginMethod没被复制 → 变成空串 → 归一化时按老档案兜底成device→ 显示「设备代码」RefreshClientId也没被复制 → 签发者被清空 → 下一次续期会拿 PCL 自己的身份去换别人的令牌,微软直接回AADSTS70000
第二个才是真问题。第一个只是让你早点发现它。
修了两处:
Clone()补齐LoginMethod与RefreshClientId,并加了注释说明「这是手写清单,加字段记得同步」ApplyAuthenticationResult里改用原档案的登录方式兜底,而不是刚克隆出来的那份 —— 就算以后再漏字段,也不会静默把登录方式抹掉
已经标错的档案需要手动清一下
这个修复只保证「以后不再标错」,已经变成「设备代码」的旧档案不会自己恢复 —— 它们和真正的设备码档案在数据上已经长得一模一样了,没法区分。
建议:把重复的那几条删掉,用同一个 Refresh Token 重新导入一次。这次进去之后就会一直是「Refresh Token」,不会再变。
校验
SHA-256(签名后):CAC8D443E702ACE5D10F12A374933AB57BFA0ADFB1EF5C996A1FE68029F70003
大小:19,375,912 字节
已知问题
- Cookie 登录仍然没有在「真实且未过期的会话」下跑通过一次。格式识别已经补齐,但手上那份导出里的
MSPAuth/MSPProf都是Disabled(登出状态留下的),验证不到最后一步 - 令牌导入的账号 24 小时后必须重新导入,这是微软定的,没有绕法