Backport - Improve device detection for tablets: OnePlus, Xiaomi

(cherry picked from commit 4c57a5a5672c98faf8fc8efbc81de6753ce7f1dd)
This commit is contained in:
Faisal Salman 2024-11-20 16:44:41 +07:00
parent 40b00c7c55
commit d15849a141
2 changed files with 179 additions and 6 deletions

View File

@ -54,6 +54,7 @@
MICROSOFT = 'Microsoft', MICROSOFT = 'Microsoft',
MOTOROLA = 'Motorola', MOTOROLA = 'Motorola',
OPERA = 'Opera', OPERA = 'Opera',
OPPO = 'OPPO',
SAMSUNG = 'Samsung', SAMSUNG = 'Samsung',
SHARP = 'Sharp', SHARP = 'Sharp',
SONY = 'Sony', SONY = 'Sony',
@ -442,6 +443,10 @@
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [ ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
// Xiaomi // Xiaomi
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i // Mi Pad tablets
],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO /\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models /\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
@ -449,16 +454,13 @@
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models /oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i // Xiaomi Mi /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i // Xiaomi Mi
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [ ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, // Redmi Pad
/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets
],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
// OPPO // OPPO
/; (\w+) bui.+ oppo/i, /; (\w+) bui.+ oppo/i,
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [ ], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [
/\b(opd2\d{3}a?) bui/i /\b(opd2(\d{3}a?))(?: bui|\))/i
], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [ ], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['304', '403', '203'], '*' : OPPO }], [TYPE, TABLET]], [
// Vivo // Vivo
/vivo (\w+)(?: bui|\))/i, /vivo (\w+)(?: bui|\))/i,

View File

@ -2591,6 +2591,33 @@
"type": "mobile" "type": "mobile"
} }
}, },
{
"desc": "OnePlus Pad Go 11.35",
"ua": "Mozilla/5.0 (Linux; arm_64; Android 14; OPD2304) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.629 YaApp_Android/24.101/apad YaSearchBrowser/24.101/apad BroPP/1.0 SA/3 Mobile Safari/537.36",
"expect": {
"vendor": "OnePlus",
"model": "OPD2304",
"type": "tablet"
}
},
{
"desc": "OnePlus Pad 2 12.1 WiFi",
"ua": "Mozilla/5.0 (Linux; Android 14; OPD2403 Build/UKQ1.231108.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Safari/537.36",
"expect": {
"vendor": "OnePlus",
"model": "OPD2403",
"type": "tablet"
}
},
{
"desc": "OnePlus Pad 11.61 WiFi",
"ua": "Mozilla/5.0 (Linux; Android 14; OPD2203 Build/UKQ1.230924.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Safari/537.36",
"expect": {
"vendor": "OnePlus",
"model": "OPD2203",
"type": "tablet"
}
},
{ {
"desc": "OPPO Pad", "desc": "OPPO Pad",
"ua": "Mozilla/5.0 (Linux; U; Android 13; zh-CN; OPD2101 Build/TP1A.220905.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.3.9.1290 Mobile Safari/537.36", "ua": "Mozilla/5.0 (Linux; U; Android 13; zh-CN; OPD2101 Build/TP1A.220905.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 UCBrowser/16.3.9.1290 Mobile Safari/537.36",
@ -4004,6 +4031,15 @@
"type": "mobile" "type": "mobile"
} }
}, },
{
"desc": "Xiaomi MI PAD",
"ua": "Mozilla/5.0 (Linux; U; Android 4.4.4; en-us; MI PAD Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/9.3.2",
"expect": {
"vendor": "Xiaomi",
"model": "MI PAD",
"type": "tablet"
}
},
{ {
"desc": "Xiaomi MI PAD 2", "desc": "Xiaomi MI PAD 2",
"ua": "Mozilla/5.0 (Linux; Android 5.1; MI PAD 2 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Safari/537.36 [FB_IAB/FB4A;FBAV/137.0.0.24.91;]", "ua": "Mozilla/5.0 (Linux; Android 5.1; MI PAD 2 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Safari/537.36 [FB_IAB/FB4A;FBAV/137.0.0.24.91;]",
@ -4013,6 +4049,33 @@
"type": "tablet" "type": "tablet"
} }
}, },
{
"desc": "Xiaomi MI PAD 2",
"ua": "Mozilla/5.0 (Linux; x86_64; Android 5.1; MI PAD 2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 YaBrowser/20.11.2.69.01 Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "MI PAD 2",
"type": "tablet"
}
},
{
"desc": "Xiaomi MI PAD 3",
"ua": "Mozilla/5.0 (Linux; arm_64; Android 7.0; MI PAD 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.216 YaBrowser/21.5.6.56.01 Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "MI PAD 3",
"type": "tablet"
}
},
{
"desc": "Xiaomi MI PAD 4",
"ua": "Mozilla/5.0 (Linux; arm_64; Android 8.1.0; MI PAD 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 YaBrowser/19.9.1.126.01 Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "MI PAD 4",
"type": "tablet"
}
},
{ {
"desc": "Xiaomi MI PAD 4 PLUS", "desc": "Xiaomi MI PAD 4 PLUS",
"ua": "Mozilla/5.0 (Linux; Android 8.1; MI PAD 4 PLUS) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36", "ua": "Mozilla/5.0 (Linux; Android 8.1; MI PAD 4 PLUS) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36",
@ -4022,6 +4085,69 @@
"type": "tablet" "type": "tablet"
} }
}, },
{
"desc": "Xiaomi MI PAD 4 WiFi",
"ua": "Mozilla/5.0 (Linux; Android 8.1; Mi Pad4 Wi-Fi) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Mobile Safari/537.36 EdgA/86.0.622.61",
"expect": {
"vendor": "Xiaomi",
"model": "Mi Pad4 Wi-Fi",
"type": "tablet"
}
},
{
"desc": "Xiaomi Mi Pad 5",
"ua": "Mozilla/5.0 (Linux; Android 13; 21051182G Build/TKQ1.221013.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Safari/537.36 Flipboard/4.3.31/5486,4.3.31.5486",
"expect": {
"vendor": "Xiaomi",
"model": "21051182G",
"type": "tablet"
}
},
{
"desc": "Xiaomi Mi Pad 5 Pro",
"ua": "Mozilla/5.0 (Linux; Android 11; M2105K81AC Build/RKQ1.200826.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Safari/537.36 Line/13.15.1/IAB",
"expect": {
"vendor": "Xiaomi",
"model": "M2105K81AC",
"type": "tablet"
}
},
{
"desc": "Xiaomi Mi Pad 5 Pro 5G",
"ua": "Mozilla/5.0 (Linux; Android 12; M2105K81C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/23.0 Chrome/115.0.0.0 Mobile Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "M2105K81C",
"type": "tablet"
}
},
{
"desc": "Xiaomi Mi Pad 6 Max 14",
"ua": "Mozilla/5.0 (Linux; U; Android 14; zh-tw; 2307BRPDCC Build/UKQ1.230804.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/109.0.5414.118 Mobile Safari/537.36 Device/yudi Model/2307BRPDCC XiaoMi/MiuiBrowser/14.10.6",
"expect": {
"vendor": "Xiaomi",
"model": "2307BRPDCC",
"type": "tablet"
}
},
{
"desc": "Xiaomi Mi Pad 6 Pro",
"ua": "Mozilla/5.0 (Linux; U; Android 13; en-US; 23046RP50C Build/TKQ1.221114.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 UCBrowser/13.6.2.1316 Mobile Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "23046RP50C",
"type": "tablet"
}
},
{
"desc": "Xiaomi Pad 6S Pro 12.4",
"ua": "Mozilla/5.0 (Linux; Android 14; 24018RPACC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",
"expect": {
"vendor": "Xiaomi",
"model": "24018RPACC",
"type": "tablet"
}
},
{ {
"desc": "Xiaomi POCO X2", "desc": "Xiaomi POCO X2",
"ua": "Mozilla/5.0 (Linux; Android 10; POCO X2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36", "ua": "Mozilla/5.0 (Linux; Android 10; POCO X2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
@ -4184,6 +4310,51 @@
"type": "mobile" "type": "mobile"
} }
}, },
{
"desc": "XiaoMi Redmi Pad",
"ua": "Mozilla/5.0 (Linux; U; Android 12; id-id; Redmi Pad Build/SP1A.210812.016) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/112.0.5615.136 Mobile Safari/537.36 XiaoMi/MiuiBrowser/14.1.1-gn",
"expect": {
"vendor": "Xiaomi",
"model": "Redmi Pad",
"type": "tablet"
}
},
{
"desc": "XiaoMi Redmi Pad",
"ua": "Mozilla/5.0 (Linux; Android 14; 22081283G Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Safari/537.36 Flipboard/4.3.31/5486,4.3.31.5486",
"expect": {
"vendor": "Xiaomi",
"model": "22081283G",
"type": "tablet"
}
},
{
"desc": "XiaoMi Redmi Pad Pro",
"ua": "Mozilla/5.0 (Linux; Android 14; 2405CRPFDG Build/UKQ1.240116.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.6533.97 Safari/537.36 [FB_IAB/FB4A;FBAV/476.0.0.49.74;] FBNV/1",
"expect": {
"vendor": "Xiaomi",
"model": "2405CRPFDG",
"type": "tablet"
}
},
{
"desc": "XiaoMi Redmi Pad SE",
"ua": "Dalvik/2.1.0 (Linux; U; Android 14; 23073RPBFG Build/UKQ1.231003.002)",
"expect": {
"vendor": "Xiaomi",
"model": "23073RPBFG",
"type": "tablet"
}
},
{
"desc": "XiaoMi Redmi Pad SE 8.7",
"ua": "Mozilla/5.0 (Linux; Android 14; 24076RP19G Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/130.0.6723.107 Mobile Safari/537.36 Line/14.18.1/IAB",
"expect": {
"vendor": "Xiaomi",
"model": "24076RP19G",
"type": "tablet"
}
},
{ {
"desc": "ZTE Blade A6", "desc": "ZTE Blade A6",
"ua": "Mozilla/5.0 (Linux; Android 7.1.1; ZTE BLADE A0620 Build/NMF26F; ru-ru) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36 Puffin/9.2.0.50586AP", "ua": "Mozilla/5.0 (Linux; Android 7.1.1; ZTE BLADE A0620 Build/NMF26F; ru-ru) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36 Puffin/9.2.0.50586AP",