484 lines
19 KiB
Go
484 lines
19 KiB
Go
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 游戏平板", // 补充(平板类,按需保留)
|
||
}
|