device_detector 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,6 +3,7 @@
3
3
  class DeviceDetector
4
4
  class Device < Parser
5
5
  # order is relevant for testing with fixtures
6
+ # https://github.com/matomo-org/device-detector/blob/75d88bbefb0182f9207c9f48dc39b1bc8c7cc43f/Parser/Device/AbstractDeviceParser.php#L59-L74
6
7
  DEVICE_NAMES = [
7
8
  'desktop',
8
9
  'smartphone',
@@ -20,6 +21,7 @@ class DeviceDetector
20
21
  'peripheral'
21
22
  ].freeze
22
23
 
24
+ # https://github.com/matomo-org/device-detector/blob/75d88bbefb0182f9207c9f48dc39b1bc8c7cc43f/Parser/Device/AbstractDeviceParser.php#L83-L1951
23
25
  DEVICE_BRANDS = {
24
26
  '5E' => '2E',
25
27
  '5IV' => '5IVE',
@@ -34,10 +36,12 @@ class DeviceDetector
34
36
  '88' => '8848',
35
37
  '10M' => '10moons',
36
38
  '41' => 'A1',
39
+ 'AK1' => 'A&K',
37
40
  '00' => 'Accent',
38
41
  'ACC' => 'Accesstyle',
39
42
  'AE' => 'Ace',
40
43
  'AC' => 'Acer',
44
+ 'ACL' => 'Aceline',
41
45
  '3K' => 'Acteck',
42
46
  'ACT' => 'actiMirror',
43
47
  'A9' => 'Advan',
@@ -49,12 +53,14 @@ class DeviceDetector
49
53
  'A3' => 'AGM',
50
54
  'AEE' => 'AEEZO',
51
55
  'J0' => 'AG Mobile',
56
+ 'AJI' => 'Ajib',
52
57
  'AZ' => 'Ainol',
53
58
  'AIR' => 'Airis',
54
59
  'AI' => 'Airness',
55
60
  'ARP' => 'Airpha',
56
61
  'AT' => 'Airties',
57
62
  '7U' => 'Airtel',
63
+ 'AIT' => 'AirTouch',
58
64
  'U0' => 'AIRON',
59
65
  '0A' => 'AIS',
60
66
  'AW' => 'Aiwa',
@@ -64,9 +70,11 @@ class DeviceDetector
64
70
  'Q3' => 'AKIRA',
65
71
  '1A' => 'Alba',
66
72
  'AL' => 'Alcatel',
73
+ 'AL0' => 'Alienware',
67
74
  '20' => 'Alcor',
68
75
  'XY' => 'Alps',
69
76
  'XYA' => 'XY Auto',
77
+ 'AAU' => 'AAUW',
70
78
  '7L' => 'ALDI NORD',
71
79
  '6L' => 'ALDI SÜD',
72
80
  '3L' => 'Alfawise',
@@ -78,8 +86,11 @@ class DeviceDetector
78
86
  'A7' => 'Allwinner',
79
87
  'A1' => 'Altech UEC',
80
88
  '66' => 'Altice',
89
+ 'ALM' => 'Altimo',
81
90
  'A5' => 'altron',
91
+ 'ALT' => 'Altus',
82
92
  'KN' => 'Amazon',
93
+ 'AMZ' => 'Amazon Basics',
83
94
  'AMA' => 'AMA',
84
95
  'AG' => 'AMGOO',
85
96
  '9A' => 'Amigoo',
@@ -88,7 +99,9 @@ class DeviceDetector
88
99
  '54' => 'AMCV',
89
100
  '60' => 'Andowl',
90
101
  'ANX' => 'ANXONIT',
102
+ 'ANC' => 'ANBERNIC',
91
103
  '6J' => 'Angelcare',
104
+ 'ANG' => 'AngelTech',
92
105
  '7A' => 'Anry',
93
106
  'A0' => 'ANS',
94
107
  '74' => 'Anker',
@@ -98,9 +111,12 @@ class DeviceDetector
98
111
  '55' => 'AOpen',
99
112
  'RW' => 'Aoro',
100
113
  '9Y' => 'Aocos',
114
+ 'AOW' => 'Aocwei',
101
115
  'AP' => 'Apple',
116
+ 'ARC' => 'Arçelik',
102
117
  'AR' => 'Archos',
103
118
  'AB' => 'Arian Space',
119
+ 'ARI' => 'Arival',
104
120
  'A6' => 'Ark',
105
121
  '5A' => 'ArmPhone',
106
122
  'AN' => 'Arnova',
@@ -119,6 +135,7 @@ class DeviceDetector
119
135
  'AU' => 'Asus',
120
136
  '6A' => 'AT&T',
121
137
  'ATH' => 'Athesi',
138
+ 'ATE' => 'Atlantic Electrics',
122
139
  '5Q' => 'Atmaca Elektronik',
123
140
  'YH' => 'ATMAN',
124
141
  '2A' => 'Atom',
@@ -128,22 +145,29 @@ class DeviceDetector
128
145
  'AX' => 'Audiovox',
129
146
  'AJ' => 'AURIS',
130
147
  'YZ' => 'Autan',
148
+ 'AUP' => 'AUPO',
131
149
  'ZA' => 'Avenzo',
132
150
  'AH' => 'AVH',
133
151
  'AV' => 'Avvio',
134
152
  'AVA' => 'Avaya',
153
+ 'AXE' => 'AXEN',
135
154
  'AY' => 'Axxion',
136
155
  'AXX' => 'AXXA',
156
+ 'AYA' => 'AYA',
137
157
  'YR' => 'AYYA',
138
158
  'XA' => 'Axioo',
139
159
  'AM' => 'Azumi Mobile',
160
+ 'AZE' => 'Azeyou',
140
161
  'WW' => 'Awow',
162
+ 'AWO' => 'AWOX',
141
163
  'XU' => 'AUX',
142
164
  'BAC' => 'Backcell',
143
165
  'BFF' => 'BAFF',
144
166
  'BO' => 'BangOlufsen',
145
167
  'BN' => 'Barnes & Noble',
146
168
  'BAR' => 'BARTEC',
169
+ 'BAS' => 'BASE',
170
+ 'BAU' => 'BAUHN',
147
171
  'BB' => 'BBK',
148
172
  '0B' => 'BB Mobile',
149
173
  'B6' => 'BDF',
@@ -154,6 +178,7 @@ class DeviceDetector
154
178
  'B5' => 'Beeline',
155
179
  'B0' => 'Beelink',
156
180
  'BL' => 'Beetel',
181
+ 'BEK' => 'Beko',
157
182
  '2X' => 'Benco',
158
183
  'BQ' => 'BenQ',
159
184
  'BS' => 'BenQ-Siemens',
@@ -178,6 +203,7 @@ class DeviceDetector
178
203
  'ZB' => 'Bittium',
179
204
  'BK' => 'Bkav',
180
205
  '5B' => 'Black Bear',
206
+ 'BLK' => 'Black Box',
181
207
  'BF' => 'Black Fox',
182
208
  'BPC' => 'Blackpcs',
183
209
  'B2' => 'Blackview',
@@ -205,6 +231,7 @@ class DeviceDetector
205
231
  'BW' => 'Boway',
206
232
  'BOO' => 'Boost',
207
233
  'BOK' => 'Bookeen',
234
+ 'BOT' => 'Botech',
208
235
  'BX' => 'bq',
209
236
  '8B' => 'Brandt',
210
237
  'BRA' => 'BrandCode',
@@ -217,7 +244,9 @@ class DeviceDetector
217
244
  'B1' => 'Bush',
218
245
  '4Q' => 'Bundy',
219
246
  'Y8' => 'Bubblegum',
247
+ 'BMW' => 'BMW',
220
248
  'C9' => 'CAGI',
249
+ 'CAD' => 'CADENA',
221
250
  'CT' => 'Capitel',
222
251
  'G3' => 'CG Mobile',
223
252
  '37' => 'CGV',
@@ -229,8 +258,12 @@ class DeviceDetector
229
258
  'CA' => 'Cat',
230
259
  'BC' => 'Camfone',
231
260
  'CJ' => 'Cavion',
261
+ 'CAN' => 'Canal+',
232
262
  '4D' => 'Canal Digital',
233
263
  'CNG' => 'Canguro',
264
+ 'CNT' => 'CCIT',
265
+ 'CEC' => 'Cecotec',
266
+ 'CEP' => 'CEPTER',
234
267
  'CEI' => 'Ceibal',
235
268
  '02' => 'Cell-C',
236
269
  'CEL' => 'Cellacom',
@@ -239,6 +272,7 @@ class DeviceDetector
239
272
  'CE' => 'Celkon',
240
273
  'CG' => 'Cellution',
241
274
  '62' => 'Centric',
275
+ 'CEN' => 'CENTEK',
242
276
  'C2' => 'Changhong',
243
277
  'CHA' => 'Chainway',
244
278
  'CHG' => 'ChiliGreen',
@@ -246,11 +280,14 @@ class DeviceDetector
246
280
  'C3' => 'China Mobile',
247
281
  'U9' => 'China Telecom',
248
282
  'CI' => 'Chico Mobile',
283
+ 'CIA' => 'C Idea',
249
284
  'CIP' => 'CipherLab',
250
285
  'CIT' => 'Citycall',
251
286
  '1C' => 'Chuwi',
252
287
  'L8' => 'Clarmin',
253
288
  '25' => 'Claresta',
289
+ 'CLA' => 'CLAYTON',
290
+ 'CLT' => 'Clovertek',
254
291
  '1J' => 'Cloud',
255
292
  'CD' => 'Cloudfone',
256
293
  '6C' => 'Cloudpad',
@@ -272,14 +309,17 @@ class DeviceDetector
272
309
  '8C' => 'Connex',
273
310
  '53' => 'Connectce',
274
311
  'CON' => 'Conceptum',
312
+ 'CED' => 'Continental Edison',
275
313
  '9C' => 'Colors',
276
314
  'CO' => 'Coolpad',
277
315
  'COO' => 'Coopers',
316
+ 'CDE' => 'COOD-E',
278
317
  '4R' => 'CORN',
279
318
  '1O' => 'Cosmote',
280
319
  'CW' => 'Cowon',
281
320
  '75' => 'Covia',
282
321
  'QG' => 'COYOTE',
322
+ 'CKK' => 'CKK Mobile',
283
323
  'YW' => 'ClearPHONE',
284
324
  '33' => 'Clementoni',
285
325
  'CR' => 'CreNova',
@@ -292,6 +332,7 @@ class DeviceDetector
292
332
  'CTR' => 'Ctroniq',
293
333
  'CU' => 'Cube',
294
334
  'CB' => 'CUBOT',
335
+ 'CUI' => 'Cuiud',
295
336
  'CV' => 'CVTE',
296
337
  'CWO' => 'Cwowdefu',
297
338
  'C4' => 'Cyrus',
@@ -299,6 +340,7 @@ class DeviceDetector
299
340
  'DA' => 'Danew',
300
341
  'DAN' => 'Dany',
301
342
  'DA1' => 'DangcapHD',
343
+ 'DAR' => 'Daria',
302
344
  'DT' => 'Datang',
303
345
  'D7' => 'Datawind',
304
346
  '7D' => 'Datamini',
@@ -313,6 +355,7 @@ class DeviceDetector
313
355
  'DL0' => 'DL',
314
356
  'DE' => 'Denver',
315
357
  'DS' => 'Desay',
358
+ 'DSD' => 'DSDevices',
316
359
  'DSI' => 'DSIC',
317
360
  'DW' => 'DeWalt',
318
361
  'DX' => 'DEXP',
@@ -322,6 +365,7 @@ class DeviceDetector
322
365
  '8D' => 'DF',
323
366
  'DGT' => 'DGTEC',
324
367
  'DG' => 'Dialog',
368
+ 'DIA' => 'DIALN',
325
369
  'DI' => 'Dicam',
326
370
  'D4' => 'Digi',
327
371
  'D3' => 'Digicel',
@@ -332,6 +376,7 @@ class DeviceDetector
332
376
  'DIG' => 'Digit4G',
333
377
  'DIC' => 'DIGICOM',
334
378
  'Q0' => 'DIGIFORS',
379
+ 'DIK' => 'DIKOM',
335
380
  'DQ' => 'DISH',
336
381
  'DIS' => 'Disney',
337
382
  '9D' => 'Ditecma',
@@ -339,10 +384,12 @@ class DeviceDetector
339
384
  '1D' => 'Diva',
340
385
  'DIV' => 'DiverMax',
341
386
  'D6' => 'Divisat',
387
+ 'DIO' => 'DIORA',
342
388
  'X6' => 'DIXON',
343
389
  'DIM' => 'DIMO',
344
390
  '5D' => 'DING DING',
345
391
  'DIN' => 'Dinax',
392
+ 'DNA' => 'Dinalink',
346
393
  'DM' => 'DMM',
347
394
  'DN' => 'DNS',
348
395
  'DC' => 'DoCoMo',
@@ -357,6 +404,7 @@ class DeviceDetector
357
404
  'JQ' => 'Doppio',
358
405
  'DR' => 'Doro',
359
406
  'ZD' => 'DORLAND',
407
+ 'DRO' => 'Droidlogic',
360
408
  'D8' => 'Droxio',
361
409
  'DJ' => 'Dragon Touch',
362
410
  'DRA' => 'DRAGON',
@@ -368,10 +416,12 @@ class DeviceDetector
368
416
  'UD' => 'DUNNS Mobile',
369
417
  'DUU' => 'Duubee',
370
418
  'DUR' => 'Durabook',
419
+ 'DYO' => 'Dyon',
371
420
  'DTE' => 'D-Tech',
372
421
  'DLI' => 'D-Link',
373
422
  'ENO' => 'eNOVA',
374
423
  'IN2' => 'iNOVA',
424
+ 'IN3' => 'inovo',
375
425
  'INH' => 'Inhon',
376
426
  'EB' => 'E-Boda',
377
427
  'EJ' => 'Engel',
@@ -379,8 +429,10 @@ class DeviceDetector
379
429
  'ENI' => 'ENIE',
380
430
  '2E' => 'E-Ceros',
381
431
  'E8' => 'E-tel',
432
+ 'EAS' => 'EAS Electric',
382
433
  'EP' => 'Easypix',
383
434
  'EQ' => 'Eagle',
435
+ 'EGS' => 'EagleSoar',
384
436
  'EA' => 'EBEST',
385
437
  'YC' => 'EBEN',
386
438
  'E4' => 'Echo Mobiles',
@@ -389,6 +441,7 @@ class DeviceDetector
389
441
  '35' => 'ECON',
390
442
  'ECC' => 'ECOO',
391
443
  'ZZ' => 'ecom',
444
+ 'EDE' => 'Edenwood',
392
445
  'E6' => 'EE',
393
446
  'GW' => 'EGL',
394
447
  'EFT' => 'EFT',
@@ -403,6 +456,7 @@ class DeviceDetector
403
456
  '03' => 'Electroneum',
404
457
  'Z8' => 'ELECTRONIA',
405
458
  'EL1' => 'Elecson',
459
+ 'ELK' => 'Elektroland',
406
460
  'L0' => 'Element',
407
461
  'EG' => 'Elenberg',
408
462
  'EL' => 'Elephone',
@@ -426,6 +480,7 @@ class DeviceDetector
426
480
  'EE' => 'Essential',
427
481
  'E2' => 'Essentielb',
428
482
  '6E' => 'eSTAR',
483
+ 'ETO' => 'ETOE',
429
484
  'EN' => 'Eton',
430
485
  'ET' => 'eTouch',
431
486
  '1E' => 'Etuline',
@@ -444,12 +499,15 @@ class DeviceDetector
444
499
  '4Z' => 'Exmart',
445
500
  'EH' => 'EXO',
446
501
  'EX' => 'Explay',
502
+ 'EXP' => 'Express LUCK',
447
503
  'E5' => 'Extrem',
504
+ 'EXL' => 'ExtraLink',
448
505
  'EF' => 'EXCEED',
449
506
  'QE' => 'EWIS',
450
507
  'EI' => 'Ezio',
451
508
  'EZ' => 'Ezze',
452
509
  'UF' => 'EYU',
510
+ 'EYE' => 'Eyemoo',
453
511
  'UE1' => 'UE',
454
512
  '5F' => 'F150',
455
513
  'FPS' => 'F+',
@@ -464,6 +522,7 @@ class DeviceDetector
464
522
  'FAR' => 'Farassoo',
465
523
  'FB' => 'Fantec',
466
524
  'FE' => 'Fengxiang',
525
+ 'FEN' => 'Fenoti',
467
526
  'F7' => 'Fero',
468
527
  '67' => 'FEONAL',
469
528
  'FI' => 'FiGO',
@@ -474,11 +533,15 @@ class DeviceDetector
474
533
  'FX' => 'Finlux',
475
534
  'F3' => 'FireFly Mobile',
476
535
  'F8' => 'FISE',
536
+ 'FIT' => 'FITCO',
537
+ 'FLM' => 'Filimo',
477
538
  'FIL' => 'FILIX',
478
539
  'FL' => 'Fly',
479
540
  'QC' => 'FLYCAT',
541
+ 'FLY' => 'FLYCOAY',
480
542
  'FLU' => 'Fluo',
481
543
  'FN' => 'FNB',
544
+ 'FOB' => 'Fobem',
482
545
  'FD' => 'Fondi',
483
546
  '0F' => 'Fourel',
484
547
  '44' => 'Four Mobile',
@@ -491,7 +554,9 @@ class DeviceDetector
491
554
  'FOD' => 'FoxxD',
492
555
  'FJ' => 'FOODO',
493
556
  'FOS' => 'FOSSiBOT',
557
+ 'FRE' => 'free',
494
558
  'FT' => 'Freetel',
559
+ 'FEY' => 'FreeYond',
495
560
  'FRU' => 'Frunsi',
496
561
  'F4' => 'F&U',
497
562
  '1F' => 'FMT',
@@ -508,6 +573,7 @@ class DeviceDetector
508
573
  'G9' => 'G-Touch',
509
574
  'GFO' => 'Gfone',
510
575
  'GTM' => 'GTMEDIA',
576
+ 'GTX' => 'GTX',
511
577
  '0G' => 'GFive',
512
578
  'GM' => 'Garmin-Asus',
513
579
  'GA' => 'Gateway',
@@ -524,6 +590,7 @@ class DeviceDetector
524
590
  'GE' => 'Geotel',
525
591
  'Q4' => 'Geotex',
526
592
  'GEO' => 'GEOZON',
593
+ 'GNO' => 'Getnord',
527
594
  'GER' => 'Gear Mobile',
528
595
  'GH' => 'Ghia',
529
596
  '2C' => 'Ghong',
@@ -535,6 +602,7 @@ class DeviceDetector
535
602
  'GI' => 'Gionee',
536
603
  'GIR' => 'GIRASOLE',
537
604
  'G4' => 'Globex',
605
+ 'GLB' => 'Globmall',
538
606
  '38' => 'GLONYX',
539
607
  'U6' => 'Glofiish',
540
608
  'G7' => 'GoGEN',
@@ -543,6 +611,8 @@ class DeviceDetector
543
611
  'GB' => 'Gol Mobile',
544
612
  'GL' => 'Goly',
545
613
  'GOL' => 'GoldMaster',
614
+ 'GOS' => 'GoldStar',
615
+ 'GOB' => 'GOLDBERG',
546
616
  'GX' => 'GLX',
547
617
  'G5' => 'Gome',
548
618
  'G1' => 'GoMobile',
@@ -552,11 +622,13 @@ class DeviceDetector
552
622
  'GOO' => 'GOODTEL',
553
623
  '8G' => 'Gplus',
554
624
  'GR' => 'Gradiente',
625
+ 'GRE' => 'Graetz',
555
626
  'GP' => 'Grape',
556
627
  'G6' => 'Gree',
557
628
  'GRA' => 'Great Asia',
558
629
  '3G' => 'Greentel',
559
630
  'GRO' => 'Green Orange',
631
+ 'GRL' => 'Green Lion',
560
632
  'GR1' => 'GroBerwert',
561
633
  'GF' => 'Gretel',
562
634
  '82' => 'Gresso',
@@ -569,9 +641,11 @@ class DeviceDetector
569
641
  '9F' => 'HAOVM',
570
642
  'HAQ' => 'HAOQIN',
571
643
  'HA' => 'Haier',
644
+ 'HEC' => 'HEC',
572
645
  'XH' => 'Haipai',
573
646
  'HAN' => 'Handheld',
574
647
  'HE' => 'HannSpree',
648
+ 'HNS' => 'Hanseatic',
575
649
  'HK' => 'Hardkernel',
576
650
  'HAR' => 'Harper',
577
651
  'HA1' => 'Hartens',
@@ -584,14 +658,18 @@ class DeviceDetector
584
658
  'ZH' => 'Hezire',
585
659
  'HEX' => 'HexaByte',
586
660
  'HEW' => 'HeadWolf',
661
+ 'HEI' => 'Heimat',
587
662
  'HL' => 'Hi-Level',
588
663
  '3H' => 'Hi',
589
664
  'HIB' => 'Hiberg',
665
+ 'HBY' => 'HiBy',
590
666
  'HIH' => 'HiHi',
591
667
  'HIK' => 'HiKing',
592
668
  'H2' => 'Highscreen',
593
669
  'Q1' => 'High Q',
670
+ 'HIG' => 'HiGrace',
594
671
  '1H' => 'Hipstreet',
672
+ 'HIR' => 'Hiremco',
595
673
  'HI' => 'Hisense',
596
674
  'HIP' => 'HIPER',
597
675
  'HC' => 'Hitachi',
@@ -599,9 +677,14 @@ class DeviceDetector
599
677
  'W3' => 'HiMax',
600
678
  '8X' => 'Hi Nova',
601
679
  'HLL' => 'HLLO',
680
+ 'HKC' => 'HKC',
681
+ 'HMD' => 'HMD',
602
682
  '8W' => 'HKPro',
683
+ 'HOF' => 'HOFER',
603
684
  'H1' => 'Hoffmann',
685
+ 'HOM' => 'Homatics',
604
686
  'H0' => 'Hometech',
687
+ 'HLB' => 'HOLLEBERG',
605
688
  'HM' => 'Homtom',
606
689
  'HZ' => 'Hoozo',
607
690
  'H7' => 'Horizon',
@@ -634,6 +717,7 @@ class DeviceDetector
634
717
  'IM' => 'i-mate',
635
718
  'IO' => 'i-mobile',
636
719
  'INN' => 'I-INN',
720
+ 'IPL' => 'I-Plus',
637
721
  'OF' => 'iOutdoor',
638
722
  'IB' => 'iBall',
639
723
  'IY' => 'iBerry',
@@ -651,6 +735,7 @@ class DeviceDetector
651
735
  '2K' => 'IKI Mobile',
652
736
  'IK' => 'iKoMo',
653
737
  '58' => 'iKon',
738
+ '588' => 'iKonia',
654
739
  'I7' => 'iLA',
655
740
  '2I' => 'iLife',
656
741
  '1I' => 'iMars',
@@ -658,17 +743,20 @@ class DeviceDetector
658
743
  'U4' => 'iMan',
659
744
  'ILE' => 'iLepo',
660
745
  'IL' => 'IMO Mobile',
746
+ 'IMA' => 'Imaq',
661
747
  'IM1' => 'Imose',
662
748
  'I3' => 'Impression',
663
749
  'FC' => 'INCAR',
664
750
  '2H' => 'Inch',
665
751
  '6I' => 'Inco',
752
+ 'INK' => 'Inka',
666
753
  'IW' => 'iNew',
667
754
  'IF' => 'Infinix',
668
755
  'INF' => 'Infiniton',
669
756
  'I0' => 'InFocus',
670
757
  'IN1' => 'InFone',
671
758
  'II' => 'Inkti',
759
+ 'MIR' => 'Infomir',
672
760
  '81' => 'InfoKit',
673
761
  'I5' => 'InnJoo',
674
762
  '26' => 'Innos',
@@ -711,13 +799,16 @@ class DeviceDetector
711
799
  'QW' => 'iWaylink',
712
800
  'I9' => 'iZotron',
713
801
  'IXT' => 'iXTech',
802
+ 'IOT' => 'IOTWE',
714
803
  'JA' => 'JAY-Tech',
715
804
  'KJ' => 'Jiake',
716
805
  'JD' => 'Jedi',
806
+ 'JEE' => 'Jeep',
717
807
  'J6' => 'Jeka',
718
808
  'JF' => 'JFone',
719
809
  'JI' => 'Jiayu',
720
810
  'JG' => 'Jinga',
811
+ 'JIN' => 'Jin Tu',
721
812
  'JX' => 'Jio',
722
813
  'VJ' => 'Jivi',
723
814
  'JK' => 'JKL',
@@ -748,8 +839,10 @@ class DeviceDetector
748
839
  'KHA' => 'Khadas',
749
840
  'KS' => 'Kempler & Strauss',
750
841
  'K3' => 'Keneksi',
842
+ 'KHI' => 'KENSHI',
751
843
  'KX' => 'Kenxinda',
752
844
  'KEN' => 'Kenbo',
845
+ 'KND' => 'Kendo',
753
846
  'KZG' => 'KZG',
754
847
  'K1' => 'Kiano',
755
848
  '5W' => 'Kingbox',
@@ -760,6 +853,7 @@ class DeviceDetector
760
853
  '46' => 'Kiowa',
761
854
  'KV' => 'Kivi',
762
855
  '64' => 'Kvant',
856
+ 'KVA' => 'KVADRA',
763
857
  '0K' => 'Klipad',
764
858
  'KNM' => 'KN Mobile',
765
859
  'KC' => 'Kocaso',
@@ -786,6 +880,7 @@ class DeviceDetector
786
880
  '8K' => 'Kult',
787
881
  'KU' => 'Kumai',
788
882
  '6K' => 'Kurio',
883
+ 'KYD' => 'Kydos',
789
884
  'KY' => 'Kyocera',
790
885
  'KQ' => 'Kyowon',
791
886
  '1K' => 'Kzen',
@@ -798,6 +893,7 @@ class DeviceDetector
798
893
  'Z3' => 'Laurus',
799
894
  'LEC' => 'Lectrus',
800
895
  'LV' => 'Lava',
896
+ 'LVI' => 'Lville',
801
897
  'LC' => 'LCT',
802
898
  'L5' => 'Leagoo',
803
899
  'U3' => 'Leben',
@@ -809,6 +905,7 @@ class DeviceDetector
809
905
  'LEG' => 'Legend',
810
906
  'L4' => 'Lemhoov',
811
907
  'W9' => 'LEMFO',
908
+ 'LEM' => 'Lemco',
812
909
  'LN' => 'Lenco',
813
910
  'LE' => 'Lenovo',
814
911
  'LT' => 'Leotec',
@@ -824,6 +921,7 @@ class DeviceDetector
824
921
  'LIN' => 'Linsay',
825
922
  'LF' => 'Lifemaxx',
826
923
  'LI' => 'Lingwin',
924
+ 'LIB' => 'Lingbo',
827
925
  'LIM' => 'Lime',
828
926
  'LJ' => 'L-Max',
829
927
  'LW' => 'Linnex',
@@ -835,6 +933,7 @@ class DeviceDetector
835
933
  '1L' => 'Logic',
836
934
  'LH' => 'Logic Instrument',
837
935
  'LM' => 'Logicom',
936
+ 'LOG' => 'Logik',
838
937
  'GY' => 'LOKMAT',
839
938
  'LPX' => 'LPX-G',
840
939
  '0L' => 'Lumigon',
@@ -851,6 +950,8 @@ class DeviceDetector
851
950
  '92' => 'MAC AUDIO',
852
951
  'MJ' => 'Majestic',
853
952
  'FQ' => 'Mafe',
953
+ 'MAG' => 'MAG',
954
+ 'MA2' => 'MAGCH',
854
955
  '6Y' => 'Magicsee',
855
956
  '23' => 'Magnus',
856
957
  'NH' => 'Manhattan',
@@ -866,28 +967,34 @@ class DeviceDetector
866
967
  '3X' => 'Mastertech',
867
968
  'MAS' => 'Master-G',
868
969
  '50' => 'Matrix',
970
+ 'MAT' => 'Matco Tools',
869
971
  '7M' => 'Maxcom',
870
972
  '7M1' => 'Maxfone',
871
973
  'ZM' => 'Maximus',
872
974
  '6X' => 'Maxtron',
873
975
  '0D' => 'MAXVI',
976
+ 'MAX' => 'Maxwell',
874
977
  'XZ' => 'MAXX',
875
978
  'MW' => 'Maxwest',
876
979
  'M0' => 'Maze',
877
980
  'YM' => 'Maze Speed',
878
981
  '87' => 'Malata',
982
+ 'MAU' => 'Maunfeld',
879
983
  '28' => 'MBOX',
880
984
  'FK' => 'MBI',
985
+ 'MBK' => 'MBK',
881
986
  '3D' => 'MDC Store',
882
987
  '1Y' => 'MDTV',
883
988
  '09' => 'meanIT',
884
989
  'M3' => 'Mecer',
885
990
  'M3M' => 'M3 Mobile',
886
991
  '0M' => 'Mecool',
992
+ 'MEM' => 'MeMobile',
887
993
  'MC' => 'Mediacom',
888
994
  'MK' => 'MediaTek',
889
995
  'MD' => 'Medion',
890
996
  'M2' => 'MEEG',
997
+ 'MEG' => 'MEGA VISION',
891
998
  'MP' => 'MegaFon',
892
999
  'X0' => 'mPhone',
893
1000
  '3M' => 'Meitu',
@@ -895,8 +1002,10 @@ class DeviceDetector
895
1002
  '0E' => 'Melrose',
896
1003
  'MU' => 'Memup',
897
1004
  'ME' => 'Metz',
1005
+ 'MEO' => 'MEO',
898
1006
  'MX' => 'MEU',
899
1007
  'MI' => 'MicroMax',
1008
+ 'MIP' => 'mipo',
900
1009
  'MS' => 'Microsoft',
901
1010
  '6Q' => 'Microtech',
902
1011
  '1X' => 'Minix',
@@ -905,6 +1014,7 @@ class DeviceDetector
905
1014
  'MO' => 'Mio',
906
1015
  'X7' => 'Mione',
907
1016
  'M7' => 'Miray',
1017
+ 'MIT' => 'Mitchell & Brown',
908
1018
  '8M' => 'Mito',
909
1019
  'MT' => 'Mitsubishi',
910
1020
  '0Y' => 'Mitsui',
@@ -925,6 +1035,7 @@ class DeviceDetector
925
1035
  '6W' => 'MobiWire',
926
1036
  '9M' => 'Mobo',
927
1037
  'MOB' => 'Mobell',
1038
+ 'MVO' => 'Mobvoi',
928
1039
  'M4' => 'Modecom',
929
1040
  'MF' => 'Mofut',
930
1041
  'MR' => 'Motorola',
@@ -956,6 +1067,7 @@ class DeviceDetector
956
1067
  'MYG' => 'MygPad',
957
1068
  'MWA' => 'MwalimuPlus',
958
1069
  'NEO' => 'neoCore',
1070
+ 'NER' => 'Neoregent',
959
1071
  '08' => 'Nabi',
960
1072
  'N7' => 'National',
961
1073
  'NC' => 'Navcity',
@@ -963,6 +1075,7 @@ class DeviceDetector
963
1075
  '7V' => 'Navitel',
964
1076
  'N3' => 'Navon',
965
1077
  '7R' => 'NavRoad',
1078
+ 'NAB' => 'NABO',
966
1079
  'NAS' => 'NASCO',
967
1080
  'NP' => 'Naomi Phone',
968
1081
  'NAN' => 'Nanho',
@@ -975,10 +1088,12 @@ class DeviceDetector
975
1088
  '1N' => 'Neomi',
976
1089
  '7Q' => 'Neon IQ',
977
1090
  '8F' => 'Neolix',
1091
+ 'NET' => 'NetBox',
978
1092
  'NA' => 'Netgear',
979
1093
  'NEM' => 'Netmak',
980
1094
  'NU' => 'NeuImage',
981
1095
  'NEU' => 'NeuTab',
1096
+ 'NEV' => 'NEVIR',
982
1097
  'NW' => 'Newgen',
983
1098
  'N9' => 'Newland',
984
1099
  '0N' => 'Newman',
@@ -995,6 +1110,7 @@ class DeviceDetector
995
1110
  'NTT' => 'NTT West',
996
1111
  '4N' => 'NextTab',
997
1112
  'NEX' => 'NEXT',
1113
+ 'NST' => 'Next & NextStar',
998
1114
  'NJO' => 'nJoy',
999
1115
  'NG' => 'NGM',
1000
1116
  'NZ' => 'NG Optics',
@@ -1005,6 +1121,8 @@ class DeviceDetector
1005
1121
  'N5' => 'NOA',
1006
1122
  'N1' => 'Noain',
1007
1123
  'N6' => 'Nobby',
1124
+ 'NOC' => 'Novacom',
1125
+ 'NOS' => 'NoviSea',
1008
1126
  'NOV' => 'Novey',
1009
1127
  'NO1' => 'NOVO',
1010
1128
  '57' => 'Nubia',
@@ -1016,6 +1134,7 @@ class DeviceDetector
1016
1134
  '2N' => 'Nomu',
1017
1135
  '6H' => 'Noontec',
1018
1136
  'NR' => 'Nordmende',
1137
+ 'NOR' => 'NORMANDE',
1019
1138
  '7N' => 'NorthTech',
1020
1139
  'NOT' => 'Nothing Phone',
1021
1140
  '5N' => 'Nos',
@@ -1028,6 +1147,7 @@ class DeviceDetector
1028
1147
  'NUV' => 'NuVision',
1029
1148
  'NV' => 'Nvidia',
1030
1149
  'NY' => 'NYX Mobile',
1150
+ 'NON' => 'N-one',
1031
1151
  'O3' => 'O+',
1032
1152
  'OT' => 'O2',
1033
1153
  'O7' => 'Oale',
@@ -1043,6 +1163,7 @@ class DeviceDetector
1043
1163
  'OLA' => 'Olax',
1044
1164
  'OLK' => 'Olkya',
1045
1165
  'OLY' => 'Olympia',
1166
+ 'OCE' => 'OCEANIC',
1046
1167
  'OLT' => 'OLTO',
1047
1168
  'OJ' => 'Ookee',
1048
1169
  'OD' => 'Onda',
@@ -1051,9 +1172,12 @@ class DeviceDetector
1051
1172
  'ONL' => 'OneLern',
1052
1173
  'OAN' => 'Oangcc',
1053
1174
  'OX' => 'Onix',
1175
+ 'OIN' => 'Onida',
1054
1176
  '3O' => 'ONYX BOOX',
1055
1177
  'O4' => 'ONN',
1056
1178
  '9Q' => 'Onkyo',
1179
+ 'ONV' => 'ONVO',
1180
+ 'OOR' => 'Ooredoo',
1057
1181
  '2O' => 'OpelMobile',
1058
1182
  'OH' => 'Openbox',
1059
1183
  '7Y' => 'Obabox',
@@ -1062,6 +1186,7 @@ class DeviceDetector
1062
1186
  'OPT' => 'Optoma',
1063
1187
  'OPH' => 'Ophone',
1064
1188
  'OR' => 'Orange',
1189
+ 'ORA' => 'Orava',
1065
1190
  'O5' => 'Orbic',
1066
1191
  'Y6' => 'Orbita',
1067
1192
  'ORB' => 'Orbsmart',
@@ -1086,12 +1211,17 @@ class DeviceDetector
1086
1211
  'OZ' => 'OzoneHD',
1087
1212
  'OLL' => 'Ollee',
1088
1213
  '7P' => 'P-UP',
1214
+ 'PRA' => 'Pacific Research Alliance',
1215
+ 'PAG' => 'PAGRAER',
1216
+ 'PAD' => 'Padpro',
1089
1217
  'YP' => 'Paladin',
1090
1218
  'PM' => 'Palm',
1091
1219
  'PN' => 'Panacom',
1092
1220
  'PA' => 'Panasonic',
1221
+ 'PNV' => 'Panavox',
1093
1222
  'PT' => 'Pantech',
1094
1223
  'PAN' => 'Pano',
1224
+ 'PND' => 'Panodic',
1095
1225
  'PA1' => 'Panoramic',
1096
1226
  'PLT' => 'Platoon',
1097
1227
  '94' => 'Packard Bell',
@@ -1103,6 +1233,7 @@ class DeviceDetector
1103
1233
  'PC' => 'PCD',
1104
1234
  'PD' => 'PCD Argentina',
1105
1235
  'PE' => 'PEAQ',
1236
+ 'PEN' => 'Penta',
1106
1237
  'PG' => 'Pentagram',
1107
1238
  'PQ' => 'Pendoo',
1108
1239
  '93' => 'Perfeo',
@@ -1122,6 +1253,7 @@ class DeviceDetector
1122
1253
  'PIR' => 'PIRANHA',
1123
1254
  'PIN' => 'PINE',
1124
1255
  '9P' => 'Planet Computers',
1256
+ 'PLA' => 'Play Now',
1125
1257
  'PY' => 'Ployer',
1126
1258
  'P4' => 'Plum',
1127
1259
  'PLU' => 'PlusStyle',
@@ -1154,6 +1286,7 @@ class DeviceDetector
1154
1286
  'P6' => 'Proline',
1155
1287
  '5O' => 'Prology',
1156
1288
  'P1' => 'ProScan',
1289
+ 'PRO' => 'PROSONIC',
1157
1290
  'P7' => 'Protruly',
1158
1291
  'R0' => 'ProVision',
1159
1292
  '7O' => 'Polestar',
@@ -1165,6 +1298,7 @@ class DeviceDetector
1165
1298
  'QH' => 'Q-Touch',
1166
1299
  'QB' => 'Q.Bell',
1167
1300
  'QI' => 'Qilive',
1301
+ 'QIN' => 'QIN',
1168
1302
  'QM' => 'QMobile',
1169
1303
  'QT' => 'Qtek',
1170
1304
  'Q9' => 'QTECH',
@@ -1178,6 +1312,7 @@ class DeviceDetector
1178
1312
  'YQ' => 'QLink',
1179
1313
  'QY' => 'Qnet Mobile',
1180
1314
  'WJ' => 'Qware',
1315
+ 'QWT' => 'QWATT',
1181
1316
  'R2' => 'R-TV',
1182
1317
  'RA' => 'Ramos',
1183
1318
  '0R' => 'Raspberry',
@@ -1201,6 +1336,7 @@ class DeviceDetector
1201
1336
  'RP' => 'Revo',
1202
1337
  'REV' => 'Revomovil',
1203
1338
  '8R' => 'Retroid Pocket',
1339
+ 'REN' => 'Renova',
1204
1340
  'RIC' => 'Ricoh',
1205
1341
  'RI' => 'Rikomagic',
1206
1342
  'RM' => 'RIM',
@@ -1213,6 +1349,7 @@ class DeviceDetector
1213
1349
  'RR' => 'Roadrover',
1214
1350
  'QR' => 'ROADMAX',
1215
1351
  'ROC' => 'Roam Cat',
1352
+ 'ROT' => 'Rocket',
1216
1353
  'R1' => 'Rokit',
1217
1354
  'ROI' => 'ROiK',
1218
1355
  'RK' => 'Roku',
@@ -1232,13 +1369,16 @@ class DeviceDetector
1232
1369
  'RY' => 'Ryte',
1233
1370
  'X5' => 'Saba',
1234
1371
  '8L' => 'S-TELL',
1372
+ '8L1' => 'S-Color',
1235
1373
  '4O' => 'S2Tel',
1236
1374
  '89' => 'Seatel',
1237
1375
  'SEW' => 'Sewoo',
1238
1376
  'SE1' => 'SEEWO',
1239
1377
  'Y7' => 'Saiet',
1378
+ 'SLF' => 'SAILF',
1240
1379
  'X1' => 'Safaricom',
1241
1380
  'SG' => 'Sagem',
1381
+ 'SAG' => 'Sagemcom',
1242
1382
  '4L' => 'Salora',
1243
1383
  'SA' => 'Samsung',
1244
1384
  'SAT' => 'Samtech',
@@ -1256,6 +1396,7 @@ class DeviceDetector
1256
1396
  'SCO' => 'Scosmos',
1257
1397
  'ZG' => 'Schok',
1258
1398
  'G8' => 'SEG',
1399
+ 'SEX' => 'SEHMAX',
1259
1400
  'SD' => 'Sega',
1260
1401
  '0U' => 'Selecline',
1261
1402
  '9G' => 'Selenga',
@@ -1283,8 +1424,10 @@ class DeviceDetector
1283
1424
  '1S' => 'Sigma',
1284
1425
  '70' => 'Silelis',
1285
1426
  'SJ' => 'Silent Circle',
1427
+ 'SIL' => 'Silva Schneider',
1286
1428
  '10' => 'Simbans',
1287
1429
  '98' => 'Simply',
1430
+ 'SIM' => 'simfer',
1288
1431
  '52' => 'Singtech',
1289
1432
  '31' => 'Siragon',
1290
1433
  '83' => 'Sirin Labs',
@@ -1294,6 +1437,7 @@ class DeviceDetector
1294
1437
  'SK' => 'Skyworth',
1295
1438
  'SKY' => 'Skyline',
1296
1439
  'SK1' => 'SkyStream',
1440
+ 'SKT' => 'Skytech',
1297
1441
  'SKK' => 'SKK Mobile',
1298
1442
  '14' => 'Smadl',
1299
1443
  '19' => 'Smailo',
@@ -1306,6 +1450,7 @@ class DeviceDetector
1306
1450
  'SM1' => 'Smartex',
1307
1451
  'SC' => 'Smartfren',
1308
1452
  'S7' => 'Smartisan',
1453
+ 'SMU' => 'SMUX',
1309
1454
  'JR' => 'Sylvania',
1310
1455
  'SYH' => 'SYH',
1311
1456
  '3Y' => 'Smarty',
@@ -1316,21 +1461,26 @@ class DeviceDetector
1316
1461
  'JL' => 'SOLO',
1317
1462
  'SOS' => 'SOSH',
1318
1463
  'SOD' => 'Soda',
1464
+ 'SOL' => 'Solas',
1319
1465
  '16' => 'Solone',
1320
1466
  'OI' => 'Sonim',
1467
+ 'SVE' => 'Sveon',
1321
1468
  'SO' => 'Sony',
1322
1469
  'SE' => 'Sony Ericsson',
1323
1470
  'X2' => 'Soundmax',
1471
+ 'SUL' => 'SoulLink',
1324
1472
  '8S' => 'Soyes',
1325
1473
  '77' => 'SONOS',
1326
1474
  '68' => 'Soho Style',
1327
1475
  'SOB' => 'SobieTech',
1328
1476
  'PK' => 'Spark',
1477
+ 'SPX' => 'Sparx',
1329
1478
  'FS' => 'SPC',
1330
1479
  '6S' => 'Spectrum',
1331
1480
  '43' => 'Spectralink',
1332
1481
  'SP' => 'Spice',
1333
1482
  '84' => 'Sprint',
1483
+ 'SPU' => 'SPURT',
1334
1484
  'QS' => 'SQOOL',
1335
1485
  'S4' => 'Star',
1336
1486
  'OL' => 'Starlight',
@@ -1348,6 +1498,7 @@ class DeviceDetector
1348
1498
  '69' => 'Stylo',
1349
1499
  '9S' => 'Sugar',
1350
1500
  'SUR' => 'Surge',
1501
+ 'SUF' => 'Surfans',
1351
1502
  '06' => 'Subor',
1352
1503
  'SZ' => 'Sumvision',
1353
1504
  '0H' => 'Sunstech',
@@ -1356,6 +1507,8 @@ class DeviceDetector
1356
1507
  '5Y' => 'Sunny',
1357
1508
  'W8' => 'SUNWIND',
1358
1509
  'SBX' => 'SuperBOX',
1510
+ 'SBR' => 'Sber',
1511
+ 'SGE' => 'Super General',
1359
1512
  'SU' => 'SuperSonic',
1360
1513
  '79' => 'SuperTab',
1361
1514
  'S5' => 'Supra',
@@ -1367,19 +1520,21 @@ class DeviceDetector
1367
1520
  'SWI' => 'Switel',
1368
1521
  'SS' => 'SWISSMOBILITY',
1369
1522
  '1W' => 'Swisstone',
1370
- 'W7' => 'SWTV',
1371
1523
  'SSK' => 'SSKY',
1372
1524
  'SYC' => 'Syco',
1373
1525
  'SM' => 'Symphony',
1374
1526
  '4S' => 'Syrox',
1527
+ 'SYS' => 'System76',
1375
1528
  'TM' => 'T-Mobile',
1376
1529
  'T96' => 'T96',
1530
+ 'TAD' => 'TADAAM',
1377
1531
  'TK' => 'Takara',
1378
1532
  '73' => 'Tambo',
1379
1533
  '9N' => 'Tanix',
1380
1534
  'U5' => 'Taiga System',
1381
1535
  'TAL' => 'Talius',
1382
1536
  '7G' => 'TAG Tech',
1537
+ 'TAU' => 'TAUBE',
1383
1538
  'T5' => 'TB Touch',
1384
1539
  'TC' => 'TCL',
1385
1540
  'T0' => 'TD Systems',
@@ -1390,20 +1545,24 @@ class DeviceDetector
1390
1545
  'TE1' => 'TechSmart',
1391
1546
  'TX' => 'TechniSat',
1392
1547
  'TT' => 'TechnoTrend',
1548
+ 'TTS' => 'TECHNOSAT',
1393
1549
  'TP' => 'TechPad',
1394
1550
  'TPS' => 'TPS',
1395
1551
  '9E' => 'Techwood',
1396
1552
  '7F' => 'Technopc',
1553
+ 'TCH' => 'Techstorm',
1397
1554
  'T7' => 'Teclast',
1398
1555
  'TB' => 'Tecno Mobile',
1399
1556
  'TEC' => 'TecToy',
1400
1557
  '91' => 'TEENO',
1558
+ 'TLK' => 'Telkom',
1401
1559
  '2L' => 'Tele2',
1402
1560
  'TL' => 'Telefunken',
1403
1561
  'TG' => 'Telego',
1404
1562
  'T2' => 'Telenor',
1405
1563
  'TE' => 'Telit',
1406
1564
  '65' => 'Telia',
1565
+ 'TLY' => 'Telly',
1407
1566
  'TEL' => 'Telma',
1408
1567
  'PW' => 'Telpo',
1409
1568
  'TLS' => 'TeloSystems',
@@ -1434,6 +1593,7 @@ class DeviceDetector
1434
1593
  'T1' => 'Tolino',
1435
1594
  '0T' => 'Tone',
1436
1595
  'TY' => 'Tooky',
1596
+ 'TYD' => 'TYD',
1437
1597
  'TOO' => 'TOOGO',
1438
1598
  'T9' => 'Top House',
1439
1599
  'DK' => 'Topelotek',
@@ -1452,13 +1612,16 @@ class DeviceDetector
1452
1612
  '5R' => 'Transpeed',
1453
1613
  'T6' => 'TrekStor',
1454
1614
  'T3' => 'Trevi',
1615
+ 'TRI' => 'TriaPlay',
1455
1616
  'TJ' => 'Trifone',
1456
1617
  'Q5' => 'Trident',
1457
1618
  '4T' => 'Tronsmart',
1458
1619
  '11' => 'True',
1459
1620
  'JT' => 'True Slim',
1460
1621
  'J1' => 'Trio',
1622
+ 'THT' => 'Tsinghua Tongfang',
1461
1623
  '5C' => 'TTEC',
1624
+ 'TTF' => 'TTfone',
1462
1625
  'TTK' => 'TTK-TV',
1463
1626
  'TU' => 'Tunisie Telecom',
1464
1627
  '1T' => 'Turbo',
@@ -1467,13 +1630,17 @@ class DeviceDetector
1467
1630
  '5T' => 'TurboKids',
1468
1631
  'UR' => 'Turkcell',
1469
1632
  '4U' => 'TuCEL',
1633
+ 'TUV' => 'Tuvio',
1470
1634
  '2U' => 'Türk Telekom',
1471
1635
  'TV' => 'TVC',
1472
1636
  'TW' => 'TWM',
1473
1637
  'Z1' => 'TWZ',
1474
1638
  '6T' => 'Twoe',
1639
+ 'TWN' => 'TwinMOS',
1475
1640
  '15' => 'Tymes',
1476
1641
  'UC' => 'U.S. Cellular',
1642
+ 'UD1' => 'UD',
1643
+ 'UGI' => 'UGINE',
1477
1644
  'UG' => 'Ugoos',
1478
1645
  'U1' => 'Uhans',
1479
1646
  'UH' => 'Uhappy',
@@ -1508,9 +1675,13 @@ class DeviceDetector
1508
1675
  'VP' => 'Vargo',
1509
1676
  'VC' => 'Vankyo',
1510
1677
  'VAL' => 'VALEM',
1678
+ 'VA2' => 'VALE',
1511
1679
  'VAT' => 'VALTECH',
1680
+ 'VAN' => 'VANGUARD',
1681
+ 'VAW' => 'VANWIN',
1512
1682
  'VB' => 'VC',
1513
1683
  'VN' => 'Venso',
1684
+ 'VNP' => 'VNPT Technology',
1514
1685
  'VEN' => 'Venstar',
1515
1686
  'UV' => 'Venturer',
1516
1687
  'VQ' => 'Vega',
@@ -1555,6 +1726,7 @@ class DeviceDetector
1555
1726
  'VIT' => 'Vityaz',
1556
1727
  '9V' => 'Vision Touch',
1557
1728
  'VIL' => 'Visual Land',
1729
+ 'VI1' => 'VILLAON',
1558
1730
  'VK' => 'VK Mobile',
1559
1731
  'JM' => 'v-mobile',
1560
1732
  'VHO' => 'V-HOPE',
@@ -1562,6 +1734,7 @@ class DeviceDetector
1562
1734
  'VGE' => 'V-Gen',
1563
1735
  'V0' => 'VKworld',
1564
1736
  'VM' => 'Vodacom',
1737
+ 'VOC' => 'VOCAL',
1565
1738
  'VF' => 'Vodafone',
1566
1739
  '7W' => 'VOGA',
1567
1740
  'V2' => 'Vonino',
@@ -1577,16 +1750,25 @@ class DeviceDetector
1577
1750
  'VY' => 'Voyo',
1578
1751
  'VOL' => 'Völfen',
1579
1752
  'VO1' => 'Volt',
1753
+ 'VOP' => 'Volla',
1754
+ 'V02' => 'VOLIA',
1580
1755
  'VH' => 'Vsmart',
1581
1756
  'V9' => 'Vsun',
1582
1757
  'VU' => 'Vulcan',
1583
1758
  '3V' => 'VVETIME',
1584
1759
  'ZC' => 'VUCATIMES',
1760
+ 'VO2' => 'VOLKANO',
1585
1761
  'VUE' => 'Vue Micro',
1762
+ 'WAK' => 'Walker',
1586
1763
  'WA' => 'Walton',
1587
1764
  'WAF' => 'WAF',
1765
+ 'WAO' => 'W&O',
1588
1766
  'WAL' => 'Waltter',
1767
+ 'WAI' => 'Wainyok',
1589
1768
  'WHI' => 'White Mobile',
1769
+ 'WHO' => 'Whoop',
1770
+ 'WBL' => 'We. by Loewe.',
1771
+ 'WCP' => 'WeChip',
1590
1772
  'WM' => 'Weimei',
1591
1773
  'WE' => 'WellcoM',
1592
1774
  'W6' => 'WELLINGTON',
@@ -1615,6 +1797,7 @@ class DeviceDetector
1615
1797
  'WL' => 'Wolder',
1616
1798
  'WG' => 'Wolfgang',
1617
1799
  'WQ' => 'Wolki',
1800
+ 'WON' => 'WONDER',
1618
1801
  'WO' => 'Wonu',
1619
1802
  'W1' => 'Woo',
1620
1803
  'WR' => 'Wortmann',
@@ -1631,6 +1814,7 @@ class DeviceDetector
1631
1814
  '96Q' => 'X96Q',
1632
1815
  'A95' => 'A95X',
1633
1816
  'XG' => 'Xgody',
1817
+ 'XGE' => 'XGEM',
1634
1818
  'QX' => 'XGIMI',
1635
1819
  'XL' => 'Xiaolajiao',
1636
1820
  'XI' => 'Xiaomi',
@@ -1639,6 +1823,7 @@ class DeviceDetector
1639
1823
  'XO' => 'Xolo',
1640
1824
  'XR' => 'Xoro',
1641
1825
  'XS' => 'Xshitou',
1826
+ 'XSM' => 'Xsmart',
1642
1827
  '4X' => 'Xtouch',
1643
1828
  'X8' => 'Xtratech',
1644
1829
  'XCR' => 'Xcruiser',
@@ -1686,6 +1871,7 @@ class DeviceDetector
1686
1871
  'FZ' => 'ZIFRO',
1687
1872
  'ZX' => 'Ziox',
1688
1873
  'ZIK' => 'ZIK',
1874
+ 'ZKI' => 'Z-Kai',
1689
1875
  'ZIG' => 'Zigo',
1690
1876
  'ZIN' => 'Zinox',
1691
1877
  'ZO' => 'Zonda',
@@ -1701,6 +1887,7 @@ class DeviceDetector
1701
1887
  'Z4' => 'ZH&K',
1702
1888
  'OW' => 'öwn',
1703
1889
  'WBF' => 'Webfleet',
1890
+ 'WSS' => 'WS',
1704
1891
 
1705
1892
  # legacy brands, might be removed in future versions
1706
1893
  'WB' => 'Web TV',