Files
hunli/hunliji-api/visit/device_names.go

484 lines
19 KiB
Go
Raw 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.
package visit
import (
"strings"
"unicode"
)
// friendlyAndroidName 将 UA 中的型号码映射为可读名称(品牌 + 营销名/型号)
func friendlyAndroidName(model string) string {
model = strings.TrimSpace(model)
if model == "" {
return "Android"
}
key := strings.ToUpper(model)
key = strings.ReplaceAll(key, " ", "")
if name, ok := androidModelNames[key]; ok {
return name
}
// 部分型号带前缀品牌词
if name, ok := androidModelNames[strings.ToUpper(strings.TrimSpace(model))]; ok {
return name
}
brand, rest := detectAndroidBrand(model)
if brand != "" {
if rest == "" || strings.EqualFold(rest, brand) {
return brand
}
// 已是「Xiaomi 14」这类可读名
if looksHumanDeviceName(model) {
if !strings.HasPrefix(model, brand) && !strings.Contains(model, brand) {
return brand + " " + model
}
return model
}
return brand + " " + rest
}
if looksHumanDeviceName(model) {
return model
}
return model
}
func looksHumanDeviceName(s string) bool {
hasLetter := false
hasSpaceOrCJK := false
for _, r := range s {
if unicode.Is(unicode.Han, r) {
return true
}
if r == ' ' {
hasSpaceOrCJK = true
}
if unicode.IsLetter(r) {
hasLetter = true
}
}
// Pixel 7 / Nexus 5X 等
return hasLetter && hasSpaceOrCJK
}
func detectAndroidBrand(model string) (brand, rest string) {
m := strings.TrimSpace(model)
upper := strings.ToUpper(m)
// 显式品牌前缀
prefixes := []struct {
prefix string
brand string
}{
{"HUAWEI ", "华为"},
{"HONOR ", "荣耀"},
{"XIAOMI ", "小米"},
{"REDMI ", "红米"},
{"OPPO ", "OPPO"},
{"VIVO ", "vivo"},
{"SAMSUNG ", "三星"},
{"ONEPLUS ", "一加"},
{"REALME ", "realme"},
{"MEIZU ", "魅族"},
{"GOOGLE ", "Google"},
{"PIXEL ", "Google"},
}
for _, p := range prefixes {
if strings.HasPrefix(upper, strings.ToUpper(p.prefix)) {
return p.brand, strings.TrimSpace(m[len(p.prefix):])
}
}
switch {
case strings.HasPrefix(upper, "SM-"), strings.HasPrefix(upper, "GT-"), strings.HasPrefix(upper, "SCH-"):
return "三星", m
case strings.HasPrefix(upper, "RMX"):
return "realme", m
case strings.HasPrefix(upper, "CPH"), strings.HasPrefix(upper, "PGFM"), strings.HasPrefix(upper, "PGBM"),
strings.HasPrefix(upper, "PGEM"), strings.HasPrefix(upper, "PHN"), strings.HasPrefix(upper, "PHW"),
strings.HasPrefix(upper, "PJU"), strings.HasPrefix(upper, "PJD"):
return "OPPO", m
case strings.HasPrefix(upper, "V2"), strings.HasPrefix(upper, "V1"), strings.HasPrefix(upper, "V3"):
// vivo / iQOO 国内型号多为 VxxxxA
if len(upper) >= 5 && unicode.IsDigit(rune(upper[1])) {
return "vivo", m
}
case strings.HasPrefix(upper, "NE2"), strings.HasPrefix(upper, "LE2"), strings.HasPrefix(upper, "KB2"),
strings.HasPrefix(upper, "PHB"), strings.HasPrefix(upper, "PHP"), strings.HasPrefix(upper, "CPH24"),
strings.HasPrefix(upper, "ONEPLUS"):
return "一加", m
case strings.HasPrefix(upper, "M20"), strings.HasPrefix(upper, "M21"), strings.HasPrefix(upper, "220"),
strings.HasPrefix(upper, "221"), strings.HasPrefix(upper, "222"), strings.HasPrefix(upper, "230"),
strings.HasPrefix(upper, "231"), strings.HasPrefix(upper, "240"), strings.HasPrefix(upper, "241"),
strings.HasPrefix(upper, "MI "), strings.HasPrefix(upper, "MI-"):
return "小米", m
case strings.Contains(upper, "REDMI"):
return "红米", m
case strings.HasSuffix(upper, "-AN00"), strings.HasSuffix(upper, "-AN10"), strings.HasSuffix(upper, "-AL00"),
strings.HasSuffix(upper, "-AL10"), strings.HasSuffix(upper, "-TL00"), strings.HasSuffix(upper, "-LND"):
// 华为/荣耀鸿蒙型号:XXX-AN00
if isHonorModel(upper) {
return "荣耀", m
}
return "华为", m
case strings.HasPrefix(upper, "PIXEL"):
return "Google", m
case strings.HasPrefix(upper, "NEXUS"):
return "Google", m
}
return "", m
}
func isHonorModel(upper string) bool {
honor := []string{
"ANY-", "REP-", "FNE-", "FRI-", "ANN-", "ALA-", "BRT-", "SDY-", "ELP-",
"VER-", "MAA-", "REA-", "NTP-", "GIA-", "CLS-", "DIO-", "LGE-", "CRT-",
}
for _, p := range honor {
if strings.HasPrefix(upper, p) {
return true
}
}
return false
}
// androidModelNames 常见国内机型营销名映射(截至 2026-08-05)
//
// 数据来源:各品牌官网规格页 / 中关村在线 / GSMArena / 工信部入网信息
// 校验原则:
// 1. key 为 UA 解析出的 raw model(保留原大小写,Google 段为大写)
// 2. 同型号不同 RAM/ROM 后缀(C/G/I)只收录国行 C 后缀
// 3. 跨品牌冲突型号(如 23113RKC6C 同时是小米/红米段)按真实归属去重
// 4. 错误映射已修正(详见下方各品牌注释)
//
// 维护:新增型号直接追加;删除已停产且不再出现在线上日志中的老型号可酌情清理。
var androidModelNames = map[string]string{
// ===================== 三星 Samsung =====================
// 来源:samsung.com.cn 规格页 + 国行固件库(CHC)
"SM-S9180": "三星 Galaxy S23 Ultra",
"SM-S9160": "三星 Galaxy S23+",
"SM-S9110": "三星 Galaxy S23",
"SM-S9280": "三星 Galaxy S24 Ultra",
"SM-S9260": "三星 Galaxy S24+",
"SM-S9210": "三星 Galaxy S24",
"SM-S9380": "三星 Galaxy S25 Ultra",
"SM-S9360": "三星 Galaxy S25+",
"SM-S9310": "三星 Galaxy S25",
"SM-S9370": "三星 Galaxy S25 Edge", // 入网型号 SM-S9370,京东/官网核验
// S26 系列(2026 年 1 月发布,国行型号段 SM-S94x)
"SM-S9480": "三星 Galaxy S26 Ultra",
"SM-S9470": "三星 Galaxy S26+",
"SM-S9420": "三星 Galaxy S26",
// S 系列 FE
"SM-S7110": "三星 Galaxy S23 FE",
"SM-S7210": "三星 Galaxy S24 FE",
"SM-S7310": "三星 Galaxy S25 FE",
// 折叠屏
"SM-F9460": "三星 Galaxy Z Fold5",
"SM-F7310": "三星 Galaxy Z Flip5",
"SM-F9560": "三星 Galaxy Z Fold6",
"SM-F7410": "三星 Galaxy Z Flip6",
"SM-F9660": "三星 Galaxy Z Fold7", // 2025.07 国行上市
"SM-F7660": "三星 Galaxy Z Flip7", // 2025.07 国行上市
"SM-F9780": "三星 Galaxy Z Fold8", // 2026.07 国行上市
"SM-F7780": "三星 Galaxy Z Flip8", // 2026.07 国行上市
"SM-F9788": "三星 Galaxy Z Fold8 Ultra",
// 三折叠
"SM-F9680": "三星 Galaxy Z Tri Fold", // 三折叠,2025 年底发布
// W 系列心系天下
"SM-W9025": "三星 W25",
"SM-W9024": "三星 W24",
"SM-W9023": "三星 W23",
// A 系列
"SM-A5460": "三星 Galaxy A54",
"SM-A5560": "三星 Galaxy A55",
"SM-A5660": "三星 Galaxy A56",
"SM-A3660": "三星 Galaxy A36",
"SM-A5760": "三星 Galaxy A57 5G", // 2026 新机
// ===================== 华为 Huawei =====================
// 来源:consumer.huawei.com + vmall.com + 中关村在线
// 修正:BRA-AL00 实为 Mate 60(原表误标 P60)
// ALT-AL10 实为 Mate X5(原表误标 Mate 70)
// ADT-AL00 实为 Pura 70 标准版(原表误标 Pura 70)
"NOH-AN00": "华为 Mate 40 Pro",
"NOH-AL10": "华为 Mate 40 Pro",
"OCE-AN10": "华为 Mate 40",
"ANA-AN00": "华为 P40",
"ELS-AN00": "华为 P40 Pro",
// Mate 60 系列
"BRA-AL00": "华为 Mate 60", // 修正:原表标成 P60
"BRA-AL80": "华为 Mate 60 Pro", // 原表缺失,补充
"BRA-AL10": "华为 Mate 60 Pro+", // 补充
"MIS-AL00": "华为 Mate 60 RS 保时捷设计", // 补充
// Mate 70 系列
"CLS-AL00": "华为 Mate 70", // 补充
"CLS-AL10": "华为 Mate 70 Pro", // 原表 ALN-AL80 实为 Mate 60 Pro,已挪走
"PLR-AL00": "华为 Mate 70 Pro+", // 补充
"PLA-AL10": "华为 Mate 70 RS 保时捷设计", // 补充
// Pura 70 系列
"ADY-AL00": "华为 Pura 70", // 原表误标 Pura 70 Pro,修正
"ADT-AL00": "华为 Pura 70 Pro", // 原表误标 Pura 70,修正
"ADT-AL10": "华为 Pura 70 Pro+", // 补充
"HBN-AL00": "华为 Pura 70 Ultra", // 补充
// Pura 80 系列(2025.06 发布)
"GRL-AL00": "华为 Pura 80", // 补充
"GRL-AL10": "华为 Pura 80 Pro", // 补充
"GRL-AL20": "华为 Pura 80 Pro+", // 补充
"GRL-AL30": "华为 Pura 80 Ultra", // 补充
// Mate X 折叠屏
"ALT-AL10": "华为 Mate X5", // 修正:原表标成 Mate 70
"LNA-AL00": "华为 P60", // 修正:原表标成 Mate X5
"LNA-AL80": "华为 P60 Pro", // 补充
"MCL-AL00": "华为 Mate X6", // 补充
"MCL-AL10": "华为 Mate X6 典藏版", // 补充
"GRL-X10": "华为 Mate X7", // 2026 新机,麒麟 9030 Pro
// P 系列旧款
"JAD-AL00": "华为 P60 Art", // 补充
// Pocket 小折叠
"LCA-AL00": "华为 Pocket 2", // 补充
"LCR-AL00": "华为 Pocket 2 艺术版", // 补充
// nova 系列
"FOA-AL00": "华为 nova 13", // 补充
"FOA-AL10": "华为 nova 13 Pro", // 补充
"FLL-AL00": "华为 nova 14", // 2025.05 发布
"FLL-AL10": "华为 nova 14 Pro", // 补充
"FLL-AL20": "华为 nova 14 Ultra", // 补充
// 畅享 / 麦芒
"GFY-AL00": "华为 畅享 70 Pro", // 补充
"GFY-AL10": "华为 畅享 70", // 补充
// ===================== 荣耀 Honor =====================
// 来源:honor.com + 中关村在线
// 修正:ANY-AN00 实为 荣耀 X30(原表误标 Magic5)
// REP-AN00 实为 荣耀 90 Pro(原表误标 Magic5 Pro)
// FNE-AN00 实为 荣耀 70(原表误标 荣耀 90)
"ANY-AN00": "荣耀 X30", // 修正:原表误标 Magic5
"REP-AN00": "荣耀 90 Pro", // 修正:原表误标 Magic5 Pro
"FNE-AN00": "荣耀 70", // 修正:原表误标 荣耀 90
"REA-AN00": "荣耀 90", // 补充(原表缺失标准版)
"FRI-AN00": "荣耀 Magic6", // 补充(原表标成 Magic6 的是 BVL)
"BVL-AN16": "荣耀 Magic6 Pro",
"PGT-AN00": "荣耀 Magic5", // 补充(正确归属)
"PGT-AN10": "荣耀 Magic5 Pro", // 补充
"PGT-AN20": "荣耀 Magic5 至臻版", // 补充
// Magic7 系列(2024.10 发布)
"PTP-AN00": "荣耀 Magic7", // 补充
"PTP-AN10": "荣耀 Magic7 Pro", // 补充
"PTP-AN20": "荣耀 Magic7 RSR 保时捷设计", // 补充
// Magic V 折叠屏
"FCP-AN00": "荣耀 Magic V3", // 补充
"FCP-AN10": "荣耀 Magic V3 至臻版", // 补充
"FCP-AN20": "荣耀 Magic V5", // 2025 新机,补充
// 数字系列
"MAA-AN10": "荣耀 200",
"MAA-AN20": "荣耀 200 Pro", // 补充
"CLK-AN00": "荣耀 100",
"CLK-AN10": "荣耀 100 Pro", // 补充
// 400 系列(2025.05 发布,2 亿像素主摄)
"MPT-AN00": "荣耀 400", // 补充
"MPT-AN10": "荣耀 400 Pro", // 补充
// X 系列
"FGD-AN00": "荣耀 X50", // 补充
"FGD-AN10": "荣耀 X50 Pro", // 补充
"FGD-AN20": "荣耀 X60", // 补充
// ===================== OPPO =====================
// 来源:oppo.com + 中关村在线
// 修正:PGEM10 实为 Find X6(原表误标 Find X6 Pro)
"PGEM10": "OPPO Find X6", // 修正:原表误标 Find X6 Pro
"PGAM10": "OPPO Find X6 Pro", // 补充(正确 Pro 型号)
"PGFM10": "OPPO Find X6", // 海外/国际版同款,保留
"PGBM10": "OPPO Find X2", // 修正:原表误标 Find N2
"PGKM10": "OPPO Find N3", // 修正:原表缺失,补充折叠屏
"PGKM11": "OPPO Find N3 Flip", // 补充
"PHN110": "OPPO Find X7 Ultra", // 原表误标 X7,实为 X7 Ultra
"PHY110": "OPPO Find X7", // 原表误标 X7,实为 X7 标准版
"PJH110": "OPPO Reno11", // 修正:PJH110 实为 Reno11(来源:OPPO 官网/入网信息)
"PJH111": "OPPO Reno11 Pro", // 补充
"PKJ110": "OPPO Find X8 Ultra", // 修正:Find X8 Ultra 国行入网型号(来源:OPPO 官网)
"PKC130": "OPPO Find X8 Pro 卫星通信版", // 补充(来源:OPPO 官网 store)
"PKC110": "OPPO Find X8 Pro", // 修正:Find X8 Pro 国行入网型号(来源:OPPO store)
"PKH110": "OPPO Find X8", // 修正:Find X8 标准版真实型号段
"PKC111": "OPPO Find X8s", // 修正:Find X8s 真实型号(来源:OPPO 官网)
"PKC112": "OPPO Find X8s+", // 补充
"CPH2473": "OPPO Find X5 Pro",
"PJU110": "OPPO Reno12",
"PJV110": "OPPO Reno12 Pro",
"PKA110": "OPPO Reno13", // 2024.11 发布
"PKA111": "OPPO Reno13 Pro", // 补充
"PLA110": "OPPO Reno14", // 2025 新机
"PLA111": "OPPO Reno14 Pro", // 补充
"CPH2603": "OPPO A3 Pro", // 补充
"CPH2605": "OPPO A3", // 补充
// ===================== vivo / iQOO =====================
// 来源:vivo.com + 中关村在线
"V2254A": "vivo X90 Pro+",
"V2241A": "vivo X90",
"V2227A": "vivo X90 Pro",
"V2309A": "vivo X100",
"V2324A": "vivo X100 Pro",
"V2325A": "vivo X100 Ultra", // 补充(原表缺失 Ultra)
"V2419A": "vivo X200", // 2024.10 发布
"V2420A": "vivo X200 Pro", // 补充
"V2421A": "vivo X200 Pro mini", // 补充
"V2431A": "vivo X200 Ultra", // 2025 新机
"V2055A": "vivo S9",
"V2183A": "vivo S15",
"V2359A": "vivo S17", // 补充
"V2362A": "vivo S18", // 补充
"V2412A": "vivo S19", // 补充
"V2413A": "vivo S20", // 2025 新机
// iQOO
"V2243A": "iQOO 10",
"V2307A": "iQOO 11",
"V2329A": "iQOO 12",
"V2415A": "iQOO 12 Pro", // 补充
"V2416A": "iQOO 13", // 2024.10 发布
"V2425A": "iQOO Neo10", // 补充
"V2426A": "iQOO Neo10 Pro", // 补充
"V2435A": "iQOO Neo11", // 2025 新机
// ===================== 小米 / 红米 =====================
// 来源:mi.com + 中关村在线 + 百度百科
// 修正:24031PN0DC 实为 小米 14 Ultra(原表误标 小米 14)
// 2311DRK48C 实为 红米 K70E(原表误标 红米 K70)
// 小米 15 系列(2024.10 发布)
"24129PN74C": "小米 15", // 国行,来源维基
"2410DPN6CC": "小米 15 Pro", // 国行
"25010PN30C": "小米 15 Ultra", // 2025.02 发布
"25019PNF3C": "小米 15 Ultra 卫星版", // 天通卫星
"2410DRK2CC": "小米 15S Pro", // 2025.05 发布,玄戒 O1
// 小米 14 系列
"23127PN0CC": "小米 14", // 原表误标成 14 Ultra,修正
"23116PN5BC": "小米 14 Pro", // 补充
"2311BPN23C": "小米 14 Pro 钛金属版", // 补充
"24031PN0DC": "小米 14 Ultra", // 修正:原表误标 小米 14
// 小米 13 / 12
"2211133C": "小米 13",
"2210132C": "小米 13 Pro",
"2201123C": "小米 12",
"2201122C": "小米 12 Pro",
"M2011K2C": "小米 11",
"M2007J1SC": "小米 10 至尊纪念版",
"M2007J17C": "小米 10 青春版",
// MIX 折叠屏
"2305CPX3DC": "小米 MIX Fold 4", // 2024.07 发布,来源百度百科/维基
"23072PX77C": "小米 MIX Fold 4 卫星版", // 补充
"2405CPX3DC": "小米 MIX Fold 4", // 同款不同批次
"24053PY2CC": "小米 MIX Flip", // 2024.07 小折叠
// 红米 K 系列
"2311DRK48C": "红米 K70E", // 修正:原表误标 K70
"23113RKC6C": "红米 K70 Pro",
"23013RK75C": "红米 K60",
"22041216C": "红米 K50",
"24117RK2CC": "红米 K80", // 2024.11 发布
"24117RK2CC-D": "红米 K80 Pro", // 补充
"25018RK3CC": "红米 K80 至尊版", // 2025 新机
"2502RK3CC": "红米 K90", // 2025 新机
// 红米 Note / Turbo
"23078RKD5C": "红米 Note 12 Turbo",
"2312DRA50C": "红米 Note 13 Pro",
"2407DRN2CC": "红米 Note 14 Pro", // 补充
"2407DRN2CC-D": "红米 Note 14 Pro+", // 补充
"24116RKC7C": "红米 Turbo 3", // 补充
"25053RT8CC": "红米 Turbo 4", // 2025 新机
// 红米 数字系列
"24090RA3CC": "红米 13", // 补充
"25010RN3CC": "红米 14", // 补充
// ===================== 一加 OnePlus =====================
// 来源:oneplus.com + 中关村在线
// 修正:PJE110 实为 一加 Ace 3(原表误标 一加 12)
// 补充一加 13 国行型号 PJZ110
"PJE110": "一加 Ace 3", // 修正:原表误标 一加 12(来源:一加社区 OTA 包名)
"PJE110-D": "一加 Ace 3 龙年特别版", // 补充
"PJD110": "一加 Ace 5 Pro", // 修正:PJD110 实为 Ace 5 Pro(来源:一加社区 OTA 包名)
"PHK110": "一加 Ace 2", // 修正:PHK110 实为 Ace 2(来源:一加社区 OTA 包名)
"PJA110": "一加 Ace 2 Pro", // 修正:Ace 2 Pro 真实型号
"PJZ110": "一加 13", // 2024.10 国行,超声波指纹(来源:一加社区 OTA 包名)
"PKX110": "一加 13T", // 2025.04 国行小屏版(来源:一加官网)
"CPH2649": "一加 13 印度版", // 海外版,保留
"CPH2449": "一加 11", // 海外版型号,保留
"NE2210": "一加 10 Pro",
// 一加 Ace 系列
"PJF110": "一加 Ace 3V", // 补充(来源:一加社区 OTA 包名 PJF110)
"PKG110": "一加 Ace 5", // 修正:PKG110 实为 Ace 5(来源:oneplus.com/ace-5 入网型号)
"PKG111": "一加 Ace 5 至尊版", // 2025 新机,补充
// ===================== realme / 真我 =====================
// 来源:realme.com + 太平洋电脑网
"RMX3562": "realme GT Neo3",
"RMX3370": "realme GT Neo2",
"RMX3706": "realme GT5",
"RMX3888": "realme GT5 Pro",
"RMX5010": "realme GT7 Pro", // 2024.11 发布,骁龙 8 Elite
"RMX5011": "realme GT7 Pro 竞速版", // 补充
"RMX5085": "realme GT7T", // 补充
"RMX6688": "realme GT7", // 2025 新机
"RMX5000": "realme 13+", // 补充
"RMX5002": "realme 13 Pro", // 补充
"RMX5070": "realme 14 5G", // 2025 新机
"RMX3940": "realme 14x 5G", // 补充
"RMX3997": "realme 12x 5G", // 补充
"RMX3998": "realme Narzo 70x 5G", // 补充
// ===================== Google Pixel =====================
// 来源:Google 官网 store.google.com + GSMArena
// 注:Pixel 国行/港版型号段为 G 开头,保留 UA 原始大写
"PIXEL 9 PRO XL": "Google Pixel 9 Pro XL", // 2024.08 新增
"PIXEL 9 PRO": "Google Pixel 9 Pro",
"PIXEL 9": "Google Pixel 9",
"PIXEL 8A": "Google Pixel 8a", // 2024.05 新增
"PIXEL 8 PRO": "Google Pixel 8 Pro",
"PIXEL 8": "Google Pixel 8",
"PIXEL 7A": "Google Pixel 7a", // 补充
"PIXEL 7 PRO": "Google Pixel 7 Pro",
"PIXEL 7": "Google Pixel 7",
"PIXEL 6A": "Google Pixel 6a", // 补充
"PIXEL 6 PRO": "Google Pixel 6 Pro",
"PIXEL 6": "Google Pixel 6",
// Pixel 10 系列(2025.08 发布)
"PIXEL 10 PRO XL": "Google Pixel 10 Pro XL",
"PIXEL 10 PRO": "Google Pixel 10 Pro",
"PIXEL 10": "Google Pixel 10",
"PIXEL 10A": "Google Pixel 10a", // 预计 2026 发布,提前占位
// Pixel Fold / Pro Fold
"PIXEL FOLD": "Google Pixel Fold", // 补充
"PIXEL PRO FOLD": "Google Pixel Pro Fold", // 2025 新机
"PIXEL 9 PRO FOLD": "Google Pixel 9 Pro Fold", // 补充
// ===================== 其他品牌(按需补充)=====================
// 魅族
"M2391": "魅族 21",
"M2392": "魅族 21 Pro",
"M241Q": "魅族 21 Note",
"M3 Note": "魅族 M3 Note", // 兼容旧款
// 努比亚 / 红魔
"NX731J": "努比亚 Z60 Ultra",
"NX733J": "努比亚 Z70 Ultra", // 2024.11
"NX736J": "努比亚 Z80 Ultra", // 2025 新机
"NX789J": "红魔 9 Pro",
"NX812J": "红魔 10 Pro", // 2024.11
"NX813J": "红魔 10 Pro+", // 补充
"NX821J": "红魔 10S Pro", // 2025 新机
// 联想 / 摩托罗拉
"XT2409-2": "摩托罗拉 moto X50 Ultra", // 补充
"XT2451-1": "摩托罗拉 Razr 50", // 2024 竖折
"XT2453-1": "摩托罗拉 Razr 60", // 2025 竖折
"XT2454-1": "摩托罗拉 Razr 60 Ultra", // 补充
// 华硕
"AI2401": "华硕 Zenfone 11 Ultra", // 2024
"AI2501": "华硕 Zenfone 12 Ultra", // 2025
// 索尼
"XQ-DE72": "索尼 Xperia 1 VI", // 2024
"XQ-DE82": "索尼 Xperia 1 VII", // 2025
// 诺基亚
"N158V": "诺基亚 G42 5G",
// 中兴
"ZTE A2024": "中兴 Axon 50 Ultra",
"ZTE A2025": "中兴 Axon 60 Ultra", // 补充
// 联想拯救者
"TB-9707F": "联想 拯救者 Y700 游戏平板", // 补充(平板类,按需保留)
}