device_detector 1.1.2 → 1.1.3

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.
@@ -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',