39 lines
2.9 KiB
Markdown
39 lines
2.9 KiB
Markdown
# 虎牙设备标识符命名规范 (ID NOMENCLATURE)
|
||
|
||
> 强制约定:**所有文档、代码注释、变量名、日志,凡是提到设备标识,必须带前缀**
|
||
> (下列表格中的「规范名」)。禁止裸写 "hdid"/"GUID"/"device_id" 等无前缀词 ——
|
||
> 历史教训:这些词在不同体系下含义完全不同,已造成多次混淆(见 §11.11 去混记录)。
|
||
|
||
## 规范名总表
|
||
|
||
| 规范名 | 长度 | 含义 | 出现位置 | 签发方 | 可铸性 |
|
||
|---|---|---|---|---|---|
|
||
| **GUID32** | 32hex | doLaunch 响应的 sGuid(launch 体系) | 登录外的启动注册;HySignalGUIDCache.xml | 服务端(按 MID16 确定性签发) | ✅ 已打通(铸币机) |
|
||
| **HDID32** | 32hex | 登录帧 t1.t0 的 appSign(登录体系) | WUP 登录请求 t1.t0;native 内存 | **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 | mid(LiveUserbase→tUAEx→t5=sMId) | doLaunch 请求、库 getMID | 设备(可任意铸) | ✅ 任意 16hex |
|
||
| **ACTION** | 长串 | safedeviceid = 注册链 t2(登录授权令牌) | 登录帧 t0.t5 | 服务端(dfpReport 签发,每账号新拉) | ✅ 注册链可铸 |
|
||
| **SIGDEV40** | 40hex | HYSIGNAL_DEVICE_ID_KEY(hysignal 设备键) | hysignalconfigcache | hysignal 缓存 | 未研究 |
|
||
|
||
## 三条必守规则
|
||
|
||
1. **每次提及必须带前缀**:`HDID32(登录t1.t0)`、`GUID32(doLaunch)`、`DEVID40(注册链t5)`。
|
||
上下文允许时至少写前缀:`HDID32`、`GUID32`、`DEVID40`、`MID16`、`ACTION`。
|
||
2. **"hdid" 这个词默认指 HDID32**(登录帧 t1.t0 设备证书);
|
||
"GUID" 默认指 GUID32(doLaunch 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" 处,按本表语义理解:
|
||
> 登录相关 = HDID32,launch/铸币相关 = GUID32,40hex = DEVID40/CDID40。 |