ua-parser-js 0.7.24 → 0.7.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ua-parser-js might be problematic. Click here for more details.

@@ -1,30 +1,138 @@
1
1
  [{
2
- "desc": "Asus Nexus 7",
2
+ "desc": "ASUS Nexus 7",
3
3
  "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 7 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
4
4
  "expect": {
5
- "vendor": "Asus",
5
+ "vendor": "ASUS",
6
6
  "model": "Nexus 7",
7
7
  "type": "tablet"
8
8
  }
9
9
  },
10
10
  {
11
- "desc": "Asus Padfone",
11
+ "desc": "ASUS Padfone",
12
12
  "ua": "Mozilla/5.0 (Linux; Android 4.1.1; PadFone 2 Build/JRO03L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36",
13
13
  "expect": {
14
- "vendor": "Asus",
14
+ "vendor": "ASUS",
15
15
  "model": "PadFone",
16
16
  "type": "tablet"
17
17
  }
18
18
  },
19
19
  {
20
- "desc": "Asus ZenPad 10",
20
+ "desc": "ASUS ZenPad 10",
21
21
  "ua": "Mozilla/5.0 (Linux; Android 6.0; P00C Build/MRA58K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Safari/537.36",
22
22
  "expect": {
23
- "vendor": "Asus",
23
+ "vendor": "ASUS",
24
24
  "model": "P00C",
25
25
  "type": "tablet"
26
26
  }
27
27
  },
28
+ {
29
+ "desc": "ASUS ZenPad Z8s",
30
+ "ua": "Mozilla/5.0 (Linux; Android 7.0; ASUS_P00J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.111 Safari/537.36\n",
31
+ "expect": {
32
+ "vendor": "ASUS",
33
+ "model": "P00J",
34
+ "type": "tablet"
35
+ }
36
+ },
37
+ {
38
+ "desc": "ASUS ROG",
39
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; ZS600KL Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36",
40
+ "expect": {
41
+ "vendor": "ASUS",
42
+ "model": "ZS600KL",
43
+ "type": "mobile"
44
+ }
45
+ },
46
+ {
47
+ "desc": "ASUS ROG II",
48
+ "ua": "Mozilla/5.0 (Linux; Android 9; ASUS_I001DA Build/PKQ1.190414.001; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36",
49
+ "expect": {
50
+ "vendor": "ASUS",
51
+ "model": "I001DA",
52
+ "type": "mobile"
53
+ }
54
+ },
55
+ {
56
+ "desc": "ASUS Zenfone 2",
57
+ "ua": "Mozilla/5.0 (Linux; Android 5.0; ASUS ZenFone 2 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile Safari/537.36",
58
+ "expect": {
59
+ "vendor": "ASUS",
60
+ "model": "ZenFone 2",
61
+ "type": "mobile"
62
+ }
63
+ },
64
+ {
65
+ "desc": "ASUS Zenfone 3 Deluxe",
66
+ "ua": "Mozilla/5.0 (Linux; Android 6.0; ASUS_Z016D Build/MXB48T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.132 Mobile Safari/537.36",
67
+ "expect": {
68
+ "vendor": "ASUS",
69
+ "model": "Z016D",
70
+ "type": "mobile"
71
+ }
72
+ },
73
+ {
74
+ "desc": "ASUS Zenfone 5",
75
+ "ua": "Mozilla/5.0 (Linux; Android 8.0; ZE620KL Build/OPR1.170623.032) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.158 Mobile Safari/537.36",
76
+ "expect": {
77
+ "vendor": "ASUS",
78
+ "model": "ZE620KL",
79
+ "type": "mobile"
80
+ }
81
+ },
82
+ {
83
+ "desc": "ASUS Zenfone 7",
84
+ "ua": "Mozilla/5.0 (Linux; Android 10; ASUS_I002D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.81 Mobile Safari/537.36",
85
+ "expect": {
86
+ "vendor": "ASUS",
87
+ "model": "I002D",
88
+ "type": "mobile"
89
+ }
90
+ },
91
+ {
92
+ "desc": "ASUS Zenfone 7 Pro",
93
+ "ua": "Mozilla/5.0 (Linux; Android 10; ZS671KS) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.72 Mobile Safari/537.36",
94
+ "expect": {
95
+ "vendor": "ASUS",
96
+ "model": "ZS671KS",
97
+ "type": "mobile"
98
+ }
99
+ },
100
+ {
101
+ "desc": "ASUS Zenfone Max Pro (M1)",
102
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; ASUS_X00TD Build/OPM1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36",
103
+ "expect": {
104
+ "vendor": "ASUS",
105
+ "model": "X00TD",
106
+ "type": "mobile"
107
+ }
108
+ },
109
+ {
110
+ "desc": "ASUS Zenfone Max M2",
111
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; ASUS_X01AD) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36",
112
+ "expect": {
113
+ "vendor": "ASUS",
114
+ "model": "X01AD",
115
+ "type": "mobile"
116
+ }
117
+ },
118
+ {
119
+ "desc": "ASUS Zenfone Max Pro M2",
120
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; ASUS_X01BDA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36",
121
+ "expect": {
122
+ "vendor": "ASUS",
123
+ "model": "X01BDA",
124
+ "type": "mobile"
125
+ }
126
+ },
127
+ {
128
+ "desc": "ASUS Zenfone Go",
129
+ "ua": "Mozilla/5.0 (Linux; Android 6.0; ASUS_X009DA Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36",
130
+ "expect": {
131
+ "vendor": "ASUS",
132
+ "model": "X009DA",
133
+ "type": "mobile"
134
+ }
135
+ },
28
136
  {
29
137
  "desc": "Acer Iconia A1-810",
30
138
  "ua": "Mozilla/5.0 (Linux; Android 4.2.2; A1-810 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Safari/537.36",
@@ -34,6 +142,42 @@
34
142
  "type": "tablet"
35
143
  }
36
144
  },
145
+ {
146
+ "desc": "BlackBerry Priv",
147
+ "ua": "User-Agent: Mozilla/5.0 (Linux; Android 5.1.1; STV100-1 Build/LMY47V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/46.0.2490.76 Mobile Safari/537.36",
148
+ "expect": {
149
+ "vendor": "BlackBerry",
150
+ "model": "STV100-1",
151
+ "type": "mobile"
152
+ }
153
+ },
154
+ {
155
+ "desc": "BlackBerry Keyone",
156
+ "ua": "Mozilla/5.0 (Linux; Android 8.1.0; BBB100-1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Mobile Safari/537.36",
157
+ "expect": {
158
+ "vendor": "BlackBerry",
159
+ "model": "BBB100-1",
160
+ "type": "mobile"
161
+ }
162
+ },
163
+ {
164
+ "desc": "BlackBerry Key2",
165
+ "ua": "Mozilla/5.0 (Linux; Android 8.1.0; BBF100-1 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36",
166
+ "expect": {
167
+ "vendor": "BlackBerry",
168
+ "model": "BBF100-1",
169
+ "type": "mobile"
170
+ }
171
+ },
172
+ {
173
+ "desc": "BlackBerry Key2 LE",
174
+ "ua": "User-Agent: Mozilla/5.0 (Linux; Android 8.1.0; BBE100-1 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497 Mobile Safari/537.36",
175
+ "expect": {
176
+ "vendor": "BlackBerry",
177
+ "model": "BBE100-1",
178
+ "type": "mobile"
179
+ }
180
+ },
37
181
  {
38
182
  "desc": "Desktop (IE11 with Tablet string)",
39
183
  "ua": "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; GWX:MANAGED; rv:11.0) like Gecko",
@@ -52,6 +196,15 @@
52
196
  "type": "mobile"
53
197
  }
54
198
  },
199
+ {
200
+ "desc": "Fairphone 1U",
201
+ "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; FP1U Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
202
+ "expect": {
203
+ "vendor": "Fairphone",
204
+ "model": "FP1U",
205
+ "type": "mobile"
206
+ }
207
+ },
55
208
  {
56
209
  "desc": "HTC Desire 820",
57
210
  "ua": "Mozilla/5.0 (Linux; Android 6.0.1; HTC Desire 820 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
@@ -65,8 +218,8 @@
65
218
  "desc": "HTC Evo Shift 4G",
66
219
  "ua": "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Sprint APA7373KT Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0",
67
220
  "expect": {
68
- "vendor": "HTC",
69
- "model": "Evo Shift 4G",
221
+ "vendor": "Sprint",
222
+ "model": "APA7373KT",
70
223
  "type": "mobile"
71
224
  }
72
225
  },
@@ -124,6 +277,24 @@
124
277
  "type": "tablet"
125
278
  }
126
279
  },
280
+ {
281
+ "desc": "iPad Air",
282
+ "ua": "Mozilla/5.0 (iPad; CPU OS 12_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPad4,1;FBMD/iPad;FBSN/iOS;FBSV/12.4.5;FBSS/2;FBID/tablet;FBLC/en_US;FBOP/5;FBCR/]",
283
+ "expect": {
284
+ "vendor": "Apple",
285
+ "model": "iPad",
286
+ "type": "tablet"
287
+ }
288
+ },
289
+ {
290
+ "desc": "iPad using Facebook Browser",
291
+ "ua": "Mozilla/5.0 (iPad; CPU OS 14_4_2 like Mac OS X) WebKit/8610 (KHTML, like Gecko) Mobile/18D70 [FBAN/FBIOS;FBDV/iPad7,11;FBMD/iPad;FBSN/iOS;FBSV/14.4.2;FBSS/2;FBID/tablet;FBLC/en_US;FBOP/5]",
292
+ "expect": {
293
+ "vendor": "Apple",
294
+ "model": "iPad",
295
+ "type": "tablet"
296
+ }
297
+ },
127
298
  {
128
299
  "desc": "iPod",
129
300
  "ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53",
@@ -142,6 +313,69 @@
142
313
  "type": "tablet"
143
314
  }
144
315
  },
316
+ {
317
+ "desc": "Lenovo Phone",
318
+ "ua": "Mozilla/5.0 (Linux; Android 6.0; Lenovo PB2-650M Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.105 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/311.0.0.44.117;]",
319
+ "expect": {
320
+ "vendor": "Lenovo",
321
+ "model": "PB2-650M",
322
+ "type": "mobile"
323
+ }
324
+ },
325
+ {
326
+ "desc": "Lenovo Tab 3 Pro",
327
+ "ua": "Mozilla/5.0 (Linux; Android 6.0.1; Lenovo YT3-X90F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
328
+ "expect": {
329
+ "vendor": "Lenovo",
330
+ "model": "YT3-X90F",
331
+ "type": "tablet"
332
+ }
333
+ },
334
+ {
335
+ "desc": "Lenovo Tab 4",
336
+ "ua": "Mozilla/5.0 (Linux; Android 7.1.1; Lenovo TB-X304F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
337
+ "expect": {
338
+ "vendor": "Lenovo",
339
+ "model": "TB-X304F",
340
+ "type": "tablet"
341
+ }
342
+ },
343
+ {
344
+ "desc": "Lenovo Tab 4",
345
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.2; Lenovo TAB 2 A7-30HC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
346
+ "expect": {
347
+ "vendor": "Lenovo",
348
+ "model": "TAB 2 A7",
349
+ "type": "tablet"
350
+ }
351
+ },
352
+ {
353
+ "desc": "Lenovo Tab 7 Essential",
354
+ "ua": "Mozilla/5.0 (Linux; Android 7.0; Lenovo TB-7304X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
355
+ "expect": {
356
+ "vendor": "Lenovo",
357
+ "model": "TB-7304X",
358
+ "type": "tablet"
359
+ }
360
+ },
361
+ {
362
+ "desc": "Lenovo Tab M10",
363
+ "ua": "Mozilla/5.0 (Linux; arm_64; Android 9; Lenovo TB-X606F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 YaBrowser/20.9.4.99.01 Safari/537.36",
364
+ "expect": {
365
+ "vendor": "Lenovo",
366
+ "model": "TB-X606F",
367
+ "type": "tablet"
368
+ }
369
+ },
370
+ {
371
+ "desc": "LG K500",
372
+ "ua": "Mozilla/5.0 (Linux; Android 6.0.1; LG-K500 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",
373
+ "expect": {
374
+ "vendor": "LG",
375
+ "model": "K500",
376
+ "type": "mobile"
377
+ }
378
+ },
145
379
  {
146
380
  "desc": "LG Nexus 4",
147
381
  "ua": "Mozilla/5.0 (Linux; Android 4.2.1; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
@@ -151,6 +385,15 @@
151
385
  "type": "mobile"
152
386
  }
153
387
  },
388
+ {
389
+ "desc": "LG Nexus 4",
390
+ "ua": "Mozilla/5.0 (Linux; U; Android 4.3; en-us; Google Nexus 4 - 4.3 - API 18 - 768x1280 Build/JLS36G) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
391
+ "expect": {
392
+ "vendor": "LG",
393
+ "model": "Nexus 4",
394
+ "type": "mobile"
395
+ }
396
+ },
154
397
  {
155
398
  "desc": "LG Nexus 5",
156
399
  "ua": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19",
@@ -160,6 +403,15 @@
160
403
  "type": "mobile"
161
404
  }
162
405
  },
406
+ {
407
+ "desc": "LG Wing",
408
+ "ua": "Mozilla/5.0 (Linux; Android 10; LM-F100N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.101 Mobile Safari/537.36",
409
+ "expect": {
410
+ "vendor": "LG",
411
+ "model": "LM-F100N",
412
+ "type": "mobile"
413
+ }
414
+ },
163
415
  {
164
416
  "desc": "LG Smart TV",
165
417
  "ua": "Mozilla/5.0 (DirectFB; U; Linux mips; en) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) LG Browser (; LG NetCast.TV-2011)",
@@ -196,6 +448,15 @@
196
448
  "type": "mobile"
197
449
  }
198
450
  },
451
+ {
452
+ "desc": "Microsoft Surface Duo",
453
+ "ua": "Dalvik/2.1.0 (Linux; U; Android 10; Surface Duo Build/2020.1014.61)",
454
+ "expect": {
455
+ "vendor": "Microsoft",
456
+ "model": "Surface Duo",
457
+ "type": "tablet"
458
+ }
459
+ },
199
460
  {
200
461
  "desc": "Motorola Moto X",
201
462
  "ua": "Mozilla/5.0 (Linux; Android 4.4.4; XT1097 Build/KXE21.187-38) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.109 Mobile Safari/537.36",
@@ -243,6 +504,15 @@
243
504
  "type": "mobile"
244
505
  }
245
506
  },
507
+ {
508
+ "desc": "Motorola RAZR 2019",
509
+ "ua": "Mozilla/5.0 (Linux; Android 9; motorola razr) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.1 Chrome/75.0.3770.143 Mobile Safari/537.36",
510
+ "expect": {
511
+ "vendor": "Motorola",
512
+ "model": "razr",
513
+ "type": "mobile"
514
+ }
515
+ },
246
516
  {
247
517
  "desc": "iPhone",
248
518
  "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53",
@@ -253,7 +523,43 @@
253
523
  }
254
524
  },
255
525
  {
256
- "desc": "Motorola Droid RAZR 4G",
526
+ "desc": "iPhone SE",
527
+ "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone8,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
528
+ "expect": {
529
+ "vendor": "Apple",
530
+ "model": "iPhone",
531
+ "type": "mobile"
532
+ }
533
+ },
534
+ {
535
+ "desc": "iPhone SE using Facebook App",
536
+ "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone8,4;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
537
+ "expect": {
538
+ "vendor": "Apple",
539
+ "model": "iPhone",
540
+ "type": "mobile"
541
+ }
542
+ },
543
+ {
544
+ "desc": "iPhone 11 Pro Max",
545
+ "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone12,5;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
546
+ "expect": {
547
+ "vendor": "Apple",
548
+ "model": "iPhone",
549
+ "type": "mobile"
550
+ }
551
+ },
552
+ {
553
+ "desc": "iPhone XS",
554
+ "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone11,2;FBMD/iPhone;FBSN/iOS;FBSV/13.3.1;FBSS/3;FBID/phone;FBLC/en_US;FBOP/5;FBCR/]",
555
+ "expect": {
556
+ "vendor": "Apple",
557
+ "model": "iPhone",
558
+ "type": "mobile"
559
+ }
560
+ },
561
+ {
562
+ "desc": "iPod touch",
257
563
  "ua": "Mozilla/5.0 (iPod touch; CPU iPhone OS 7_0_2 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A501 Safari/9537.53",
258
564
  "expect": {
259
565
  "vendor": "Apple",
@@ -270,6 +576,33 @@
270
576
  "type": "mobile"
271
577
  }
272
578
  },
579
+ {
580
+ "desc": "Motorola Moto g(6) Play",
581
+ "ua": "Mozilla/5.0 (Linux; Android 9; moto g(6) play) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
582
+ "expect": {
583
+ "vendor": "Motorola",
584
+ "model": "moto g(6) play",
585
+ "type": "mobile"
586
+ }
587
+ },
588
+ {
589
+ "desc": "Motorola Moto g(7) Supra",
590
+ "ua": "Mozilla/5.0 (Linux; Android 9; moto g(7) supra Build/PCOS29.114-134-2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/73.0.3683.90 Mobile Safari/537.36",
591
+ "expect": {
592
+ "vendor": "Motorola",
593
+ "model": "moto g(7) supra",
594
+ "type": "mobile"
595
+ }
596
+ },
597
+ {
598
+ "desc": "Motorola Moto E",
599
+ "ua": "Mozilla/5.0 (Linux; Android 7.1.1; Moto E (4) Build/NDQS26.69-64-11-7; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
600
+ "expect": {
601
+ "vendor": "Motorola",
602
+ "model": "Moto E (4)",
603
+ "type": "mobile"
604
+ }
605
+ },
273
606
  {
274
607
  "desc": "Nokia3xx",
275
608
  "ua": "Nokia303/14.87 CLDC-1.1",
@@ -279,6 +612,33 @@
279
612
  "type": "mobile"
280
613
  }
281
614
  },
615
+ {
616
+ "desc": "Nokia 3.2",
617
+ "ua": "Mozilla/5.0 (Linux; Android 10; Nokia 3.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36",
618
+ "expect": {
619
+ "vendor": "Nokia",
620
+ "model": "3.2",
621
+ "type": "mobile"
622
+ }
623
+ },
624
+ {
625
+ "desc": "Nokia N9",
626
+ "ua": "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
627
+ "expect": {
628
+ "vendor": "Nokia",
629
+ "model": "N9",
630
+ "type": "mobile"
631
+ }
632
+ },
633
+ {
634
+ "desc": "Nokia 2720 Flip",
635
+ "ua": "Mozilla/5.0 (Mobile; Nokia_2720_Flip; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5.2",
636
+ "expect": {
637
+ "vendor": "Nokia",
638
+ "model": "2720 Flip",
639
+ "type": "mobile"
640
+ }
641
+ },
282
642
  {
283
643
  "desc": "OnePlus One",
284
644
  "ua": "Mozilla/5.0 (Linux; Android 4.4.4; A0001 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36",
@@ -288,6 +648,15 @@
288
648
  "type": "mobile"
289
649
  }
290
650
  },
651
+ {
652
+ "desc": "OnePlus One",
653
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.2; OnePlus One A0001 Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36",
654
+ "expect": {
655
+ "vendor": "OnePlus",
656
+ "model": "1",
657
+ "type": "mobile"
658
+ }
659
+ },
291
660
  {
292
661
  "desc": "OnePlus 3",
293
662
  "ua": "Mozilla/5.0 (Linux; Android 7.1.1; ONEPLUS A3000 Build/NMF26F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36",
@@ -315,6 +684,51 @@
315
684
  "type": "mobile"
316
685
  }
317
686
  },
687
+ {
688
+ "desc": "OnePlus 8T",
689
+ "ua": "Mozilla/5.0 (Linux; Android 11; KB2005) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36",
690
+ "expect": {
691
+ "vendor": "OnePlus",
692
+ "model": "KB2005",
693
+ "type": "mobile"
694
+ }
695
+ },
696
+ {
697
+ "desc": "OnePlus 8 Pro",
698
+ "ua": "Mozilla/5.0 (Linux; Android 10; IN2025) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.119 Mobile Safari/537.36",
699
+ "expect": {
700
+ "vendor": "OnePlus",
701
+ "model": "IN2025",
702
+ "type": "mobile"
703
+ }
704
+ },
705
+ {
706
+ "desc": "OnePlus Nord N100",
707
+ "ua": "Mozilla/5.0 (Linux; Android 10; BE2015 Build/QKQ1.200719.002; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36",
708
+ "expect": {
709
+ "vendor": "OnePlus",
710
+ "model": "BE2015",
711
+ "type": "mobile"
712
+ }
713
+ },
714
+ {
715
+ "desc": "OnePlus Nord N10 5G",
716
+ "ua": "Mozilla/5.0 (Linux; Android 10; BE2029) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36",
717
+ "expect": {
718
+ "vendor": "OnePlus",
719
+ "model": "BE2029",
720
+ "type": "mobile"
721
+ }
722
+ },
723
+ {
724
+ "desc": "OPPO Neo",
725
+ "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; R831T Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 OppoBrowser/3.3.2 Mobile Safari/534.30",
726
+ "expect": {
727
+ "vendor": "OPPO",
728
+ "model": "R831T",
729
+ "type": "mobile"
730
+ }
731
+ },
318
732
  {
319
733
  "desc": "OPPO R7s",
320
734
  "ua": "Mozilla/5.0 (Linux; U; Android 4.4.4; zh-cn; OPPO R7s Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.1 Mobile Safari/537.36",
@@ -324,6 +738,105 @@
324
738
  "type": "mobile"
325
739
  }
326
740
  },
741
+ {
742
+ "desc": "OPPO A3s",
743
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; CPH1803 Build/OPM1.171019.026; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36",
744
+ "expect": {
745
+ "vendor": "OPPO",
746
+ "model": "CPH1803",
747
+ "type": "mobile"
748
+ }
749
+ },
750
+ {
751
+ "desc": "OPPO A12",
752
+ "ua": "Mozilla/5.0 (Linux; Android 9; CPH2083) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
753
+ "expect": {
754
+ "vendor": "OPPO",
755
+ "model": "CPH2083",
756
+ "type": "mobile"
757
+ }
758
+ },
759
+ {
760
+ "desc": "OPPO Reno",
761
+ "ua": "Mozilla/5.0 (Linux; Android 9; PCAT00 Build/PKQ1.190101.001; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36",
762
+ "expect": {
763
+ "vendor": "OPPO",
764
+ "model": "PCAT00",
765
+ "type": "mobile"
766
+ }
767
+ },
768
+ {
769
+ "desc": "OPPO Reno3 Pro 5G",
770
+ "ua": "Mozilla/5.0 (Linux; Android 10; PCLM50) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.117 Mobile Safari/537.36",
771
+ "expect": {
772
+ "vendor": "OPPO",
773
+ "model": "PCLM50",
774
+ "type": "mobile"
775
+ }
776
+ },
777
+ {
778
+ "desc": "OPPO Reno4 SE",
779
+ "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; PEAM00 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
780
+ "expect": {
781
+ "vendor": "OPPO",
782
+ "model": "PEAM00",
783
+ "type": "mobile"
784
+ }
785
+ },
786
+ {
787
+ "desc": "OPPO Reno4 5G",
788
+ "ua": "Mozilla/5.0 (Linux; Android 10; PDPM00 Build/QKQ1.200216.002; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36",
789
+ "expect": {
790
+ "vendor": "OPPO",
791
+ "model": "PDPM00",
792
+ "type": "mobile"
793
+ }
794
+ },
795
+ {
796
+ "desc": "OPPO Reno4 Pro 5G",
797
+ "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; PDNT00 Build/QKQ1.200216.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
798
+ "expect": {
799
+ "vendor": "OPPO",
800
+ "model": "PDNT00",
801
+ "type": "mobile"
802
+ }
803
+ },
804
+ {
805
+ "desc": "OPPO Find X",
806
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; PAFM00 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
807
+ "expect": {
808
+ "vendor": "OPPO",
809
+ "model": "PAFM00",
810
+ "type": "mobile"
811
+ }
812
+ },
813
+ {
814
+ "desc": "OPPO Find 7a",
815
+ "ua": "Mozilla/5.0 (Linux; U; Android 4.3; xx-xx; X9007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
816
+ "expect": {
817
+ "vendor": "OPPO",
818
+ "model": "X9007",
819
+ "type": "mobile"
820
+ }
821
+ },
822
+ {
823
+ "desc": "Realme C1",
824
+ "ua": "Mozilla/5.0 (Linux; Android 8.1; RMX1811 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.126 Mobile Safari/537.36",
825
+ "expect": {
826
+ "vendor": "Realme",
827
+ "model": "RMX1811",
828
+ "type": "mobile"
829
+ }
830
+ },
831
+ {
832
+ "desc": "Realme Narzo 20",
833
+ "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; RMX2193 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
834
+ "expect": {
835
+ "vendor": "Realme",
836
+ "model": "RMX2193",
837
+ "type": "mobile"
838
+ }
839
+ },
327
840
  {
328
841
  "desc": "Philips SmartTV",
329
842
  "ua": "Opera/9.80 HbbTV/1.1.1 (; Philips; ; ; ; ) NETTV/4.0.2; en) Version/11.60",
@@ -352,12 +865,84 @@
352
865
  }
353
866
  },
354
867
  {
355
- "desc": "Samsung Galaxy Note 8",
356
- "ua": "Mozilla/5.0 (Linux; Android 4.2.2; GT-N5100 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36",
868
+ "desc": "Samsung Galaxy A21s",
869
+ "ua": "Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-A217F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/11.0 Chrome/75.0.3770.143 Mobile Safari/537.36",
357
870
  "expect": {
358
871
  "vendor": "Samsung",
359
- "model": "GT-N5100",
360
- "type": "tablet"
872
+ "model": "SM-A217F",
873
+ "type": "mobile"
874
+ }
875
+ },
876
+ {
877
+ "desc": "Samsung Galaxy A31",
878
+ "ua": "Mozilla/5.0 (Linux; Android 10; SM-A315G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
879
+ "expect": {
880
+ "vendor": "Samsung",
881
+ "model": "SM-A315G",
882
+ "type": "mobile"
883
+ }
884
+ },
885
+ {
886
+ "desc": "Samsung Galaxy A50",
887
+ "ua": "Mozilla/5.0 (Linux; Android 9; SM-A505F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.105 Mobile Safari/537.36",
888
+ "expect": {
889
+ "vendor": "Samsung",
890
+ "model": "SM-A505F",
891
+ "type": "mobile"
892
+ }
893
+ },
894
+ {
895
+ "desc": "Samsung Galaxy A80",
896
+ "ua": "Mozilla/5.0 (Linux; Android 9; SM-A805F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.112 Mobile Safari/537.36",
897
+ "expect": {
898
+ "vendor": "Samsung",
899
+ "model": "SM-A805F",
900
+ "type": "mobile"
901
+ }
902
+ },
903
+ {
904
+ "desc": "Samsung Galaxy Fold",
905
+ "ua": "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-F900U Build/PPR1.180610.011) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/9.2 Chrome/67.0.3396.87 Mobile Safari/537.36",
906
+ "expect": {
907
+ "vendor": "Samsung",
908
+ "model": "SM-F900U",
909
+ "type": "mobile"
910
+ }
911
+ },
912
+ {
913
+ "desc": "Samsung Galaxy Z Flip",
914
+ "ua": "Mozilla/5.0 (Linux; Android 10; SM-F700N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
915
+ "expect": {
916
+ "vendor": "Samsung",
917
+ "model": "SM-F700N",
918
+ "type": "mobile"
919
+ }
920
+ },
921
+ {
922
+ "desc": "Samsung Galaxy Z Fold2",
923
+ "ua": "Mozilla/5.0 (Linux; Android 10; SM-F916B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
924
+ "expect": {
925
+ "vendor": "Samsung",
926
+ "model": "SM-F916B",
927
+ "type": "mobile"
928
+ }
929
+ },
930
+ {
931
+ "desc": "Samsung Galaxy S10E",
932
+ "ua": "Mozilla/5.0 (Linux; Android 9; SM-G970F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
933
+ "expect": {
934
+ "vendor": "Samsung",
935
+ "model": "SM-G970F",
936
+ "type": "mobile"
937
+ }
938
+ },
939
+ {
940
+ "desc": "Samsung Galaxy Note 10+",
941
+ "ua": "Mozilla/5.0 (Linux; Android 9; SM-N976V) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.89 Mobile Safari/537.36",
942
+ "expect": {
943
+ "vendor": "Samsung",
944
+ "model": "SM-N976V",
945
+ "type": "mobile"
361
946
  }
362
947
  },
363
948
  {
@@ -369,6 +954,15 @@
369
954
  "type": "mobile"
370
955
  }
371
956
  },
957
+ {
958
+ "desc": "Samsung Galaxy Note 8",
959
+ "ua": "Mozilla/5.0 (Linux; Android 4.2.2; GT-N5100 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.141 Safari/537.36",
960
+ "expect": {
961
+ "vendor": "Samsung",
962
+ "model": "GT-N5100",
963
+ "type": "tablet"
964
+ }
965
+ },
372
966
  {
373
967
  "desc": "Samsung SM-T231",
374
968
  "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T231 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
@@ -388,30 +982,48 @@
388
982
  }
389
983
  },
390
984
  {
391
- "desc": "Samsung SM-T700",
392
- "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T700 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
985
+ "desc": "Samsung Galaxy Tab A 9.7",
986
+ "ua": "Mozilla/5.0 (Linux; Android 7.1.1; SM-P550 Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.90 Safari/537.36",
393
987
  "expect": {
394
988
  "vendor": "Samsung",
395
- "model": "SM-T700",
989
+ "model": "SM-P550",
396
990
  "type": "tablet"
397
991
  }
398
992
  },
399
993
  {
400
- "desc": "Samsung SM-T520",
401
- "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T520 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
994
+ "desc": "Samsung Galaxy Tab A 10.1",
995
+ "ua": " Mozilla/5.0 (Linux; Android 10; SAMSUNG SM-T515) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/13.0 Chrome/83.0.4103.106 Safari/537.36",
402
996
  "expect": {
403
997
  "vendor": "Samsung",
404
- "model": "SM-T520",
998
+ "model": "SM-T515",
405
999
  "type": "tablet"
406
1000
  }
407
1001
  },
408
1002
  {
409
- "desc": "Samsung SmartTV2011",
410
- "ua": "HbbTV/1.1.1 (;;;;;) Maple;2011",
1003
+ "desc": "Samsung Galaxy Tab S7",
1004
+ "ua": "Mozilla/5.0 (Linux; Android 10; SM-T870) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
411
1005
  "expect": {
412
1006
  "vendor": "Samsung",
413
- "model": "SmartTV2011",
414
- "type": "smarttv"
1007
+ "model": "SM-T870",
1008
+ "type": "tablet"
1009
+ }
1010
+ },
1011
+ {
1012
+ "desc": "Samsung Galaxy Tab S",
1013
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T700 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
1014
+ "expect": {
1015
+ "vendor": "Samsung",
1016
+ "model": "SM-T700",
1017
+ "type": "tablet"
1018
+ }
1019
+ },
1020
+ {
1021
+ "desc": "Samsung Galaxy Tab Pro 10.1",
1022
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.2; SM-T520 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Safari/537.36",
1023
+ "expect": {
1024
+ "vendor": "Samsung",
1025
+ "model": "SM-T520",
1026
+ "type": "tablet"
415
1027
  }
416
1028
  },
417
1029
  {
@@ -423,6 +1035,15 @@
423
1035
  "type": "tablet"
424
1036
  }
425
1037
  },
1038
+ {
1039
+ "desc": "Samsung SmartTV2011",
1040
+ "ua": "HbbTV/1.1.1 (;;;;;) Maple;2011",
1041
+ "expect": {
1042
+ "vendor": "Samsung",
1043
+ "model": "SmartTV2011",
1044
+ "type": "smarttv"
1045
+ }
1046
+ },
426
1047
  {
427
1048
  "desc": "Samsung SmartTV2012",
428
1049
  "ua": "HbbTV/1.1.1 (;Samsung;SmartTV2012;;;) WebKit",
@@ -513,6 +1134,42 @@
513
1134
  "type": "mobile"
514
1135
  }
515
1136
  },
1137
+ {
1138
+ "desc": "Sony Xperia L4",
1139
+ "ua": "Mozilla/5.0 (Linux; Android 9; XQ-AD51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 Mobile Safari/537.36",
1140
+ "expect": {
1141
+ "vendor": "Sony",
1142
+ "model": "XQ-AD51",
1143
+ "type": "mobile"
1144
+ }
1145
+ },
1146
+ {
1147
+ "desc": "Sony Xperia 1ii",
1148
+ "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AT51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Mobile Safari/537.36",
1149
+ "expect": {
1150
+ "vendor": "Sony",
1151
+ "model": "XQ-AT51",
1152
+ "type": "mobile"
1153
+ }
1154
+ },
1155
+ {
1156
+ "desc": "Sony Xperia 10ii",
1157
+ "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AU52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36",
1158
+ "expect": {
1159
+ "vendor": "Sony",
1160
+ "model": "XQ-AU52",
1161
+ "type": "mobile"
1162
+ }
1163
+ },
1164
+ {
1165
+ "desc": "Sony Xperia Pro",
1166
+ "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AQ52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36",
1167
+ "expect": {
1168
+ "vendor": "Sony",
1169
+ "model": "XQ-AQ52",
1170
+ "type": "mobile"
1171
+ }
1172
+ },
516
1173
  {
517
1174
  "desc": "Sony SGP521 (Xperia Z2 Tablet)",
518
1175
  "ua": "Mozilla/5.0 (Linux; Android 4.4; SGP521 Build/17.1.A.0.432) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",
@@ -522,6 +1179,15 @@
522
1179
  "type": "tablet"
523
1180
  }
524
1181
  },
1182
+ {
1183
+ "desc": "Sony Xperia Z2 Tablet",
1184
+ "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SGP561) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.99 Safari/537.36",
1185
+ "expect": {
1186
+ "vendor": "Sony",
1187
+ "model": "Xperia Tablet",
1188
+ "type": "tablet"
1189
+ }
1190
+ },
525
1191
  {
526
1192
  "desc": "Sony Tablet S",
527
1193
  "ua": "Mozilla/5.0 (Linux; U; Android 3.1; Sony Tablet S Build/THMAS10000) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
@@ -532,12 +1198,32 @@
532
1198
  }
533
1199
  },
534
1200
  {
535
- "desc": "Sony Tablet Z LTE",
536
- "ua": "Mozilla/5.0 (Linux; U; Android 4.1; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
537
- "expect": {
538
- "vendor": "Sony",
539
- "model": "Xperia Tablet",
540
- "type": "tablet"
1201
+ "desc": "Sony Tablet Z LTE",
1202
+ "ua": "Mozilla/5.0 (Linux; U; Android 4.1; SonySGP321 Build/10.2.C.0.143) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
1203
+ "expect": {
1204
+ "vendor": "Sony",
1205
+ "model": "Xperia Tablet",
1206
+ "type": "tablet"
1207
+ }
1208
+ },
1209
+ {
1210
+ "desc" : "Tesla",
1211
+ "ua" : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Tesla QtCarBrowser Safari/601.1",
1212
+ "expect" :
1213
+ {
1214
+ "vendor": "Tesla",
1215
+ "model": "undefined",
1216
+ "type": "embedded"
1217
+ }
1218
+ },
1219
+ {
1220
+ "desc" : "Tesla",
1221
+ "ua" : "Mozilla/5.0 (X11; GNU/Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chromium/79.0.3945.130 Chrome/79.0.3945.130 Safari/537.36 Tesla/2020.16.2.1-e99c70fff409",
1222
+ "expect" :
1223
+ {
1224
+ "vendor": "Tesla",
1225
+ "model": "undefined",
1226
+ "type": "embedded"
541
1227
  }
542
1228
  },
543
1229
  {
@@ -639,6 +1325,15 @@
639
1325
  "type": "tablet"
640
1326
  }
641
1327
  },
1328
+ {
1329
+ "desc": "Xiaomi POCO X2",
1330
+ "ua": "Mozilla/5.0 (Linux; Android 10; POCO X2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
1331
+ "expect": {
1332
+ "vendor": "Xiaomi",
1333
+ "model": "POCO X2",
1334
+ "type": "mobile"
1335
+ }
1336
+ },
642
1337
  {
643
1338
  "desc": "Xiaomi Redmi 4A",
644
1339
  "ua": "Mozilla/5.0 (Linux; Android 6.0; Redmi 4A Build/MMB29M; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/56.0.2924.87 Mobile Safari/537.36",
@@ -693,6 +1388,69 @@
693
1388
  "type": "console"
694
1389
  }
695
1390
  },
1391
+ {
1392
+ "desc": "PlayStation 5",
1393
+ "ua": "Mozilla/5.0 (Playstation; Playstation 5/1.05) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15",
1394
+ "expect": {
1395
+ "vendor": "Sony",
1396
+ "model": "Playstation 5",
1397
+ "type": "console"
1398
+ }
1399
+ },
1400
+ {
1401
+ "desc": "PlayStation Vita",
1402
+ "ua": "Mozilla/5.0 (PlayStation Vita 3.52) AppleWebKit/537.73 (KHTML, like Gecko) Silk/3.2",
1403
+ "expect": {
1404
+ "vendor": "Sony",
1405
+ "model": "PlayStation Vita",
1406
+ "type": "console"
1407
+ }
1408
+ },
1409
+ {
1410
+ "desc": "Nintendo Switch",
1411
+ "ua": "Mozilla/5.0 (Nintendo Switch; WifiWebAuthApplet) AppleWebKit/606.4 (KHTML, like Gecko) NF/6.0.1.15.4 NintendoBrowser/5.1.0.20393",
1412
+ "expect": {
1413
+ "vendor": "Nintendo",
1414
+ "model": "Switch",
1415
+ "type": "console"
1416
+ }
1417
+ },
1418
+ {
1419
+ "desc": "Nintendo WiiU",
1420
+ "ua": "Mozilla/5.0 (Nintendo WiiU) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.4.2.9 NintendoBrowser/4.2.0.11146.EU",
1421
+ "expect": {
1422
+ "vendor": "Nintendo",
1423
+ "model": "WiiU",
1424
+ "type": "console"
1425
+ }
1426
+ },
1427
+ {
1428
+ "desc": "Nintendo Wii",
1429
+ "ua": "Opera/9.10 (Nintendo Wii; U; ; 1621; en)",
1430
+ "expect": {
1431
+ "vendor": "Nintendo",
1432
+ "model": "Wii",
1433
+ "type": "console"
1434
+ }
1435
+ },
1436
+ {
1437
+ "desc": "Nintendo 3DS",
1438
+ "ua": "Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7610.EU",
1439
+ "expect": {
1440
+ "vendor": "Nintendo",
1441
+ "model": "3DS",
1442
+ "type": "console"
1443
+ }
1444
+ },
1445
+ {
1446
+ "desc": "Nintendo 3DS",
1447
+ "ua": "Mozilla/5.0 (New Nintendo 3DS like iPhone) AppleWebKit/536.30 (KHTML, like Gecko) NX/3.0.0.5.15 Mobile NintendoBrowser/1.3.10126.EU",
1448
+ "expect": {
1449
+ "vendor": "Nintendo",
1450
+ "model": "3DS",
1451
+ "type": "console"
1452
+ }
1453
+ },
696
1454
  {
697
1455
  "desc": "Galaxy Nexus",
698
1456
  "ua": "Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19",
@@ -891,6 +1649,15 @@
891
1649
  "type": "mobile"
892
1650
  }
893
1651
  },
1652
+ {
1653
+ "desc": "Google Pixel 4a",
1654
+ "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.83 Mobile Safari/537.36",
1655
+ "expect": {
1656
+ "vendor": "Google",
1657
+ "model": "Pixel 4a",
1658
+ "type": "mobile"
1659
+ }
1660
+ },
894
1661
  {
895
1662
  "desc": "Google Pixel 4 XL",
896
1663
  "ua": "Mozilla/5.0 (Linux; Android 10; Pixel 4 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
@@ -900,6 +1667,15 @@
900
1667
  "type": "mobile"
901
1668
  }
902
1669
  },
1670
+ {
1671
+ "desc": "Google Pixel 5",
1672
+ "ua": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.120 Mobile Safari/537.36",
1673
+ "expect": {
1674
+ "vendor": "Google",
1675
+ "model": "Pixel 5",
1676
+ "type": "mobile"
1677
+ }
1678
+ },
903
1679
  {
904
1680
  "desc": "Generic Android Device",
905
1681
  "ua": "Mozilla/5.0 (Linux; U; Android 6.0.1; i980 Build/MRA58K)",
@@ -1048,6 +1824,24 @@
1048
1824
  "type": "tablet"
1049
1825
  }
1050
1826
  },
1827
+ {
1828
+ "desc": "ZTE-Z431",
1829
+ "ua": "ZTE-Z431/1.4.0 NetFront/4.2 QTV5.1 Profile/MIDP-2.1 Configuration/CLDC-1.1",
1830
+ "expect": {
1831
+ "vendor": "ZTE",
1832
+ "model": "Z431",
1833
+ "type": "mobile"
1834
+ }
1835
+ },
1836
+ {
1837
+ "desc": "ZTE",
1838
+ "ua": "Mozilla/5.0 (Linux; U; Android 4.1.2; en-us; ZTE-Z740G Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
1839
+ "expect": {
1840
+ "vendor": "ZTE",
1841
+ "model": "Z740G",
1842
+ "type": "mobile"
1843
+ }
1844
+ },
1051
1845
  {
1052
1846
  "desc": "ZTE K Series Tablet",
1053
1847
  "ua": "Mozilla/5.0 (Linux; Android 6.0.1; K88 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
@@ -1057,6 +1851,15 @@
1057
1851
  "type": "tablet"
1058
1852
  }
1059
1853
  },
1854
+ {
1855
+ "desc": "ZTE Nubia Red Magic 3",
1856
+ "ua": "Mozilla/5.0 (Linux; Android 9; NX629J Build/PKQ1.190321.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 MQQBrowser/6.2 TBS/45016 Mobile Safari/537.36 MMWEBID/4064 MicroMessenger/7.0.10.1580(0x27000A34) Process/tools NetType/WIFI Language/zh_CN ABI/arm64",
1857
+ "expect": {
1858
+ "vendor": "ZTE",
1859
+ "model": "NX629J",
1860
+ "type": "mobile"
1861
+ }
1862
+ },
1060
1863
  {
1061
1864
  "desc": "Swizz GEN610",
1062
1865
  "ua": "Mozilla/5.0 (Linux; Android 4.4.2; GEN610 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36",
@@ -1192,6 +1995,15 @@
1192
1995
  "type": "tablet"
1193
1996
  }
1194
1997
  },
1998
+ {
1999
+ "desc": "Amazon Alexa Echo Show",
2000
+ "ua": "AlexaWebMediaPlayer/1.0.200641.0 (Linux;Android 5.1.1)",
2001
+ "expect": {
2002
+ "vendor": "Amazon",
2003
+ "model": "Alexa",
2004
+ "type": "tablet"
2005
+ }
2006
+ },
1195
2007
  {
1196
2008
  "desc": "Amazon Kindle Fire Tablet",
1197
2009
  "ua": "Mozilla/5.0 (Linux; U; Android 4.4.3; en-us; KFSAWI Build/KTU84M) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.66 like Chrome/39.0.2171.93 Safari/537.36",
@@ -1210,6 +2022,15 @@
1210
2022
  "type": "tablet"
1211
2023
  }
1212
2024
  },
2025
+ {
2026
+ "desc": "Amazon Kindle Fire Tablet",
2027
+ "ua": "Mozilla/5.0 (Linux; Android 9; KFMAWI Build/PS7312; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Safari/537.36",
2028
+ "expect": {
2029
+ "vendor": "Amazon",
2030
+ "model": "KFMAWI",
2031
+ "type": "tablet"
2032
+ }
2033
+ },
1213
2034
  {
1214
2035
  "desc": "Amazon Fire TV",
1215
2036
  "ua": "Mozilla/5.0 (Linux; Android 4.2.2; AFTB Build/JDQ39) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.173 Mobile Safari/537.22",
@@ -1228,6 +2049,15 @@
1228
2049
  "type": "smarttv"
1229
2050
  }
1230
2051
  },
2052
+ {
2053
+ "desc": "Android TV",
2054
+ "ua": "Mozilla/5.0 (Linux; Android 10; 2020/2021 UHD Android TV Build/QTG3.201102.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) version/4.0 Chrome/83.0.4103.101 Mobile Safari/537.36",
2055
+ "expect": {
2056
+ "vendor": "undefined",
2057
+ "model": "undefined",
2058
+ "type": "smarttv"
2059
+ }
2060
+ },
1231
2061
  {
1232
2062
  "desc": "Gigaset Tablet",
1233
2063
  "ua": "Mozilla/5.0 (Linux; Android 4.2.2; Gigaset QV830 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
@@ -1247,14 +2077,113 @@
1247
2077
  }
1248
2078
  },
1249
2079
  {
1250
- "desc": "Huawei P30 Pro",
1251
- "ua": "Mozilla/5.0 (Linux; Android 9; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
2080
+ "desc": "HUAWEI MediaPad M5 Lite",
2081
+ "ua": "Mozilla/5.0 (Linux; Android 8.0.0; BAH2-W19 Build/HUAWEIBAH2-W19; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Safari/537.36",
2082
+ "expect": {
2083
+ "vendor": "Huawei",
2084
+ "model": "BAH2-W19",
2085
+ "type": "tablet"
2086
+ }
2087
+ },
2088
+ {
2089
+ "desc": "HUAWEI MediaPad M5",
2090
+ "ua": "Mozilla/5.0 (Linux; Android 9; SHT-AL09 Build/HUAWEISHT-AL09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.90 Mobile Safari/537.36",
2091
+ "expect": {
2092
+ "vendor": "Huawei",
2093
+ "model": "SHT-AL09",
2094
+ "type": "tablet"
2095
+ }
2096
+ },
2097
+ {
2098
+ "desc": "HUAWEI MediaPad T5",
2099
+ "ua": "Mozilla/5.0 (Linux; Android 8.0.0; AGS2-L09 Build/HUAWEIAGS2-L09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/84.0.4147.125 Safari/537.36",
2100
+ "expect": {
2101
+ "vendor": "Huawei",
2102
+ "model": "AGS2-L09",
2103
+ "type": "tablet"
2104
+ }
2105
+ },
2106
+ {
2107
+ "desc": "HUAWEI MediaPad T10",
2108
+ "ua": "Mozilla/5.0 (Linux; Android 10; AGR-W09 Build/HUAWEIAGR-W09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Safari/537.36",
2109
+ "expect": {
2110
+ "vendor": "Huawei",
2111
+ "model": "AGR-W09",
2112
+ "type": "tablet"
2113
+ }
2114
+ },
2115
+ {
2116
+ "desc": "HUAWEI MediaPad T10s",
2117
+ "ua": "Mozilla/5.0 (Linux; Android 10; AGS3-W09 Build/HUAWEIAGS3-W09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Safari/537.36",
2118
+ "expect": {
2119
+ "vendor": "Huawei",
2120
+ "model": "AGS3-W09",
2121
+ "type": "tablet"
2122
+ }
2123
+ },
2124
+ {
2125
+ "desc": "Huawei MatePad T 10",
2126
+ "ua": "Mozilla/5.0 (Linux; Android 10; AGR-L09; HMSCore 5.0.4.301) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 HuaweiBrowser/11.0.3.304 Safari/537.36",
2127
+ "expect": {
2128
+ "vendor": "Huawei",
2129
+ "model": "AGR-L09",
2130
+ "type": "tablet"
2131
+ }
2132
+ },
2133
+ {
2134
+ "desc": "Huawei Mate 10 Pro",
2135
+ "ua": "Mozilla/5.0 (Linux; Android 8.0; BLA-L29 Build/HUAWEIBLA-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3236.6 Mobile Safari/537.36",
2136
+ "expect": {
2137
+ "vendor": "Huawei",
2138
+ "model": "BLA-L29",
2139
+ "type": "mobile"
2140
+ }
2141
+ },
2142
+ {
2143
+ "desc": "Huawei Mate X",
2144
+ "ua": "Mozilla/5.0 (Linux; Android 9; TAH-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Safari/537.36",
2145
+ "expect": {
2146
+ "vendor": "Huawei",
2147
+ "model": "TAH-AN00",
2148
+ "type": "mobile"
2149
+ }
2150
+ },
2151
+ {
2152
+ "desc": "Huawei Mate X2",
2153
+ "ua": "Mozilla/5.0 (Linux; Android 10; TET-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
1252
2154
  "expect": {
1253
2155
  "vendor": "Huawei",
1254
- "model": "VOG-L29",
2156
+ "model": "TET-AN00",
1255
2157
  "type": "mobile"
1256
2158
  }
1257
2159
  },
2160
+ {
2161
+ "desc": "Huawei Mate 20 X",
2162
+ "ua": "Mozilla/5.0 (Linux; Android 9; EVR-L29 Build/HUAWEIEVR-L29; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36",
2163
+ "expect": {
2164
+ "vendor": "Huawei",
2165
+ "model": "EVR-L29",
2166
+ "type": "mobile"
2167
+ }
2168
+ },
2169
+ {
2170
+ "desc": "Huawei Mate 20 Pro",
2171
+ "ua": "Mozilla/5.0 (Linux; Android 9; LYA-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2172
+ "expect": {
2173
+ "vendor": "Huawei",
2174
+ "model": "LYA-L09",
2175
+ "type": "mobile"
2176
+ }
2177
+ },
2178
+ {
2179
+ "desc": "Huawei Mate 20 Pro",
2180
+ "ua": "Mozilla/5.0 (Linux; Android 9; LYA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2181
+ "expect": {
2182
+ "vendor": "Huawei",
2183
+ "model": "LYA-AL00",
2184
+ "type": "mobile"
2185
+ }
2186
+ },
1258
2187
  {
1259
2188
  "desc": "Huawei P20 Lite",
1260
2189
  "ua": "Mozilla/5.0 (Linux; Android 8.0.0; ANE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
@@ -1283,64 +2212,235 @@
1283
2212
  }
1284
2213
  },
1285
2214
  {
1286
- "desc": "Huawei Mate 20 Pro",
1287
- "ua": "Mozilla/5.0 (Linux; Android 9; LYA-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2215
+ "desc": "Huawei P30",
2216
+ "ua": "Mozilla/5.0 (Linux; Android 9; ELE-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
2217
+ "expect": {
2218
+ "vendor": "Huawei",
2219
+ "model": "ELE-L29",
2220
+ "type": "mobile"
2221
+ }
2222
+ },
2223
+ {
2224
+ "desc": "Huawei P30 Pro",
2225
+ "ua": "Mozilla/5.0 (Linux; Android 9; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
2226
+ "expect": {
2227
+ "vendor": "Huawei",
2228
+ "model": "VOG-L29",
2229
+ "type": "mobile"
2230
+ }
2231
+ },
2232
+ {
2233
+ "desc": "Huawei P40",
2234
+ "ua": "Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.26 SP-engine/2.22.0 baiduboxapp/11.26.0.10 (Baidu; P1 10) NABar/1.0",
1288
2235
  "expect": {
1289
2236
  "vendor": "Huawei",
1290
- "model": "LYA-L09",
2237
+ "model": "ANA-AN00",
1291
2238
  "type": "mobile"
1292
2239
  }
1293
2240
  },
1294
2241
  {
1295
- "desc": "Huawei Mate 20 Pro",
1296
- "ua": "Mozilla/5.0 (Linux; Android 9; LYA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2242
+ "desc": "Huawei P40 Pro",
2243
+ "ua": "Mozilla/5.0 (Linux; Android 10; ELS-AN00 Build/HUAWEIELS-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/6.0.0",
1297
2244
  "expect": {
1298
2245
  "vendor": "Huawei",
1299
- "model": "LYA-AL00",
2246
+ "model": "ELS-AN00",
1300
2247
  "type": "mobile"
1301
2248
  }
1302
2249
  },
1303
2250
  {
1304
- "desc": "Huawei Mate 20 Pro",
1305
- "ua": "Mozilla/5.0 (Linux; Android 9; LYA-AL10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2251
+ "desc": "Huawei 30 Pro+",
2252
+ "ua": "Mozilla/5.0 (Linux; Android 10; EBG-AN10 Build/HUAWEIEBG-AN10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36 EdgA/42.0.0.2741",
1306
2253
  "expect": {
1307
2254
  "vendor": "Huawei",
1308
- "model": "LYA-AL10",
2255
+ "model": "EBG-AN10",
1309
2256
  "type": "mobile"
1310
2257
  }
1311
2258
  },
1312
2259
  {
1313
- "desc": "Huawei Mate 20 Pro",
1314
- "ua": "Mozilla/5.0 (Linux; Android 9; LYA-L0C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2260
+ "desc": "Huawei 30S",
2261
+ "ua": "Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/5.8.0",
1315
2262
  "expect": {
1316
2263
  "vendor": "Huawei",
1317
- "model": "LYA-L0C",
2264
+ "model": "CDY-AN90",
1318
2265
  "type": "mobile"
1319
2266
  }
1320
2267
  },
1321
2268
  {
1322
- "desc": "Huawei Mate 20 Pro",
1323
- "ua": "Mozilla/5.0 (Linux; Android 9; LYA-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2269
+ "desc": "Huawei Enjoy10e",
2270
+ "ua": "Dalvik/2.1.0 (Linux; U; Android 10; MED-AL00 Build/HUAWEIMED-AL00)",
1324
2271
  "expect": {
1325
2272
  "vendor": "Huawei",
1326
- "model": "LYA-L29",
2273
+ "model": "MED-AL00",
1327
2274
  "type": "mobile"
1328
2275
  }
1329
2276
  },
1330
2277
  {
1331
- "desc": "Huawei Mate 20 Pro",
1332
- "ua": "Mozilla/5.0 (Linux; Android 9; LYA-TL00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
2278
+ "desc": "Amazon Fire 7",
2279
+ "ua": "Mozilla/5.0 (Linux; Android 5.1.1; KFAUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/80.5.3 like Chrome/80.0.3987.162 Safari/537.36",
1333
2280
  "expect": {
1334
- "vendor": "Huawei",
1335
- "model": "LYA-TL00",
2281
+ "vendor": "Amazon",
2282
+ "model": "KFAUWI",
2283
+ "type": "tablet"
2284
+ }
2285
+ },
2286
+ {
2287
+ "desc": "AT&T Radiant Core U304AA",
2288
+ "ua": "Dalvik/2.1.0 (Linux; U; Android 9; U304AA Build/P00610)",
2289
+ "expect": {
2290
+ "vendor": "AT&T",
2291
+ "model": "U304AA",
1336
2292
  "type": "mobile"
1337
2293
  }
1338
2294
  },
2295
+ {
2296
+ "desc": "Vodafone Smart Tab 4G",
2297
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.4; Vodafone Smart Tab 4G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
2298
+ "expect": {
2299
+ "vendor": "Vodafone",
2300
+ "model": "Smart Tab 4G",
2301
+ "type": "tablet"
2302
+ }
2303
+ },
2304
+ {
2305
+ "desc": "Vodafone Smart ultra 6",
2306
+ "ua": "Mozilla/5.0 (Linux; Android 5.0.2; Vodafone Smart ultra 6 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
2307
+ "expect": {
2308
+ "vendor": "Vodafone",
2309
+ "model": "Smart ultra 6",
2310
+ "type": "tablet"
2311
+ }
2312
+ },
2313
+ {
2314
+ "desc": "4ife 4K Smart TV Box",
2315
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.2; 4ife 4K Smart TV Box Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36 Vinebre",
2316
+ "expect": {
2317
+ "vendor": "undefined",
2318
+ "model": "undefined",
2319
+ "type": "smarttv"
2320
+ }
2321
+ },
1339
2322
  {
1340
2323
  "desc": "FaceBook Mobile App",
1341
2324
  "ua": "[FBAN/FBIOS;FBAV/283.0.0.44.117;FBBV/238386386;FBDV/iPhone12,1;FBMD/iPhone;FBSN/iOS;FBSV/13.6.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/240127608]",
1342
2325
  "expect": {
1343
2326
  "type": "mobile"
1344
2327
  }
2328
+ },
2329
+ {
2330
+ "desc": "Issue #454",
2331
+ "ua": "Mosamzilla/5.0 (Windows; U; Win98; en-US; rv:1.7.5) Gecko/20050603 Netscape/8.0.2",
2332
+ "expect": {
2333
+ "vendor": "undefined",
2334
+ "model": "undefined",
2335
+ "type": "undefined"
2336
+ }
2337
+ },
2338
+ {
2339
+ "desc": "Alcatel",
2340
+ "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ALCATEL A564C Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
2341
+ "expect": {
2342
+ "vendor": "ALCATEL",
2343
+ "model": "A564C",
2344
+ "type": "mobile"
2345
+ }
2346
+ },
2347
+ {
2348
+ "desc": "Alcatel Go Flip",
2349
+ "ua": "Mozilla/5.0 (Mobile; ALCATEL4044T; rv:37.0) Gecko/37.0 Firefox/37.0 KaiOS/1.0",
2350
+ "expect": {
2351
+ "vendor": "ALCATEL",
2352
+ "model": "4044T",
2353
+ "type": "mobile"
2354
+ }
2355
+ },
2356
+ {
2357
+ "desc": "Jolla",
2358
+ "ua": "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0",
2359
+ "expect": {
2360
+ "vendor": "Jolla",
2361
+ "model": "undefined",
2362
+ "type": "mobile"
2363
+ }
2364
+ },
2365
+ {
2366
+ "desc": "Xbox One",
2367
+ "ua": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; Xbox; Xbox One)",
2368
+ "expect": {
2369
+ "vendor": "Microsoft",
2370
+ "model": "Xbox One",
2371
+ "type": "console"
2372
+ }
2373
+ },
2374
+ {
2375
+ "desc": "Xbox",
2376
+ "ua": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)",
2377
+ "expect": {
2378
+ "vendor": "Microsoft",
2379
+ "model": "Xbox",
2380
+ "type": "console"
2381
+ }
2382
+ },
2383
+ {
2384
+ "desc": "Nvidia Shield Tablet",
2385
+ "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LVY48E; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.19 Safari/537.36",
2386
+ "expect": {
2387
+ "vendor": "Nvidia",
2388
+ "model": "SHIELD Tablet",
2389
+ "type": "tablet"
2390
+ }
2391
+ },
2392
+ {
2393
+ "desc": "Ouya",
2394
+ "ua": "Mozilla/5.0 (Linux; Android 4.1.2; OUYA Console Build/JZO54L-OUYA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36",
2395
+ "expect": {
2396
+ "vendor": "OUYA",
2397
+ "model": "undefined",
2398
+ "type": "console"
2399
+ }
2400
+ },
2401
+ {
2402
+ "desc": "Vivo Y52s",
2403
+ "ua": "Mozilla/5.0 (Linux; Android 10; V2057A Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/12.10 SP-engine/2.28.0 baiduboxapp/12.10.0.10 (Baidu; P1 10) NABar/1.0",
2404
+ "expect": {
2405
+ "vendor": "Vivo",
2406
+ "model": "V2057A",
2407
+ "type": "mobile"
2408
+ }
2409
+ },
2410
+ {
2411
+ "desc": "Vivo X60",
2412
+ "ua": "Mozilla/5.0 (Linux; Android 11; V2046A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/8.8.71.0",
2413
+ "expect": {
2414
+ "vendor": "Vivo",
2415
+ "model": "V2046A",
2416
+ "type": "mobile"
2417
+ }
2418
+ },
2419
+ {
2420
+ "desc": "Vivo Y79A",
2421
+ "ua": "Mozilla/5.0 (Linux; Android 7.1.2; vivo Y79A Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
2422
+ "expect": {
2423
+ "vendor": "Vivo",
2424
+ "model": "Y79A",
2425
+ "type": "mobile"
2426
+ }
2427
+ },
2428
+ {
2429
+ "desc": "Vivo Y97",
2430
+ "ua": "Mozilla/5.0 (Linux; Android 8.1.0; V1813T Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
2431
+ "expect": {
2432
+ "vendor": "Vivo",
2433
+ "model": "V1813T",
2434
+ "type": "mobile"
2435
+ }
2436
+ },
2437
+ {
2438
+ "desc": "Vivo iQOO Pro",
2439
+ "ua": "Mozilla/5.0 (Linux; Android 11; V1916A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.1.10.6",
2440
+ "expect": {
2441
+ "vendor": "Vivo",
2442
+ "model": "V1916A",
2443
+ "type": "mobile"
2444
+ }
1345
2445
  }
1346
2446
  ]