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

39 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 虎牙设备标识符命名规范 (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)`
上下文允许时至少写前缀:`HDID32``GUID32``DEVID40``MID16``ACTION`
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。