Files
live-hub-py/docs/HUYA_ID_NOMENCLATURE.md
T

2.9 KiB
Raw Blame History

虎牙设备标识符命名规范 (ID NOMENCLATURE)

强制约定:所有文档、代码注释、变量名、日志,凡是提到设备标识,必须带前缀 (下列表格中的「规范名」)。禁止裸写 "hdid"/"GUID"/"device_id" 等无前缀词 —— 历史教训:这些词在不同体系下含义完全不同,已造成多次混淆(见 §11.11 去混记录)。

规范名总表

规范名 长度 含义 出现位置 签发方 可铸性
GUID32 32hex doLaunch 响应的 sGuidlaunch 体系) 登录外的启动注册;HySignalGUIDCache.xml 服务端(按 MID16 确定性签发) 已打通(铸币机)
HDID32 32hex 登录帧 t1.t0 的 appSign(登录体系) WUP 登录请求 t1.t0native 内存 app 版本级常量 (R15 定案): md5("5008_" + appVersion + "_" + k1)k1 = libhydeviceid datadiv 内嵌常量 (R39);同版本所有设备同值,随 appVersion 变化按公式重算 纯 Python 可算
DEVID40 40hex 登录帧 t2.t8 / 注册链 t5 的 device_id WUP 登录 t2.t8、dfpReport 响应 t5、库 getHDID 服务端(dfpReport 解密 cw 后签发)或库内生成 注册链可铸
CDID40 40hex CDID(库 getCDID 登录帧 fingerprint 附近 / 库内 libhydeviceid unidbg 可调
MID16 16hex midLiveUserbase→tUAEx→t5=sMId doLaunch 请求、库 getMID 设备(可任意铸) 任意 16hex
ACTION 长串 safedeviceid = 注册链 t2(登录授权令牌) 登录帧 t0.t5 服务端(dfpReport 签发,每账号新拉) 注册链可铸
SIGDEV40 40hex HYSIGNAL_DEVICE_ID_KEYhysignal 设备键) hysignalconfigcache hysignal 缓存 未研究

三条必守规则

  1. 每次提及必须带前缀HDID32(登录t1.t0)GUID32(doLaunch)DEVID40(注册链t5)。 上下文允许时至少写前缀:HDID32GUID32DEVID40MID16ACTION
  2. "hdid" 这个词默认指 HDID32(登录帧 t1.t0 设备证书); "GUID" 默认指 GUID32doLaunch sGuid)。两者绝不可互换/混用
  3. 新增分析必须引用本规范表,并在初次出现时给出前缀 + 长度 + 体系,例如: HDID32(ed0db8334cadd236c00cadf7e11ab5a5, 登录t1.t0设备证书)

与代码变量的对应

代码中的旧名 规范名 说明
GOLDEN_HDID GOLDEN_HDID32 金样本 = ed0db8…(登录 t1.t0
build_password_login_wup(hdid=) HDID32 参数 登录帧 t1.t0
device_profile.HDID HDID32 同上
huya_device_register.t5 DEVID40 注册链 device_id
huya_launch_mint.guid GUID32 doLaunch 请求/响应 sGuid

历史文档(§11.8 之前的章节)中裸写 "hdid"/"GUID" 处,按本表语义理解: 登录相关 = HDID32launch/铸币相关 = GUID3240hex = DEVID40/CDID40。