device_detector 1.0.7 → 1.1.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +25 -4
- data/lib/device_detector/browser.rb +184 -5
- data/lib/device_detector/client_hint.rb +181 -0
- data/lib/device_detector/device.rb +522 -3
- data/lib/device_detector/os.rb +33 -3
- data/lib/device_detector/parser.rb +25 -3
- data/lib/device_detector/vendor_fragment.rb +25 -0
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector.rb +82 -16
- data/regexes/bots.yml +757 -17
- data/regexes/client/browsers.yml +365 -54
- data/regexes/client/hints/apps.yml +102 -0
- data/regexes/client/hints/browsers.yml +195 -0
- data/regexes/client/libraries.yml +200 -3
- data/regexes/client/mobile_apps.yml +396 -14
- data/regexes/client/pim.yml +15 -0
- data/regexes/device/car_browsers.yml +1 -1
- data/regexes/device/consoles.yml +8 -3
- data/regexes/device/mobiles.yml +12126 -2425
- data/regexes/device/portable_media_player.yml +24 -2
- data/regexes/device/shell_tv.yml +16 -0
- data/regexes/device/televisions.yml +26 -4
- data/regexes/oss.yml +381 -50
- metadata +11 -7
|
@@ -22,6 +22,7 @@ class DeviceDetector
|
|
|
22
22
|
|
|
23
23
|
DEVICE_BRANDS = {
|
|
24
24
|
'5E' => '2E',
|
|
25
|
+
'5IV' => '5IVE',
|
|
25
26
|
'2F' => 'F2 Mobile',
|
|
26
27
|
'3Q' => '3Q',
|
|
27
28
|
'J7' => '7 Mobile',
|
|
@@ -31,30 +32,41 @@ class DeviceDetector
|
|
|
31
32
|
'04' => '4ife',
|
|
32
33
|
'36' => '360',
|
|
33
34
|
'88' => '8848',
|
|
35
|
+
'10M' => '10moons',
|
|
34
36
|
'41' => 'A1',
|
|
35
37
|
'00' => 'Accent',
|
|
38
|
+
'ACC' => 'Accesstyle',
|
|
36
39
|
'AE' => 'Ace',
|
|
37
40
|
'AC' => 'Acer',
|
|
38
41
|
'3K' => 'Acteck',
|
|
42
|
+
'ACT' => 'actiMirror',
|
|
39
43
|
'A9' => 'Advan',
|
|
40
44
|
'AD' => 'Advance',
|
|
45
|
+
'ADV' => 'Advantage Air',
|
|
41
46
|
'76' => 'Adronix',
|
|
42
47
|
'AF' => 'AfriOne',
|
|
48
|
+
'FY' => 'AFFIX',
|
|
43
49
|
'A3' => 'AGM',
|
|
50
|
+
'AEE' => 'AEEZO',
|
|
44
51
|
'J0' => 'AG Mobile',
|
|
45
52
|
'AZ' => 'Ainol',
|
|
53
|
+
'AIR' => 'Airis',
|
|
46
54
|
'AI' => 'Airness',
|
|
55
|
+
'ARP' => 'Airpha',
|
|
47
56
|
'AT' => 'Airties',
|
|
57
|
+
'7U' => 'Airtel',
|
|
48
58
|
'U0' => 'AIRON',
|
|
49
59
|
'0A' => 'AIS',
|
|
50
60
|
'AW' => 'Aiwa',
|
|
51
61
|
'85' => 'Aiuto',
|
|
62
|
+
'U7' => 'AIDATA',
|
|
52
63
|
'AK' => 'Akai',
|
|
53
64
|
'Q3' => 'AKIRA',
|
|
54
65
|
'1A' => 'Alba',
|
|
55
66
|
'AL' => 'Alcatel',
|
|
56
67
|
'20' => 'Alcor',
|
|
57
68
|
'XY' => 'Alps',
|
|
69
|
+
'XYA' => 'XY Auto',
|
|
58
70
|
'7L' => 'ALDI NORD',
|
|
59
71
|
'6L' => 'ALDI SÜD',
|
|
60
72
|
'3L' => 'Alfawise',
|
|
@@ -62,17 +74,21 @@ class DeviceDetector
|
|
|
62
74
|
'AA' => 'AllCall',
|
|
63
75
|
'3A' => 'AllDocube',
|
|
64
76
|
'A2' => 'Allview',
|
|
77
|
+
'ALI' => 'ALLINmobile',
|
|
65
78
|
'A7' => 'Allwinner',
|
|
66
79
|
'A1' => 'Altech UEC',
|
|
67
80
|
'66' => 'Altice',
|
|
68
81
|
'A5' => 'altron',
|
|
69
82
|
'KN' => 'Amazon',
|
|
83
|
+
'AMA' => 'AMA',
|
|
70
84
|
'AG' => 'AMGOO',
|
|
71
85
|
'9A' => 'Amigoo',
|
|
72
86
|
'AO' => 'Amoi',
|
|
73
87
|
'3J' => 'Amino',
|
|
74
88
|
'54' => 'AMCV',
|
|
75
89
|
'60' => 'Andowl',
|
|
90
|
+
'ANX' => 'ANXONIT',
|
|
91
|
+
'6J' => 'Angelcare',
|
|
76
92
|
'7A' => 'Anry',
|
|
77
93
|
'A0' => 'ANS',
|
|
78
94
|
'74' => 'Anker',
|
|
@@ -80,6 +96,7 @@ class DeviceDetector
|
|
|
80
96
|
'O8' => 'AOC',
|
|
81
97
|
'J2' => 'AOYODKG',
|
|
82
98
|
'55' => 'AOpen',
|
|
99
|
+
'RW' => 'Aoro',
|
|
83
100
|
'9Y' => 'Aocos',
|
|
84
101
|
'AP' => 'Apple',
|
|
85
102
|
'AR' => 'Archos',
|
|
@@ -89,6 +106,7 @@ class DeviceDetector
|
|
|
89
106
|
'AN' => 'Arnova',
|
|
90
107
|
'AS' => 'ARRIS',
|
|
91
108
|
'AQ' => 'Aspera',
|
|
109
|
+
'HJ' => 'Aquarius',
|
|
92
110
|
'40' => 'Artel',
|
|
93
111
|
'21' => 'Artizlee',
|
|
94
112
|
'59' => 'ArtLine',
|
|
@@ -97,32 +115,52 @@ class DeviceDetector
|
|
|
97
115
|
'1U' => 'Astro',
|
|
98
116
|
'A4' => 'Ask',
|
|
99
117
|
'A8' => 'Assistant',
|
|
118
|
+
'ASS' => 'ASSE',
|
|
100
119
|
'AU' => 'Asus',
|
|
101
120
|
'6A' => 'AT&T',
|
|
121
|
+
'ATH' => 'Athesi',
|
|
122
|
+
'5Q' => 'Atmaca Elektronik',
|
|
123
|
+
'YH' => 'ATMAN',
|
|
102
124
|
'2A' => 'Atom',
|
|
125
|
+
'ATO' => 'ATOL',
|
|
103
126
|
'Z2' => 'Atvio',
|
|
127
|
+
'ATI' => 'Attila',
|
|
104
128
|
'AX' => 'Audiovox',
|
|
105
129
|
'AJ' => 'AURIS',
|
|
130
|
+
'YZ' => 'Autan',
|
|
106
131
|
'ZA' => 'Avenzo',
|
|
107
132
|
'AH' => 'AVH',
|
|
108
133
|
'AV' => 'Avvio',
|
|
134
|
+
'AVA' => 'Avaya',
|
|
109
135
|
'AY' => 'Axxion',
|
|
136
|
+
'AXX' => 'AXXA',
|
|
137
|
+
'YR' => 'AYYA',
|
|
110
138
|
'XA' => 'Axioo',
|
|
111
139
|
'AM' => 'Azumi Mobile',
|
|
112
140
|
'WW' => 'Awow',
|
|
141
|
+
'XU' => 'AUX',
|
|
142
|
+
'BAC' => 'Backcell',
|
|
143
|
+
'BFF' => 'BAFF',
|
|
113
144
|
'BO' => 'BangOlufsen',
|
|
114
145
|
'BN' => 'Barnes & Noble',
|
|
146
|
+
'BAR' => 'BARTEC',
|
|
115
147
|
'BB' => 'BBK',
|
|
116
148
|
'0B' => 'BB Mobile',
|
|
117
149
|
'B6' => 'BDF',
|
|
118
150
|
'QD' => 'BDQ',
|
|
151
|
+
'8Z' => 'BDsharing',
|
|
152
|
+
'BEF' => 'Beafon',
|
|
119
153
|
'BE' => 'Becker',
|
|
120
154
|
'B5' => 'Beeline',
|
|
121
155
|
'B0' => 'Beelink',
|
|
122
156
|
'BL' => 'Beetel',
|
|
157
|
+
'2X' => 'Benco',
|
|
123
158
|
'BQ' => 'BenQ',
|
|
124
159
|
'BS' => 'BenQ-Siemens',
|
|
125
160
|
'4Y' => 'Benzo',
|
|
161
|
+
'XJ' => 'Benesse',
|
|
162
|
+
'BEN' => 'BenWee',
|
|
163
|
+
'YB' => 'Beista',
|
|
126
164
|
'BY' => 'BS Mobile',
|
|
127
165
|
'BZ' => 'Bezkam',
|
|
128
166
|
'9B' => 'Bellphone',
|
|
@@ -132,33 +170,49 @@ class DeviceDetector
|
|
|
132
170
|
'B8' => 'BIHEE',
|
|
133
171
|
'1B' => 'Billion',
|
|
134
172
|
'BA' => 'BilimLand',
|
|
173
|
+
'BIL' => 'Billow',
|
|
135
174
|
'BH' => 'BioRugged',
|
|
136
175
|
'BI' => 'Bird',
|
|
137
176
|
'BT' => 'Bitel',
|
|
138
177
|
'B7' => 'Bitmore',
|
|
178
|
+
'ZB' => 'Bittium',
|
|
139
179
|
'BK' => 'Bkav',
|
|
140
180
|
'5B' => 'Black Bear',
|
|
141
181
|
'BF' => 'Black Fox',
|
|
182
|
+
'BPC' => 'Blackpcs',
|
|
142
183
|
'B2' => 'Blackview',
|
|
184
|
+
'2Y' => 'b2m',
|
|
143
185
|
'BP' => 'Blaupunkt',
|
|
144
186
|
'BU' => 'Blu',
|
|
187
|
+
'BUS' => 'BluSlate',
|
|
188
|
+
'BUZ' => 'BuzzTV',
|
|
145
189
|
'B3' => 'Bluboo',
|
|
146
190
|
'2B' => 'Bluedot',
|
|
147
191
|
'BD' => 'Bluegood',
|
|
148
192
|
'LB' => 'Bluewave',
|
|
149
193
|
'J8' => 'Bluebird',
|
|
194
|
+
'BSS' => 'BlueSky',
|
|
150
195
|
'7B' => 'Blloc',
|
|
151
196
|
'UB' => 'Bleck',
|
|
152
197
|
'Q2' => 'Blow',
|
|
198
|
+
'BLI' => 'BLISS',
|
|
153
199
|
'BM' => 'Bmobile',
|
|
154
200
|
'Y5' => 'BMAX',
|
|
201
|
+
'BMX' => 'BMXC',
|
|
155
202
|
'B9' => 'Bobarry',
|
|
156
203
|
'B4' => 'bogo',
|
|
204
|
+
'BOL' => 'Bolva',
|
|
157
205
|
'BW' => 'Boway',
|
|
206
|
+
'BOO' => 'Boost',
|
|
207
|
+
'BOK' => 'Bookeen',
|
|
158
208
|
'BX' => 'bq',
|
|
159
209
|
'8B' => 'Brandt',
|
|
210
|
+
'BRA' => 'BrandCode',
|
|
160
211
|
'BV' => 'Bravis',
|
|
212
|
+
'BRV' => 'BRAVE',
|
|
213
|
+
'BRG' => 'Brigmton',
|
|
161
214
|
'BR' => 'Brondi',
|
|
215
|
+
'XF' => 'BROR',
|
|
162
216
|
'BJ' => 'BrightSign',
|
|
163
217
|
'B1' => 'Bush',
|
|
164
218
|
'4Q' => 'Bundy',
|
|
@@ -169,22 +223,31 @@ class DeviceDetector
|
|
|
169
223
|
'37' => 'CGV',
|
|
170
224
|
'CP' => 'Captiva',
|
|
171
225
|
'CF' => 'Carrefour',
|
|
226
|
+
'CA1' => 'Carbon Mobile',
|
|
172
227
|
'CS' => 'Casio',
|
|
173
228
|
'R4' => 'Casper',
|
|
174
229
|
'CA' => 'Cat',
|
|
175
230
|
'BC' => 'Camfone',
|
|
176
231
|
'CJ' => 'Cavion',
|
|
177
232
|
'4D' => 'Canal Digital',
|
|
233
|
+
'CNG' => 'Canguro',
|
|
234
|
+
'CEI' => 'Ceibal',
|
|
178
235
|
'02' => 'Cell-C',
|
|
236
|
+
'CEL' => 'Cellacom',
|
|
179
237
|
'34' => 'CellAllure',
|
|
180
238
|
'7C' => 'Celcus',
|
|
181
239
|
'CE' => 'Celkon',
|
|
182
240
|
'CG' => 'Cellution',
|
|
183
241
|
'62' => 'Centric',
|
|
184
242
|
'C2' => 'Changhong',
|
|
243
|
+
'CHA' => 'Chainway',
|
|
244
|
+
'CHG' => 'ChiliGreen',
|
|
185
245
|
'CH' => 'Cherry Mobile',
|
|
186
246
|
'C3' => 'China Mobile',
|
|
247
|
+
'U9' => 'China Telecom',
|
|
187
248
|
'CI' => 'Chico Mobile',
|
|
249
|
+
'CIP' => 'CipherLab',
|
|
250
|
+
'CIT' => 'Citycall',
|
|
188
251
|
'1C' => 'Chuwi',
|
|
189
252
|
'L8' => 'Clarmin',
|
|
190
253
|
'25' => 'Claresta',
|
|
@@ -199,19 +262,25 @@ class DeviceDetector
|
|
|
199
262
|
'CL' => 'Compal',
|
|
200
263
|
'CQ' => 'Compaq',
|
|
201
264
|
'C7' => 'ComTrade Tesla',
|
|
265
|
+
'7Z' => 'COMPUMAX',
|
|
202
266
|
'C8' => 'Concord',
|
|
203
267
|
'CC' => 'ConCorde',
|
|
204
268
|
'C5' => 'Condor',
|
|
269
|
+
'C5M' => 'C5 Mobile',
|
|
205
270
|
'4C' => 'Conquest',
|
|
206
271
|
'3C' => 'Contixo',
|
|
207
272
|
'8C' => 'Connex',
|
|
208
273
|
'53' => 'Connectce',
|
|
274
|
+
'CON' => 'Conceptum',
|
|
209
275
|
'9C' => 'Colors',
|
|
210
276
|
'CO' => 'Coolpad',
|
|
277
|
+
'COO' => 'Coopers',
|
|
211
278
|
'4R' => 'CORN',
|
|
212
279
|
'1O' => 'Cosmote',
|
|
213
280
|
'CW' => 'Cowon',
|
|
214
281
|
'75' => 'Covia',
|
|
282
|
+
'QG' => 'COYOTE',
|
|
283
|
+
'YW' => 'ClearPHONE',
|
|
215
284
|
'33' => 'Clementoni',
|
|
216
285
|
'CR' => 'CreNova',
|
|
217
286
|
'CX' => 'Crescent',
|
|
@@ -219,39 +288,61 @@ class DeviceDetector
|
|
|
219
288
|
'CM' => 'Crius Mea',
|
|
220
289
|
'0C' => 'Crony',
|
|
221
290
|
'C1' => 'Crosscall',
|
|
291
|
+
'4W' => 'Crown',
|
|
292
|
+
'CTR' => 'Ctroniq',
|
|
222
293
|
'CU' => 'Cube',
|
|
223
294
|
'CB' => 'CUBOT',
|
|
224
295
|
'CV' => 'CVTE',
|
|
296
|
+
'CWO' => 'Cwowdefu',
|
|
225
297
|
'C4' => 'Cyrus',
|
|
226
298
|
'D5' => 'Daewoo',
|
|
227
299
|
'DA' => 'Danew',
|
|
300
|
+
'DAN' => 'Dany',
|
|
301
|
+
'DA1' => 'DangcapHD',
|
|
228
302
|
'DT' => 'Datang',
|
|
229
303
|
'D7' => 'Datawind',
|
|
230
304
|
'7D' => 'Datamini',
|
|
231
305
|
'6D' => 'Datalogic',
|
|
232
306
|
'D1' => 'Datsun',
|
|
233
307
|
'DZ' => 'Dazen',
|
|
308
|
+
'DAS' => 'DASS',
|
|
234
309
|
'DB' => 'Dbtel',
|
|
310
|
+
'DBP' => 'DbPhone',
|
|
311
|
+
'DCO' => 'Dcode',
|
|
235
312
|
'DL' => 'Dell',
|
|
313
|
+
'DL0' => 'DL',
|
|
236
314
|
'DE' => 'Denver',
|
|
237
315
|
'DS' => 'Desay',
|
|
316
|
+
'DSI' => 'DSIC',
|
|
238
317
|
'DW' => 'DeWalt',
|
|
239
318
|
'DX' => 'DEXP',
|
|
319
|
+
'DEY' => 'DEYI',
|
|
320
|
+
'DEN' => 'Denali',
|
|
321
|
+
'DEA' => 'DEALDIG',
|
|
240
322
|
'8D' => 'DF',
|
|
323
|
+
'DGT' => 'DGTEC',
|
|
241
324
|
'DG' => 'Dialog',
|
|
242
325
|
'DI' => 'Dicam',
|
|
243
326
|
'D4' => 'Digi',
|
|
244
327
|
'D3' => 'Digicel',
|
|
328
|
+
'DDG' => 'Digidragon',
|
|
245
329
|
'DH' => 'Digihome',
|
|
246
330
|
'DD' => 'Digiland',
|
|
331
|
+
'DIJ' => 'DIJITSU',
|
|
332
|
+
'DIG' => 'Digit4G',
|
|
333
|
+
'DIC' => 'DIGICOM',
|
|
247
334
|
'Q0' => 'DIGIFORS',
|
|
248
335
|
'DQ' => 'DISH',
|
|
336
|
+
'DIS' => 'Disney',
|
|
249
337
|
'9D' => 'Ditecma',
|
|
250
338
|
'D2' => 'Digma',
|
|
251
339
|
'1D' => 'Diva',
|
|
340
|
+
'DIV' => 'DiverMax',
|
|
252
341
|
'D6' => 'Divisat',
|
|
253
342
|
'X6' => 'DIXON',
|
|
343
|
+
'DIM' => 'DIMO',
|
|
254
344
|
'5D' => 'DING DING',
|
|
345
|
+
'DIN' => 'Dinax',
|
|
255
346
|
'DM' => 'DMM',
|
|
256
347
|
'DN' => 'DNS',
|
|
257
348
|
'DC' => 'DoCoMo',
|
|
@@ -260,42 +351,74 @@ class DeviceDetector
|
|
|
260
351
|
'DO' => 'Doogee',
|
|
261
352
|
'D0' => 'Doopro',
|
|
262
353
|
'DV' => 'Doov',
|
|
354
|
+
'DOM' => 'Dom.ru',
|
|
263
355
|
'DP' => 'Dopod',
|
|
356
|
+
'DPA' => 'DPA',
|
|
357
|
+
'JQ' => 'Doppio',
|
|
264
358
|
'DR' => 'Doro',
|
|
359
|
+
'ZD' => 'DORLAND',
|
|
265
360
|
'D8' => 'Droxio',
|
|
266
361
|
'DJ' => 'Dragon Touch',
|
|
362
|
+
'DRA' => 'DRAGON',
|
|
267
363
|
'DY' => 'Dreamgate',
|
|
364
|
+
'DRE' => 'DreamTab',
|
|
365
|
+
'DR1' => 'DreamStar',
|
|
366
|
+
'DTA' => 'Dtac',
|
|
268
367
|
'DU' => 'Dune HD',
|
|
269
368
|
'UD' => 'DUNNS Mobile',
|
|
369
|
+
'DUU' => 'Duubee',
|
|
370
|
+
'DUR' => 'Durabook',
|
|
371
|
+
'DTE' => 'D-Tech',
|
|
372
|
+
'DLI' => 'D-Link',
|
|
373
|
+
'ENO' => 'eNOVA',
|
|
374
|
+
'IN2' => 'iNOVA',
|
|
375
|
+
'INH' => 'Inhon',
|
|
270
376
|
'EB' => 'E-Boda',
|
|
271
377
|
'EJ' => 'Engel',
|
|
378
|
+
'ENA' => 'ENACOM',
|
|
379
|
+
'ENI' => 'ENIE',
|
|
272
380
|
'2E' => 'E-Ceros',
|
|
273
381
|
'E8' => 'E-tel',
|
|
274
382
|
'EP' => 'Easypix',
|
|
275
383
|
'EQ' => 'Eagle',
|
|
276
384
|
'EA' => 'EBEST',
|
|
385
|
+
'YC' => 'EBEN',
|
|
277
386
|
'E4' => 'Echo Mobiles',
|
|
387
|
+
'EQ1' => 'Equator',
|
|
278
388
|
'ES' => 'ECS',
|
|
279
389
|
'35' => 'ECON',
|
|
390
|
+
'ECC' => 'ECOO',
|
|
391
|
+
'ZZ' => 'ecom',
|
|
280
392
|
'E6' => 'EE',
|
|
393
|
+
'GW' => 'EGL',
|
|
394
|
+
'EFT' => 'EFT',
|
|
281
395
|
'EK' => 'EKO',
|
|
282
396
|
'EY' => 'Einstein',
|
|
283
397
|
'EM' => 'Eks Mobility',
|
|
284
398
|
'UE' => 'Ematic',
|
|
399
|
+
'EMR' => 'Emporia',
|
|
285
400
|
'4K' => 'EKT',
|
|
401
|
+
'EKI' => 'EKINOX',
|
|
286
402
|
'7E' => 'ELARI',
|
|
287
403
|
'03' => 'Electroneum',
|
|
288
404
|
'Z8' => 'ELECTRONIA',
|
|
405
|
+
'EL1' => 'Elecson',
|
|
289
406
|
'L0' => 'Element',
|
|
290
407
|
'EG' => 'Elenberg',
|
|
291
408
|
'EL' => 'Elephone',
|
|
292
409
|
'JE' => 'Elekta',
|
|
410
|
+
'ELE' => 'Elevate',
|
|
293
411
|
'4E' => 'Eltex',
|
|
412
|
+
'ELM' => 'Elong Mobile',
|
|
294
413
|
'ED' => 'Energizer',
|
|
295
414
|
'E1' => 'Energy Sistem',
|
|
296
415
|
'3E' => 'Enot',
|
|
416
|
+
'ENT' => 'Entity',
|
|
417
|
+
'ENV' => 'Envizen',
|
|
297
418
|
'8E' => 'Epik One',
|
|
419
|
+
'EPK' => 'Epic',
|
|
298
420
|
'XP' => 'Epson',
|
|
421
|
+
'EPH' => 'Ephone',
|
|
299
422
|
'E7' => 'Ergo',
|
|
300
423
|
'EC' => 'Ericsson',
|
|
301
424
|
'05' => 'Erisson',
|
|
@@ -307,11 +430,15 @@ class DeviceDetector
|
|
|
307
430
|
'ET' => 'eTouch',
|
|
308
431
|
'1E' => 'Etuline',
|
|
309
432
|
'EU' => 'Eurostar',
|
|
433
|
+
'4J' => 'Eurocase',
|
|
310
434
|
'E9' => 'Evercoss',
|
|
311
435
|
'EV' => 'Evertek',
|
|
436
|
+
'EVE' => 'Everest',
|
|
437
|
+
'EV1' => 'Everex',
|
|
312
438
|
'E3' => 'Evolio',
|
|
313
439
|
'EO' => 'Evolveo',
|
|
314
440
|
'0Q' => 'Evoo',
|
|
441
|
+
'5U' => 'EVPAD',
|
|
315
442
|
'E0' => 'EvroMedia',
|
|
316
443
|
'XE' => 'ExMobile',
|
|
317
444
|
'4Z' => 'Exmart',
|
|
@@ -322,24 +449,35 @@ class DeviceDetector
|
|
|
322
449
|
'QE' => 'EWIS',
|
|
323
450
|
'EI' => 'Ezio',
|
|
324
451
|
'EZ' => 'Ezze',
|
|
452
|
+
'UF' => 'EYU',
|
|
453
|
+
'UE1' => 'UE',
|
|
325
454
|
'5F' => 'F150',
|
|
455
|
+
'FPS' => 'F+',
|
|
326
456
|
'F6' => 'Facebook',
|
|
457
|
+
'FAC' => 'Facetel',
|
|
458
|
+
'FA1' => 'Facime',
|
|
327
459
|
'FA' => 'Fairphone',
|
|
328
460
|
'FM' => 'Famoco',
|
|
461
|
+
'FAM' => 'Famous',
|
|
329
462
|
'17' => 'FarEasTone',
|
|
330
463
|
'9R' => 'FaRao Pro',
|
|
464
|
+
'FAR' => 'Farassoo',
|
|
331
465
|
'FB' => 'Fantec',
|
|
332
466
|
'FE' => 'Fengxiang',
|
|
333
467
|
'F7' => 'Fero',
|
|
334
468
|
'67' => 'FEONAL',
|
|
335
469
|
'FI' => 'FiGO',
|
|
470
|
+
'J9' => 'FiGi',
|
|
471
|
+
'FIG' => 'Figgers',
|
|
336
472
|
'F9' => 'FiiO',
|
|
337
473
|
'F1' => 'FinePower',
|
|
338
474
|
'FX' => 'Finlux',
|
|
339
475
|
'F3' => 'FireFly Mobile',
|
|
340
476
|
'F8' => 'FISE',
|
|
477
|
+
'FIL' => 'FILIX',
|
|
341
478
|
'FL' => 'Fly',
|
|
342
479
|
'QC' => 'FLYCAT',
|
|
480
|
+
'FLU' => 'Fluo',
|
|
343
481
|
'FN' => 'FNB',
|
|
344
482
|
'FD' => 'Fondi',
|
|
345
483
|
'0F' => 'Fourel',
|
|
@@ -350,24 +488,43 @@ class DeviceDetector
|
|
|
350
488
|
'FR' => 'Forstar',
|
|
351
489
|
'RF' => 'Fortis',
|
|
352
490
|
'FO' => 'Foxconn',
|
|
491
|
+
'FOD' => 'FoxxD',
|
|
492
|
+
'FJ' => 'FOODO',
|
|
493
|
+
'FOS' => 'FOSSiBOT',
|
|
353
494
|
'FT' => 'Freetel',
|
|
495
|
+
'FRU' => 'Frunsi',
|
|
354
496
|
'F4' => 'F&U',
|
|
355
497
|
'1F' => 'FMT',
|
|
498
|
+
'FPT' => 'FPT',
|
|
356
499
|
'FG' => 'Fuego',
|
|
357
500
|
'FU' => 'Fujitsu',
|
|
501
|
+
'4F' => 'Funai',
|
|
502
|
+
'5J' => 'Fusion5',
|
|
503
|
+
'FF' => 'Future Mobile Technology',
|
|
504
|
+
'FFF' => 'FFF SmartLife',
|
|
358
505
|
'FW' => 'FNF',
|
|
506
|
+
'FXT' => 'Fxtec',
|
|
359
507
|
'GT' => 'G-TiDE',
|
|
360
508
|
'G9' => 'G-Touch',
|
|
509
|
+
'GFO' => 'Gfone',
|
|
510
|
+
'GTM' => 'GTMEDIA',
|
|
361
511
|
'0G' => 'GFive',
|
|
362
512
|
'GM' => 'Garmin-Asus',
|
|
363
513
|
'GA' => 'Gateway',
|
|
364
514
|
'99' => 'Galaxy Innovations',
|
|
515
|
+
'GA1' => 'Galactic',
|
|
516
|
+
'GAM' => 'Gamma',
|
|
517
|
+
'GAZ' => 'Gazer',
|
|
518
|
+
'GEA' => 'Geanee',
|
|
519
|
+
'GEN' => 'Geant',
|
|
365
520
|
'GD' => 'Gemini',
|
|
366
521
|
'GN' => 'General Mobile',
|
|
367
522
|
'2G' => 'Genesis',
|
|
368
523
|
'G2' => 'GEOFOX',
|
|
369
524
|
'GE' => 'Geotel',
|
|
370
525
|
'Q4' => 'Geotex',
|
|
526
|
+
'GEO' => 'GEOZON',
|
|
527
|
+
'GER' => 'Gear Mobile',
|
|
371
528
|
'GH' => 'Ghia',
|
|
372
529
|
'2C' => 'Ghong',
|
|
373
530
|
'GJ' => 'Ghost',
|
|
@@ -376,6 +533,7 @@ class DeviceDetector
|
|
|
376
533
|
'GZ' => 'Ginzzu',
|
|
377
534
|
'1G' => 'Gini',
|
|
378
535
|
'GI' => 'Gionee',
|
|
536
|
+
'GIR' => 'GIRASOLE',
|
|
379
537
|
'G4' => 'Globex',
|
|
380
538
|
'38' => 'GLONYX',
|
|
381
539
|
'U6' => 'Glofiish',
|
|
@@ -384,110 +542,165 @@ class DeviceDetector
|
|
|
384
542
|
'5G' => 'Gocomma',
|
|
385
543
|
'GB' => 'Gol Mobile',
|
|
386
544
|
'GL' => 'Goly',
|
|
545
|
+
'GOL' => 'GoldMaster',
|
|
387
546
|
'GX' => 'GLX',
|
|
388
547
|
'G5' => 'Gome',
|
|
389
548
|
'G1' => 'GoMobile',
|
|
390
549
|
'GO' => 'Google',
|
|
391
550
|
'G0' => 'Goophone',
|
|
392
551
|
'6G' => 'Gooweel',
|
|
552
|
+
'GOO' => 'GOODTEL',
|
|
553
|
+
'8G' => 'Gplus',
|
|
393
554
|
'GR' => 'Gradiente',
|
|
394
555
|
'GP' => 'Grape',
|
|
395
556
|
'G6' => 'Gree',
|
|
557
|
+
'GRA' => 'Great Asia',
|
|
396
558
|
'3G' => 'Greentel',
|
|
559
|
+
'GRO' => 'Green Orange',
|
|
560
|
+
'GR1' => 'GroBerwert',
|
|
397
561
|
'GF' => 'Gretel',
|
|
398
562
|
'82' => 'Gresso',
|
|
399
563
|
'GU' => 'Grundig',
|
|
400
564
|
'GV' => 'Gtel',
|
|
565
|
+
'CUO' => 'Guophone',
|
|
566
|
+
'H13' => 'H133',
|
|
401
567
|
'9Z' => 'H96',
|
|
402
568
|
'HF' => 'Hafury',
|
|
569
|
+
'9F' => 'HAOVM',
|
|
570
|
+
'HAQ' => 'HAOQIN',
|
|
403
571
|
'HA' => 'Haier',
|
|
572
|
+
'XH' => 'Haipai',
|
|
573
|
+
'HAN' => 'Handheld',
|
|
404
574
|
'HE' => 'HannSpree',
|
|
405
575
|
'HK' => 'Hardkernel',
|
|
576
|
+
'HAR' => 'Harper',
|
|
577
|
+
'HA1' => 'Hartens',
|
|
406
578
|
'HS' => 'Hasee',
|
|
579
|
+
'8H' => 'Hamlet',
|
|
580
|
+
'HAM' => 'Hammer',
|
|
581
|
+
'HAT' => 'Hathway',
|
|
407
582
|
'H6' => 'Helio',
|
|
408
583
|
'HQ' => 'HERO',
|
|
409
584
|
'ZH' => 'Hezire',
|
|
585
|
+
'HEX' => 'HexaByte',
|
|
586
|
+
'HEW' => 'HeadWolf',
|
|
410
587
|
'HL' => 'Hi-Level',
|
|
411
588
|
'3H' => 'Hi',
|
|
589
|
+
'HIB' => 'Hiberg',
|
|
590
|
+
'HIH' => 'HiHi',
|
|
591
|
+
'HIK' => 'HiKing',
|
|
412
592
|
'H2' => 'Highscreen',
|
|
413
593
|
'Q1' => 'High Q',
|
|
414
594
|
'1H' => 'Hipstreet',
|
|
415
595
|
'HI' => 'Hisense',
|
|
596
|
+
'HIP' => 'HIPER',
|
|
416
597
|
'HC' => 'Hitachi',
|
|
417
598
|
'H8' => 'Hitech',
|
|
418
599
|
'W3' => 'HiMax',
|
|
600
|
+
'8X' => 'Hi Nova',
|
|
601
|
+
'HLL' => 'HLLO',
|
|
602
|
+
'8W' => 'HKPro',
|
|
419
603
|
'H1' => 'Hoffmann',
|
|
420
604
|
'H0' => 'Hometech',
|
|
421
605
|
'HM' => 'Homtom',
|
|
422
606
|
'HZ' => 'Hoozo',
|
|
423
607
|
'H7' => 'Horizon',
|
|
608
|
+
'4H' => 'Horizont',
|
|
424
609
|
'HO' => 'Hosin',
|
|
425
610
|
'H3' => 'Hotel',
|
|
426
611
|
'HV' => 'Hotwav',
|
|
612
|
+
'U8' => 'Hot Pepper',
|
|
613
|
+
'JH' => 'HOTREALS',
|
|
427
614
|
'HW' => 'How',
|
|
428
615
|
'WH' => 'Honeywell',
|
|
429
616
|
'HP' => 'HP',
|
|
617
|
+
'HDC' => 'HDC',
|
|
430
618
|
'HT' => 'HTC',
|
|
619
|
+
'QZ' => 'Huagan',
|
|
431
620
|
'HD' => 'Huadoo',
|
|
432
621
|
'HG' => 'Huavi',
|
|
433
622
|
'HU' => 'Huawei',
|
|
434
623
|
'HX' => 'Humax',
|
|
435
624
|
'HR' => 'Hurricane',
|
|
436
625
|
'H5' => 'Huskee',
|
|
626
|
+
'HUG' => 'Hugerock',
|
|
437
627
|
'HY' => 'Hyrican',
|
|
438
628
|
'HN' => 'Hyundai',
|
|
439
629
|
'7H' => 'Hyve',
|
|
630
|
+
'HYT' => 'Hytera',
|
|
631
|
+
'HYK' => 'Hykker',
|
|
440
632
|
'3I' => 'i-Cherry',
|
|
441
633
|
'IJ' => 'i-Joy',
|
|
442
634
|
'IM' => 'i-mate',
|
|
443
635
|
'IO' => 'i-mobile',
|
|
636
|
+
'INN' => 'I-INN',
|
|
444
637
|
'OF' => 'iOutdoor',
|
|
445
638
|
'IB' => 'iBall',
|
|
446
639
|
'IY' => 'iBerry',
|
|
447
640
|
'7I' => 'iBrit',
|
|
641
|
+
'IBO' => 'ibowin',
|
|
448
642
|
'I2' => 'IconBIT',
|
|
449
643
|
'IC' => 'iDroid',
|
|
644
|
+
'IDI' => 'iDino',
|
|
645
|
+
'6Z' => 'iData',
|
|
450
646
|
'IG' => 'iGet',
|
|
451
647
|
'IH' => 'iHunt',
|
|
452
648
|
'IA' => 'Ikea',
|
|
649
|
+
'IYO' => 'iYou',
|
|
453
650
|
'8I' => 'IKU Mobile',
|
|
454
651
|
'2K' => 'IKI Mobile',
|
|
455
652
|
'IK' => 'iKoMo',
|
|
653
|
+
'58' => 'iKon',
|
|
456
654
|
'I7' => 'iLA',
|
|
457
655
|
'2I' => 'iLife',
|
|
458
656
|
'1I' => 'iMars',
|
|
657
|
+
'IMI' => 'iMI',
|
|
459
658
|
'U4' => 'iMan',
|
|
659
|
+
'ILE' => 'iLepo',
|
|
460
660
|
'IL' => 'IMO Mobile',
|
|
661
|
+
'IM1' => 'Imose',
|
|
461
662
|
'I3' => 'Impression',
|
|
462
663
|
'FC' => 'INCAR',
|
|
463
664
|
'2H' => 'Inch',
|
|
464
665
|
'6I' => 'Inco',
|
|
465
666
|
'IW' => 'iNew',
|
|
466
667
|
'IF' => 'Infinix',
|
|
668
|
+
'INF' => 'Infiniton',
|
|
467
669
|
'I0' => 'InFocus',
|
|
670
|
+
'IN1' => 'InFone',
|
|
468
671
|
'II' => 'Inkti',
|
|
469
672
|
'81' => 'InfoKit',
|
|
470
673
|
'I5' => 'InnJoo',
|
|
471
674
|
'26' => 'Innos',
|
|
472
675
|
'IN' => 'Innostream',
|
|
473
676
|
'I4' => 'Inoi',
|
|
677
|
+
'INO' => 'iNo Mobile',
|
|
474
678
|
'IQ' => 'INQ',
|
|
475
679
|
'QN' => 'iQ&T',
|
|
476
680
|
'IS' => 'Insignia',
|
|
477
681
|
'YI' => 'INSYS',
|
|
478
682
|
'IT' => 'Intek',
|
|
683
|
+
'INT' => 'Intel',
|
|
479
684
|
'IX' => 'Intex',
|
|
480
685
|
'IV' => 'Inverto',
|
|
481
686
|
'32' => 'Invens',
|
|
482
687
|
'4I' => 'Invin',
|
|
688
|
+
'INA' => 'iNavi',
|
|
483
689
|
'I1' => 'iOcean',
|
|
690
|
+
'IMU' => 'iMuz',
|
|
484
691
|
'IP' => 'iPro',
|
|
692
|
+
'X9' => 'iPEGTOP',
|
|
485
693
|
'8Q' => 'IQM',
|
|
694
|
+
'Q8' => 'IRA',
|
|
486
695
|
'I6' => 'Irbis',
|
|
487
696
|
'5I' => 'Iris',
|
|
697
|
+
'IRE' => 'iReplace',
|
|
488
698
|
'IR' => 'iRola',
|
|
489
699
|
'IU' => 'iRulu',
|
|
700
|
+
'IRO' => 'iRobot',
|
|
490
701
|
'9I' => 'iSWAG',
|
|
702
|
+
'9J' => 'iSafe Mobile',
|
|
703
|
+
'IST' => 'iStar',
|
|
491
704
|
'86' => 'IT',
|
|
492
705
|
'IZ' => 'iTel',
|
|
493
706
|
'0I' => 'iTruck',
|
|
@@ -495,41 +708,60 @@ class DeviceDetector
|
|
|
495
708
|
'IE' => 'iView',
|
|
496
709
|
'0J' => 'iVooMi',
|
|
497
710
|
'UI' => 'ivvi',
|
|
711
|
+
'QW' => 'iWaylink',
|
|
498
712
|
'I9' => 'iZotron',
|
|
713
|
+
'IXT' => 'iXTech',
|
|
499
714
|
'JA' => 'JAY-Tech',
|
|
500
715
|
'KJ' => 'Jiake',
|
|
716
|
+
'JD' => 'Jedi',
|
|
501
717
|
'J6' => 'Jeka',
|
|
502
718
|
'JF' => 'JFone',
|
|
503
719
|
'JI' => 'Jiayu',
|
|
504
720
|
'JG' => 'Jinga',
|
|
721
|
+
'JX' => 'Jio',
|
|
505
722
|
'VJ' => 'Jivi',
|
|
506
723
|
'JK' => 'JKL',
|
|
724
|
+
'JR1' => 'JREN',
|
|
507
725
|
'JO' => 'Jolla',
|
|
726
|
+
'JP' => 'Joy',
|
|
727
|
+
'JOY' => 'JoySurf',
|
|
508
728
|
'UJ' => 'Juniper Systems',
|
|
509
729
|
'J5' => 'Just5',
|
|
730
|
+
'7J' => 'Jumper',
|
|
731
|
+
'JPA' => 'JPay',
|
|
510
732
|
'JV' => 'JVC',
|
|
733
|
+
'JXD' => 'JXD',
|
|
511
734
|
'JS' => 'Jesy',
|
|
512
735
|
'KT' => 'K-Touch',
|
|
736
|
+
'KLT' => 'K-Lite',
|
|
513
737
|
'K4' => 'Kaan',
|
|
514
738
|
'K7' => 'Kaiomy',
|
|
515
739
|
'KL' => 'Kalley',
|
|
516
740
|
'K6' => 'Kanji',
|
|
517
741
|
'KA' => 'Karbonn',
|
|
518
742
|
'K5' => 'KATV1',
|
|
743
|
+
'KAP' => 'Kapsys',
|
|
519
744
|
'K0' => 'Kata',
|
|
520
745
|
'KZ' => 'Kazam',
|
|
521
746
|
'9K' => 'Kazuna',
|
|
522
747
|
'KD' => 'KDDI',
|
|
748
|
+
'KHA' => 'Khadas',
|
|
523
749
|
'KS' => 'Kempler & Strauss',
|
|
524
750
|
'K3' => 'Keneksi',
|
|
525
751
|
'KX' => 'Kenxinda',
|
|
752
|
+
'KEN' => 'Kenbo',
|
|
753
|
+
'KZG' => 'KZG',
|
|
526
754
|
'K1' => 'Kiano',
|
|
755
|
+
'5W' => 'Kingbox',
|
|
527
756
|
'KI' => 'Kingsun',
|
|
757
|
+
'KIS' => 'Kinstone',
|
|
528
758
|
'KF' => 'KINGZONE',
|
|
759
|
+
'KIN' => 'Kingstar',
|
|
529
760
|
'46' => 'Kiowa',
|
|
530
761
|
'KV' => 'Kivi',
|
|
531
762
|
'64' => 'Kvant',
|
|
532
763
|
'0K' => 'Klipad',
|
|
764
|
+
'KNM' => 'KN Mobile',
|
|
533
765
|
'KC' => 'Kocaso',
|
|
534
766
|
'KK' => 'Kodak',
|
|
535
767
|
'KG' => 'Kogan',
|
|
@@ -541,12 +773,15 @@ class DeviceDetector
|
|
|
541
773
|
'K9' => 'Kooper',
|
|
542
774
|
'KP' => 'KOPO',
|
|
543
775
|
'KR' => 'Koridy',
|
|
776
|
+
'XK' => 'Koslam',
|
|
544
777
|
'K2' => 'KRONO',
|
|
545
778
|
'KE' => 'Krüger&Matz',
|
|
546
779
|
'5K' => 'KREZ',
|
|
547
780
|
'WK' => 'KRIP',
|
|
781
|
+
'KRA' => 'Kraft',
|
|
548
782
|
'KH' => 'KT-Tech',
|
|
549
783
|
'Z6' => 'KUBO',
|
|
784
|
+
'KUG' => 'KuGou',
|
|
550
785
|
'K8' => 'Kuliao',
|
|
551
786
|
'8K' => 'Kult',
|
|
552
787
|
'KU' => 'Kumai',
|
|
@@ -558,21 +793,27 @@ class DeviceDetector
|
|
|
558
793
|
'L6' => 'Land Rover',
|
|
559
794
|
'L2' => 'Landvo',
|
|
560
795
|
'LA' => 'Lanix',
|
|
796
|
+
'LA1' => 'Lanin',
|
|
561
797
|
'LK' => 'Lark',
|
|
562
798
|
'Z3' => 'Laurus',
|
|
799
|
+
'LEC' => 'Lectrus',
|
|
563
800
|
'LV' => 'Lava',
|
|
564
801
|
'LC' => 'LCT',
|
|
565
802
|
'L5' => 'Leagoo',
|
|
566
803
|
'U3' => 'Leben',
|
|
804
|
+
'LEB' => 'LeBest',
|
|
567
805
|
'LD' => 'Ledstar',
|
|
806
|
+
'LEE' => 'Leelbox',
|
|
568
807
|
'L1' => 'LeEco',
|
|
569
808
|
'4B' => 'Leff',
|
|
809
|
+
'LEG' => 'Legend',
|
|
570
810
|
'L4' => 'Lemhoov',
|
|
571
811
|
'W9' => 'LEMFO',
|
|
572
812
|
'LN' => 'Lenco',
|
|
573
813
|
'LE' => 'Lenovo',
|
|
574
814
|
'LT' => 'Leotec',
|
|
575
815
|
'LP' => 'Le Pan',
|
|
816
|
+
'ZJ' => 'Leke',
|
|
576
817
|
'L7' => 'Lephone',
|
|
577
818
|
'LZ' => 'Lesia',
|
|
578
819
|
'L3' => 'Lexand',
|
|
@@ -580,16 +821,25 @@ class DeviceDetector
|
|
|
580
821
|
'LG' => 'LG',
|
|
581
822
|
'39' => 'Liberton',
|
|
582
823
|
'5L' => 'Linsar',
|
|
824
|
+
'LIN' => 'Linsay',
|
|
583
825
|
'LF' => 'Lifemaxx',
|
|
584
826
|
'LI' => 'Lingwin',
|
|
827
|
+
'LIM' => 'Lime',
|
|
585
828
|
'LJ' => 'L-Max',
|
|
586
829
|
'LW' => 'Linnex',
|
|
830
|
+
'JJ' => 'Listo',
|
|
831
|
+
'LNM' => 'LNMBBS',
|
|
587
832
|
'LO' => 'Loewe',
|
|
588
833
|
'YL' => 'Loview',
|
|
834
|
+
'LOV' => 'Lovme',
|
|
589
835
|
'1L' => 'Logic',
|
|
836
|
+
'LH' => 'Logic Instrument',
|
|
590
837
|
'LM' => 'Logicom',
|
|
838
|
+
'GY' => 'LOKMAT',
|
|
839
|
+
'LPX' => 'LPX-G',
|
|
591
840
|
'0L' => 'Lumigon',
|
|
592
841
|
'LU' => 'Lumus',
|
|
842
|
+
'LUM' => 'Lumitel',
|
|
593
843
|
'L9' => 'Luna',
|
|
594
844
|
'LR' => 'Luxor',
|
|
595
845
|
'LY' => 'LYF',
|
|
@@ -601,27 +851,38 @@ class DeviceDetector
|
|
|
601
851
|
'92' => 'MAC AUDIO',
|
|
602
852
|
'MJ' => 'Majestic',
|
|
603
853
|
'FQ' => 'Mafe',
|
|
854
|
+
'6Y' => 'Magicsee',
|
|
604
855
|
'23' => 'Magnus',
|
|
605
856
|
'NH' => 'Manhattan',
|
|
857
|
+
'MAN' => 'Mango',
|
|
606
858
|
'5M' => 'Mann',
|
|
607
859
|
'MA' => 'Manta Multimedia',
|
|
608
860
|
'Z0' => 'Mantra',
|
|
609
861
|
'J4' => 'Mara',
|
|
862
|
+
'MAR' => 'Marshal',
|
|
863
|
+
'8Y' => 'Massgo',
|
|
864
|
+
'MA1' => 'Mascom',
|
|
610
865
|
'2M' => 'Masstel',
|
|
866
|
+
'3X' => 'Mastertech',
|
|
867
|
+
'MAS' => 'Master-G',
|
|
611
868
|
'50' => 'Matrix',
|
|
612
869
|
'7M' => 'Maxcom',
|
|
870
|
+
'7M1' => 'Maxfone',
|
|
613
871
|
'ZM' => 'Maximus',
|
|
614
872
|
'6X' => 'Maxtron',
|
|
615
873
|
'0D' => 'MAXVI',
|
|
874
|
+
'XZ' => 'MAXX',
|
|
616
875
|
'MW' => 'Maxwest',
|
|
617
876
|
'M0' => 'Maze',
|
|
618
877
|
'YM' => 'Maze Speed',
|
|
619
878
|
'87' => 'Malata',
|
|
620
879
|
'28' => 'MBOX',
|
|
880
|
+
'FK' => 'MBI',
|
|
621
881
|
'3D' => 'MDC Store',
|
|
622
882
|
'1Y' => 'MDTV',
|
|
623
883
|
'09' => 'meanIT',
|
|
624
884
|
'M3' => 'Mecer',
|
|
885
|
+
'M3M' => 'M3 Mobile',
|
|
625
886
|
'0M' => 'Mecool',
|
|
626
887
|
'MC' => 'Mediacom',
|
|
627
888
|
'MK' => 'MediaTek',
|
|
@@ -637,8 +898,10 @@ class DeviceDetector
|
|
|
637
898
|
'MX' => 'MEU',
|
|
638
899
|
'MI' => 'MicroMax',
|
|
639
900
|
'MS' => 'Microsoft',
|
|
901
|
+
'6Q' => 'Microtech',
|
|
640
902
|
'1X' => 'Minix',
|
|
641
903
|
'OM' => 'Mintt',
|
|
904
|
+
'MIN' => 'Mint',
|
|
642
905
|
'MO' => 'Mio',
|
|
643
906
|
'X7' => 'Mione',
|
|
644
907
|
'M7' => 'Miray',
|
|
@@ -648,19 +911,29 @@ class DeviceDetector
|
|
|
648
911
|
'M5' => 'MIXC',
|
|
649
912
|
'2D' => 'MIVO',
|
|
650
913
|
'1Z' => 'MiXzo',
|
|
914
|
+
'MIW' => 'MIWANG',
|
|
651
915
|
'ML' => 'MLLED',
|
|
652
916
|
'LS' => 'MLS',
|
|
917
|
+
'MLA' => 'MLAB',
|
|
918
|
+
'5H' => 'MMI',
|
|
653
919
|
'4M' => 'Mobicel',
|
|
654
920
|
'M6' => 'Mobiistar',
|
|
921
|
+
'MOK' => 'Mobile Kingdom',
|
|
655
922
|
'MH' => 'Mobiola',
|
|
656
923
|
'MB' => 'Mobistel',
|
|
657
924
|
'ID' => 'MobiIoT',
|
|
658
925
|
'6W' => 'MobiWire',
|
|
659
926
|
'9M' => 'Mobo',
|
|
927
|
+
'MOB' => 'Mobell',
|
|
660
928
|
'M4' => 'Modecom',
|
|
661
929
|
'MF' => 'Mofut',
|
|
662
930
|
'MR' => 'Motorola',
|
|
931
|
+
'MIV' => 'Motiv',
|
|
663
932
|
'MV' => 'Movic',
|
|
933
|
+
'MOV' => 'Movitel',
|
|
934
|
+
'MO1' => 'MOVISUN',
|
|
935
|
+
'MOS' => 'Mosimosi',
|
|
936
|
+
'MOX' => 'Moxee',
|
|
664
937
|
'MM' => 'Mpman',
|
|
665
938
|
'MZ' => 'MSI',
|
|
666
939
|
'3R' => 'MStar',
|
|
@@ -669,6 +942,7 @@ class DeviceDetector
|
|
|
669
942
|
'72' => 'M-Tech',
|
|
670
943
|
'9H' => 'M-Horse',
|
|
671
944
|
'1R' => 'Multilaser',
|
|
945
|
+
'MPS' => 'MultiPOS',
|
|
672
946
|
'1M' => 'MYFON',
|
|
673
947
|
'MY' => 'MyPhone',
|
|
674
948
|
'51' => 'Myros',
|
|
@@ -677,7 +951,11 @@ class DeviceDetector
|
|
|
677
951
|
'3T' => 'MyTab',
|
|
678
952
|
'MG' => 'MyWigo',
|
|
679
953
|
'J3' => 'Mymaga',
|
|
954
|
+
'MYM' => 'MyMobile',
|
|
680
955
|
'07' => 'MyGica',
|
|
956
|
+
'MYG' => 'MygPad',
|
|
957
|
+
'MWA' => 'MwalimuPlus',
|
|
958
|
+
'NEO' => 'neoCore',
|
|
681
959
|
'08' => 'Nabi',
|
|
682
960
|
'N7' => 'National',
|
|
683
961
|
'NC' => 'Navcity',
|
|
@@ -685,33 +963,50 @@ class DeviceDetector
|
|
|
685
963
|
'7V' => 'Navitel',
|
|
686
964
|
'N3' => 'Navon',
|
|
687
965
|
'7R' => 'NavRoad',
|
|
966
|
+
'NAS' => 'NASCO',
|
|
688
967
|
'NP' => 'Naomi Phone',
|
|
968
|
+
'NAN' => 'Nanho',
|
|
689
969
|
'NE' => 'NEC',
|
|
970
|
+
'NDP' => 'Nedaphone',
|
|
690
971
|
'8N' => 'Necnot',
|
|
691
972
|
'NF' => 'Neffos',
|
|
973
|
+
'9X' => 'Neo',
|
|
974
|
+
'NEK' => 'NEKO',
|
|
692
975
|
'1N' => 'Neomi',
|
|
693
976
|
'7Q' => 'Neon IQ',
|
|
977
|
+
'8F' => 'Neolix',
|
|
694
978
|
'NA' => 'Netgear',
|
|
979
|
+
'NEM' => 'Netmak',
|
|
695
980
|
'NU' => 'NeuImage',
|
|
981
|
+
'NEU' => 'NeuTab',
|
|
696
982
|
'NW' => 'Newgen',
|
|
697
983
|
'N9' => 'Newland',
|
|
698
984
|
'0N' => 'Newman',
|
|
699
985
|
'NS' => 'NewsMy',
|
|
700
986
|
'ND' => 'Newsday',
|
|
701
987
|
'HB' => 'New Balance',
|
|
988
|
+
'BRI' => 'New Bridge',
|
|
702
989
|
'XB' => 'NEXBOX',
|
|
703
990
|
'NX' => 'Nexian',
|
|
991
|
+
'7X' => 'Nexa',
|
|
704
992
|
'N8' => 'NEXON',
|
|
705
993
|
'N2' => 'Nextbit',
|
|
706
994
|
'NT' => 'NextBook',
|
|
995
|
+
'NTT' => 'NTT West',
|
|
707
996
|
'4N' => 'NextTab',
|
|
997
|
+
'NEX' => 'NEXT',
|
|
998
|
+
'NJO' => 'nJoy',
|
|
708
999
|
'NG' => 'NGM',
|
|
709
1000
|
'NZ' => 'NG Optics',
|
|
1001
|
+
'NZP' => 'NGpon',
|
|
710
1002
|
'NN' => 'Nikon',
|
|
711
1003
|
'NI' => 'Nintendo',
|
|
1004
|
+
'NIN' => 'NINETEC',
|
|
712
1005
|
'N5' => 'NOA',
|
|
713
1006
|
'N1' => 'Noain',
|
|
714
1007
|
'N6' => 'Nobby',
|
|
1008
|
+
'NOV' => 'Novey',
|
|
1009
|
+
'NO1' => 'NOVO',
|
|
715
1010
|
'57' => 'Nubia',
|
|
716
1011
|
'JN' => 'NOBUX',
|
|
717
1012
|
'NB' => 'Noblex',
|
|
@@ -719,14 +1014,18 @@ class DeviceDetector
|
|
|
719
1014
|
'NK' => 'Nokia',
|
|
720
1015
|
'NM' => 'Nomi',
|
|
721
1016
|
'2N' => 'Nomu',
|
|
1017
|
+
'6H' => 'Noontec',
|
|
722
1018
|
'NR' => 'Nordmende',
|
|
723
1019
|
'7N' => 'NorthTech',
|
|
1020
|
+
'NOT' => 'Nothing Phone',
|
|
724
1021
|
'5N' => 'Nos',
|
|
725
1022
|
'NO' => 'Nous',
|
|
726
1023
|
'NQ' => 'Novex',
|
|
1024
|
+
'NOD' => 'noDROPOUT',
|
|
727
1025
|
'NJ' => 'NuAns',
|
|
728
1026
|
'NL' => 'NUU Mobile',
|
|
729
1027
|
'N0' => 'Nuvo',
|
|
1028
|
+
'NUV' => 'NuVision',
|
|
730
1029
|
'NV' => 'Nvidia',
|
|
731
1030
|
'NY' => 'NYX Mobile',
|
|
732
1031
|
'O3' => 'O+',
|
|
@@ -734,67 +1033,102 @@ class DeviceDetector
|
|
|
734
1033
|
'O7' => 'Oale',
|
|
735
1034
|
'OC' => 'OASYS',
|
|
736
1035
|
'OB' => 'Obi',
|
|
737
|
-
'
|
|
1036
|
+
'OBR' => 'Ober',
|
|
1037
|
+
'OQ' => 'Meta',
|
|
738
1038
|
'O1' => 'Odys',
|
|
1039
|
+
'ODP' => 'Odotpad',
|
|
739
1040
|
'O9' => 'Ok',
|
|
740
1041
|
'OA' => 'Okapia',
|
|
1042
|
+
'OKI' => 'Oking',
|
|
1043
|
+
'OLA' => 'Olax',
|
|
1044
|
+
'OLK' => 'Olkya',
|
|
1045
|
+
'OLY' => 'Olympia',
|
|
1046
|
+
'OLT' => 'OLTO',
|
|
1047
|
+
'OJ' => 'Ookee',
|
|
741
1048
|
'OD' => 'Onda',
|
|
742
1049
|
'ON' => 'OnePlus',
|
|
1050
|
+
'ONC' => 'OneClick',
|
|
1051
|
+
'ONL' => 'OneLern',
|
|
1052
|
+
'OAN' => 'Oangcc',
|
|
743
1053
|
'OX' => 'Onix',
|
|
744
1054
|
'3O' => 'ONYX BOOX',
|
|
745
1055
|
'O4' => 'ONN',
|
|
1056
|
+
'9Q' => 'Onkyo',
|
|
746
1057
|
'2O' => 'OpelMobile',
|
|
747
1058
|
'OH' => 'Openbox',
|
|
1059
|
+
'7Y' => 'Obabox',
|
|
748
1060
|
'OP' => 'OPPO',
|
|
749
1061
|
'OO' => 'Opsson',
|
|
1062
|
+
'OPT' => 'Optoma',
|
|
1063
|
+
'OPH' => 'Ophone',
|
|
750
1064
|
'OR' => 'Orange',
|
|
751
1065
|
'O5' => 'Orbic',
|
|
752
1066
|
'Y6' => 'Orbita',
|
|
1067
|
+
'ORB' => 'Orbsmart',
|
|
753
1068
|
'OS' => 'Ordissimo',
|
|
1069
|
+
'8O' => 'Orion',
|
|
1070
|
+
'OTT' => 'OTTO',
|
|
754
1071
|
'OK' => 'Ouki',
|
|
755
1072
|
'0O' => 'OINOM',
|
|
756
1073
|
'QK' => 'OKWU',
|
|
1074
|
+
'QQ' => 'OMIX',
|
|
757
1075
|
'56' => 'OKSI',
|
|
758
1076
|
'OE' => 'Oukitel',
|
|
759
1077
|
'OU' => 'OUYA',
|
|
1078
|
+
'JB' => 'OUJIA',
|
|
760
1079
|
'OV' => 'Overmax',
|
|
761
1080
|
'30' => 'Ovvi',
|
|
762
1081
|
'O2' => 'Owwo',
|
|
1082
|
+
'OSC' => 'OSCAL',
|
|
763
1083
|
'OY' => 'Oysters',
|
|
1084
|
+
'QF' => 'OYSIN',
|
|
764
1085
|
'O6' => 'Oyyu',
|
|
765
1086
|
'OZ' => 'OzoneHD',
|
|
1087
|
+
'OLL' => 'Ollee',
|
|
766
1088
|
'7P' => 'P-UP',
|
|
767
1089
|
'YP' => 'Paladin',
|
|
768
1090
|
'PM' => 'Palm',
|
|
769
1091
|
'PN' => 'Panacom',
|
|
770
1092
|
'PA' => 'Panasonic',
|
|
771
1093
|
'PT' => 'Pantech',
|
|
1094
|
+
'PAN' => 'Pano',
|
|
1095
|
+
'PA1' => 'Panoramic',
|
|
1096
|
+
'PLT' => 'Platoon',
|
|
772
1097
|
'94' => 'Packard Bell',
|
|
773
1098
|
'H9' => 'Parrot Mobile',
|
|
1099
|
+
'PAR' => 'Partner Mobile',
|
|
1100
|
+
'PAP' => 'PAPYRE',
|
|
774
1101
|
'PB' => 'PCBOX',
|
|
1102
|
+
'PCS' => 'PC Smart',
|
|
775
1103
|
'PC' => 'PCD',
|
|
776
1104
|
'PD' => 'PCD Argentina',
|
|
777
1105
|
'PE' => 'PEAQ',
|
|
778
1106
|
'PG' => 'Pentagram',
|
|
779
1107
|
'PQ' => 'Pendoo',
|
|
780
1108
|
'93' => 'Perfeo',
|
|
1109
|
+
'8J' => 'Pelitt',
|
|
781
1110
|
'1P' => 'Phicomm',
|
|
782
1111
|
'4P' => 'Philco',
|
|
783
1112
|
'PH' => 'Philips',
|
|
784
1113
|
'5P' => 'Phonemax',
|
|
785
1114
|
'PO' => 'phoneOne',
|
|
786
1115
|
'PI' => 'Pioneer',
|
|
1116
|
+
'PIC' => 'Pioneer Computers',
|
|
787
1117
|
'PJ' => 'PiPO',
|
|
788
1118
|
'8P' => 'Pixelphone',
|
|
789
1119
|
'9O' => 'Pixela',
|
|
790
1120
|
'PX' => 'Pixus',
|
|
791
1121
|
'QP' => 'Pico',
|
|
1122
|
+
'PIR' => 'PIRANHA',
|
|
1123
|
+
'PIN' => 'PINE',
|
|
792
1124
|
'9P' => 'Planet Computers',
|
|
793
1125
|
'PY' => 'Ployer',
|
|
794
1126
|
'P4' => 'Plum',
|
|
1127
|
+
'PLU' => 'PlusStyle',
|
|
795
1128
|
'22' => 'Pluzz',
|
|
796
1129
|
'P8' => 'PocketBook',
|
|
797
1130
|
'0P' => 'POCO',
|
|
1131
|
+
'FH' => 'Point Mobile',
|
|
798
1132
|
'PV' => 'Point of View',
|
|
799
1133
|
'PL' => 'Polaroid',
|
|
800
1134
|
'Q6' => 'Polar',
|
|
@@ -809,10 +1143,13 @@ class DeviceDetector
|
|
|
809
1143
|
'3F' => 'Porsche',
|
|
810
1144
|
'P3' => 'PPTV',
|
|
811
1145
|
'FP' => 'Premio',
|
|
1146
|
+
'PR1' => 'Premier',
|
|
812
1147
|
'PR' => 'Prestigio',
|
|
813
1148
|
'P9' => 'Primepad',
|
|
1149
|
+
'PRM' => 'PRIME',
|
|
814
1150
|
'6P' => 'Primux',
|
|
815
1151
|
'2P' => 'Prixton',
|
|
1152
|
+
'PRI' => 'Pritom',
|
|
816
1153
|
'PF' => 'PROFiLO',
|
|
817
1154
|
'P6' => 'Proline',
|
|
818
1155
|
'5O' => 'Prology',
|
|
@@ -821,6 +1158,9 @@ class DeviceDetector
|
|
|
821
1158
|
'R0' => 'ProVision',
|
|
822
1159
|
'7O' => 'Polestar',
|
|
823
1160
|
'PU' => 'PULID',
|
|
1161
|
+
'UP' => 'Purism',
|
|
1162
|
+
'PUN' => 'Punos',
|
|
1163
|
+
'QFX' => 'QFX',
|
|
824
1164
|
'Q7' => 'Q-Box',
|
|
825
1165
|
'QH' => 'Q-Touch',
|
|
826
1166
|
'QB' => 'Q.Bell',
|
|
@@ -829,25 +1169,39 @@ class DeviceDetector
|
|
|
829
1169
|
'QT' => 'Qtek',
|
|
830
1170
|
'Q9' => 'QTECH',
|
|
831
1171
|
'QA' => 'Quantum',
|
|
1172
|
+
'QUE' => 'Quest',
|
|
1173
|
+
'QUA' => 'Quatro',
|
|
832
1174
|
'QU' => 'Quechua',
|
|
1175
|
+
'QUI' => 'Quipus',
|
|
833
1176
|
'QO' => 'Qumo',
|
|
834
1177
|
'UQ' => 'Qubo',
|
|
1178
|
+
'YQ' => 'QLink',
|
|
835
1179
|
'QY' => 'Qnet Mobile',
|
|
1180
|
+
'WJ' => 'Qware',
|
|
836
1181
|
'R2' => 'R-TV',
|
|
837
1182
|
'RA' => 'Ramos',
|
|
838
1183
|
'0R' => 'Raspberry',
|
|
839
1184
|
'R9' => 'Ravoz',
|
|
840
1185
|
'RZ' => 'Razer',
|
|
841
1186
|
'95' => 'Rakuten',
|
|
1187
|
+
'RAY' => 'Raylandz',
|
|
842
1188
|
'RC' => 'RCA Tablets',
|
|
843
1189
|
'2R' => 'Reach',
|
|
1190
|
+
'REL' => 'RelNAT',
|
|
844
1191
|
'RB' => 'Readboy',
|
|
845
1192
|
'RE' => 'Realme',
|
|
1193
|
+
'RE1' => 'Redbean',
|
|
846
1194
|
'R8' => 'RED',
|
|
1195
|
+
'REW' => 'Redway',
|
|
1196
|
+
'6F' => 'Redfox',
|
|
1197
|
+
'RE2' => 'RedLine',
|
|
847
1198
|
'RD' => 'Reeder',
|
|
848
1199
|
'Z9' => 'REGAL',
|
|
849
1200
|
'RH' => 'Remdun',
|
|
850
1201
|
'RP' => 'Revo',
|
|
1202
|
+
'REV' => 'Revomovil',
|
|
1203
|
+
'8R' => 'Retroid Pocket',
|
|
1204
|
+
'RIC' => 'Ricoh',
|
|
851
1205
|
'RI' => 'Rikomagic',
|
|
852
1206
|
'RM' => 'RIM',
|
|
853
1207
|
'RN' => 'Rinno',
|
|
@@ -855,34 +1209,52 @@ class DeviceDetector
|
|
|
855
1209
|
'R7' => 'Ritzviva',
|
|
856
1210
|
'RV' => 'Riviera',
|
|
857
1211
|
'6R' => 'Rivo',
|
|
1212
|
+
'RIZ' => 'Rizzen',
|
|
858
1213
|
'RR' => 'Roadrover',
|
|
1214
|
+
'QR' => 'ROADMAX',
|
|
1215
|
+
'ROC' => 'Roam Cat',
|
|
859
1216
|
'R1' => 'Rokit',
|
|
1217
|
+
'ROI' => 'ROiK',
|
|
860
1218
|
'RK' => 'Roku',
|
|
861
1219
|
'R3' => 'Rombica',
|
|
862
1220
|
'R5' => 'Ross&Moor',
|
|
863
1221
|
'RO' => 'Rover',
|
|
864
1222
|
'R6' => 'RoverPad',
|
|
865
1223
|
'RQ' => 'RoyQueen',
|
|
1224
|
+
'RJ' => 'Royole',
|
|
866
1225
|
'RT' => 'RT Project',
|
|
867
1226
|
'RG' => 'RugGear',
|
|
1227
|
+
'RUG' => 'Ruggex',
|
|
1228
|
+
'RUT' => 'RuggeTech',
|
|
868
1229
|
'RU' => 'Runbo',
|
|
1230
|
+
'RUP' => 'Rupa',
|
|
869
1231
|
'RL' => 'Ruio',
|
|
870
1232
|
'RY' => 'Ryte',
|
|
871
1233
|
'X5' => 'Saba',
|
|
872
1234
|
'8L' => 'S-TELL',
|
|
1235
|
+
'4O' => 'S2Tel',
|
|
873
1236
|
'89' => 'Seatel',
|
|
1237
|
+
'SEW' => 'Sewoo',
|
|
1238
|
+
'SE1' => 'SEEWO',
|
|
874
1239
|
'Y7' => 'Saiet',
|
|
875
1240
|
'X1' => 'Safaricom',
|
|
876
1241
|
'SG' => 'Sagem',
|
|
877
1242
|
'4L' => 'Salora',
|
|
878
1243
|
'SA' => 'Samsung',
|
|
1244
|
+
'SAT' => 'Samtech',
|
|
1245
|
+
'SAM' => 'Samtron',
|
|
1246
|
+
'SNA' => 'SNAMI',
|
|
879
1247
|
'S0' => 'Sanei',
|
|
880
1248
|
'12' => 'Sansui',
|
|
1249
|
+
'SAK' => 'Sankey',
|
|
881
1250
|
'SQ' => 'Santin',
|
|
882
1251
|
'SY' => 'Sanyo',
|
|
1252
|
+
'SAN' => 'SANY',
|
|
883
1253
|
'S9' => 'Savio',
|
|
884
1254
|
'Y4' => 'SCBC',
|
|
885
1255
|
'CZ' => 'Schneider',
|
|
1256
|
+
'SCO' => 'Scosmos',
|
|
1257
|
+
'ZG' => 'Schok',
|
|
886
1258
|
'G8' => 'SEG',
|
|
887
1259
|
'SD' => 'Sega',
|
|
888
1260
|
'0U' => 'Selecline',
|
|
@@ -896,9 +1268,12 @@ class DeviceDetector
|
|
|
896
1268
|
'S6' => 'Senseit',
|
|
897
1269
|
'EW' => 'Senwa',
|
|
898
1270
|
'24' => 'Seeken',
|
|
1271
|
+
'SEB' => 'SEBBE',
|
|
899
1272
|
'61' => 'Seuic',
|
|
900
1273
|
'SX' => 'SFR',
|
|
1274
|
+
'SGI' => 'SGIN',
|
|
901
1275
|
'SH' => 'Sharp',
|
|
1276
|
+
'JU' => 'Shanling',
|
|
902
1277
|
'7S' => 'Shift Phones',
|
|
903
1278
|
'78' => 'Shivaki',
|
|
904
1279
|
'RS' => 'Shtrikh-M',
|
|
@@ -912,25 +1287,35 @@ class DeviceDetector
|
|
|
912
1287
|
'98' => 'Simply',
|
|
913
1288
|
'52' => 'Singtech',
|
|
914
1289
|
'31' => 'Siragon',
|
|
915
|
-
'83' => 'Sirin
|
|
1290
|
+
'83' => 'Sirin Labs',
|
|
1291
|
+
'5Z' => 'SK Broadband',
|
|
916
1292
|
'GK' => 'SKG',
|
|
917
1293
|
'SW' => 'Sky',
|
|
918
1294
|
'SK' => 'Skyworth',
|
|
1295
|
+
'SKY' => 'Skyline',
|
|
1296
|
+
'SK1' => 'SkyStream',
|
|
1297
|
+
'SKK' => 'SKK Mobile',
|
|
919
1298
|
'14' => 'Smadl',
|
|
920
1299
|
'19' => 'Smailo',
|
|
921
1300
|
'SR' => 'Smart Electronic',
|
|
1301
|
+
'SMA' => 'Smart Kassel',
|
|
922
1302
|
'49' => 'Smart',
|
|
923
1303
|
'47' => 'SmartBook',
|
|
924
1304
|
'3B' => 'Smartab',
|
|
925
1305
|
'80' => 'SMARTEC',
|
|
1306
|
+
'SM1' => 'Smartex',
|
|
926
1307
|
'SC' => 'Smartfren',
|
|
927
1308
|
'S7' => 'Smartisan',
|
|
1309
|
+
'JR' => 'Sylvania',
|
|
1310
|
+
'SYH' => 'SYH',
|
|
928
1311
|
'3Y' => 'Smarty',
|
|
929
1312
|
'HH' => 'Smooth Mobile',
|
|
930
1313
|
'1Q' => 'Smotreshka',
|
|
931
1314
|
'SF' => 'Softbank',
|
|
932
1315
|
'9L' => 'SOLE',
|
|
933
1316
|
'JL' => 'SOLO',
|
|
1317
|
+
'SOS' => 'SOSH',
|
|
1318
|
+
'SOD' => 'Soda',
|
|
934
1319
|
'16' => 'Solone',
|
|
935
1320
|
'OI' => 'Sonim',
|
|
936
1321
|
'SO' => 'Sony',
|
|
@@ -939,6 +1324,7 @@ class DeviceDetector
|
|
|
939
1324
|
'8S' => 'Soyes',
|
|
940
1325
|
'77' => 'SONOS',
|
|
941
1326
|
'68' => 'Soho Style',
|
|
1327
|
+
'SOB' => 'SobieTech',
|
|
942
1328
|
'PK' => 'Spark',
|
|
943
1329
|
'FS' => 'SPC',
|
|
944
1330
|
'6S' => 'Spectrum',
|
|
@@ -956,10 +1342,12 @@ class DeviceDetector
|
|
|
956
1342
|
'GQ' => 'STG Telecom',
|
|
957
1343
|
'S2' => 'Stonex',
|
|
958
1344
|
'ST' => 'Storex',
|
|
1345
|
+
'STR' => 'Stream',
|
|
959
1346
|
'71' => 'StrawBerry',
|
|
960
1347
|
'96' => 'STRONG',
|
|
961
1348
|
'69' => 'Stylo',
|
|
962
1349
|
'9S' => 'Sugar',
|
|
1350
|
+
'SUR' => 'Surge',
|
|
963
1351
|
'06' => 'Subor',
|
|
964
1352
|
'SZ' => 'Sumvision',
|
|
965
1353
|
'0H' => 'Sunstech',
|
|
@@ -967,34 +1355,48 @@ class DeviceDetector
|
|
|
967
1355
|
'5S' => 'Sunvell',
|
|
968
1356
|
'5Y' => 'Sunny',
|
|
969
1357
|
'W8' => 'SUNWIND',
|
|
1358
|
+
'SBX' => 'SuperBOX',
|
|
970
1359
|
'SU' => 'SuperSonic',
|
|
971
1360
|
'79' => 'SuperTab',
|
|
972
1361
|
'S5' => 'Supra',
|
|
1362
|
+
'SUP' => 'Supraim',
|
|
973
1363
|
'ZS' => 'Suzuki',
|
|
974
1364
|
'2J' => 'Sunmi',
|
|
1365
|
+
'SUN' => 'Sunmax',
|
|
975
1366
|
'0W' => 'Swipe',
|
|
1367
|
+
'SWI' => 'Switel',
|
|
976
1368
|
'SS' => 'SWISSMOBILITY',
|
|
977
1369
|
'1W' => 'Swisstone',
|
|
978
1370
|
'W7' => 'SWTV',
|
|
1371
|
+
'SSK' => 'SSKY',
|
|
1372
|
+
'SYC' => 'Syco',
|
|
979
1373
|
'SM' => 'Symphony',
|
|
980
1374
|
'4S' => 'Syrox',
|
|
981
1375
|
'TM' => 'T-Mobile',
|
|
1376
|
+
'T96' => 'T96',
|
|
982
1377
|
'TK' => 'Takara',
|
|
983
1378
|
'73' => 'Tambo',
|
|
984
1379
|
'9N' => 'Tanix',
|
|
985
1380
|
'U5' => 'Taiga System',
|
|
1381
|
+
'TAL' => 'Talius',
|
|
986
1382
|
'7G' => 'TAG Tech',
|
|
987
1383
|
'T5' => 'TB Touch',
|
|
988
1384
|
'TC' => 'TCL',
|
|
989
1385
|
'T0' => 'TD Systems',
|
|
1386
|
+
'YY' => 'TD Tech',
|
|
990
1387
|
'H4' => 'Technicolor',
|
|
1388
|
+
'TEA' => 'TeachTouch',
|
|
991
1389
|
'Z5' => 'Technika',
|
|
1390
|
+
'TE1' => 'TechSmart',
|
|
992
1391
|
'TX' => 'TechniSat',
|
|
993
1392
|
'TT' => 'TechnoTrend',
|
|
994
1393
|
'TP' => 'TechPad',
|
|
1394
|
+
'TPS' => 'TPS',
|
|
995
1395
|
'9E' => 'Techwood',
|
|
1396
|
+
'7F' => 'Technopc',
|
|
996
1397
|
'T7' => 'Teclast',
|
|
997
1398
|
'TB' => 'Tecno Mobile',
|
|
1399
|
+
'TEC' => 'TecToy',
|
|
998
1400
|
'91' => 'TEENO',
|
|
999
1401
|
'2L' => 'Tele2',
|
|
1000
1402
|
'TL' => 'Telefunken',
|
|
@@ -1002,32 +1404,51 @@ class DeviceDetector
|
|
|
1002
1404
|
'T2' => 'Telenor',
|
|
1003
1405
|
'TE' => 'Telit',
|
|
1004
1406
|
'65' => 'Telia',
|
|
1407
|
+
'TEL' => 'Telma',
|
|
1005
1408
|
'PW' => 'Telpo',
|
|
1409
|
+
'TLS' => 'TeloSystems',
|
|
1410
|
+
'TER' => 'Teracube',
|
|
1006
1411
|
'TD' => 'Tesco',
|
|
1007
1412
|
'TA' => 'Tesla',
|
|
1008
1413
|
'9T' => 'Tetratab',
|
|
1414
|
+
'TET' => 'TETC',
|
|
1009
1415
|
'TZ' => 'teXet',
|
|
1010
1416
|
'29' => 'Teknosa',
|
|
1417
|
+
'JZ' => 'TJC',
|
|
1418
|
+
'JC' => 'TENPLUS',
|
|
1011
1419
|
'T4' => 'ThL',
|
|
1012
1420
|
'TN' => 'Thomson',
|
|
1013
1421
|
'O0' => 'Thuraya',
|
|
1014
1422
|
'TI' => 'TIANYU',
|
|
1423
|
+
'JY' => 'Tigers',
|
|
1015
1424
|
'8T' => 'Time2',
|
|
1016
1425
|
'TQ' => 'Timovi',
|
|
1426
|
+
'TIM' => 'TIMvision',
|
|
1017
1427
|
'2T' => 'Tinai',
|
|
1018
1428
|
'TF' => 'Tinmo',
|
|
1019
1429
|
'TH' => 'TiPhone',
|
|
1430
|
+
'YV' => 'TiVo',
|
|
1431
|
+
'TIB' => 'Tibuta',
|
|
1020
1432
|
'Y3' => 'TOKYO',
|
|
1433
|
+
'TOX' => 'TOX',
|
|
1021
1434
|
'T1' => 'Tolino',
|
|
1022
1435
|
'0T' => 'Tone',
|
|
1023
1436
|
'TY' => 'Tooky',
|
|
1437
|
+
'TOO' => 'TOOGO',
|
|
1024
1438
|
'T9' => 'Top House',
|
|
1025
1439
|
'DK' => 'Topelotek',
|
|
1026
1440
|
'42' => 'Topway',
|
|
1027
1441
|
'TO' => 'Toplux',
|
|
1442
|
+
'TOD' => 'TOPDON',
|
|
1443
|
+
'TOP' => 'TopDevice',
|
|
1444
|
+
'TO2' => 'TOPSHOWS',
|
|
1028
1445
|
'7T' => 'Torex',
|
|
1446
|
+
'TOR' => 'Torque',
|
|
1447
|
+
'6O' => 'TOSCIDO',
|
|
1448
|
+
'TO1' => 'Topsion',
|
|
1029
1449
|
'TS' => 'Toshiba',
|
|
1030
1450
|
'T8' => 'Touchmate',
|
|
1451
|
+
'TOU' => 'Touch Plus',
|
|
1031
1452
|
'5R' => 'Transpeed',
|
|
1032
1453
|
'T6' => 'TrekStor',
|
|
1033
1454
|
'T3' => 'Trevi',
|
|
@@ -1038,6 +1459,7 @@ class DeviceDetector
|
|
|
1038
1459
|
'JT' => 'True Slim',
|
|
1039
1460
|
'J1' => 'Trio',
|
|
1040
1461
|
'5C' => 'TTEC',
|
|
1462
|
+
'TTK' => 'TTK-TV',
|
|
1041
1463
|
'TU' => 'Tunisie Telecom',
|
|
1042
1464
|
'1T' => 'Turbo',
|
|
1043
1465
|
'TR' => 'Turbo-X',
|
|
@@ -1058,77 +1480,124 @@ class DeviceDetector
|
|
|
1058
1480
|
'UL' => 'Ulefone',
|
|
1059
1481
|
'UA' => 'Umax',
|
|
1060
1482
|
'UM' => 'UMIDIGI',
|
|
1483
|
+
'UNT' => 'Unitech',
|
|
1061
1484
|
'UZ' => 'Unihertz',
|
|
1062
1485
|
'3Z' => 'UZ Mobile',
|
|
1063
1486
|
'UX' => 'Unimax',
|
|
1487
|
+
'UNQ' => 'Uniqcell',
|
|
1064
1488
|
'US' => 'Uniscope',
|
|
1489
|
+
'UNI' => 'Unistrong',
|
|
1065
1490
|
'U2' => 'UNIWA',
|
|
1491
|
+
'UND' => 'Uniden',
|
|
1066
1492
|
'UO' => 'Unnecto',
|
|
1493
|
+
'UNN' => 'Unnion Technologies',
|
|
1067
1494
|
'UU' => 'Unonu',
|
|
1068
1495
|
'UN' => 'Unowhy',
|
|
1496
|
+
'UY' => 'UNNO',
|
|
1497
|
+
'UOO' => 'UOOGOU',
|
|
1498
|
+
'UNB' => 'Unblock Tech',
|
|
1069
1499
|
'UK' => 'UTOK',
|
|
1070
1500
|
'3U' => 'IUNI',
|
|
1071
1501
|
'UT' => 'UTStarcom',
|
|
1072
1502
|
'6U' => 'UTime',
|
|
1073
1503
|
'9U' => 'Urovo',
|
|
1504
|
+
'UW' => 'U-Magic',
|
|
1074
1505
|
'5V' => 'VAIO',
|
|
1075
1506
|
'WV' => 'VAVA',
|
|
1076
1507
|
'VA' => 'Vastking',
|
|
1077
1508
|
'VP' => 'Vargo',
|
|
1078
1509
|
'VC' => 'Vankyo',
|
|
1510
|
+
'VAL' => 'VALEM',
|
|
1511
|
+
'VAT' => 'VALTECH',
|
|
1079
1512
|
'VB' => 'VC',
|
|
1080
1513
|
'VN' => 'Venso',
|
|
1514
|
+
'VEN' => 'Venstar',
|
|
1081
1515
|
'UV' => 'Venturer',
|
|
1082
1516
|
'VQ' => 'Vega',
|
|
1517
|
+
'WC' => 'VEON',
|
|
1083
1518
|
'4V' => 'Verico',
|
|
1084
1519
|
'V4' => 'Verizon',
|
|
1085
1520
|
'VR' => 'Vernee',
|
|
1086
1521
|
'VX' => 'Vertex',
|
|
1087
1522
|
'VE' => 'Vertu',
|
|
1523
|
+
'VET' => 'VETAS',
|
|
1088
1524
|
'VL' => 'Verykool',
|
|
1525
|
+
'QV' => 'Verssed',
|
|
1526
|
+
'VER' => 'Versus',
|
|
1089
1527
|
'V8' => 'Vesta',
|
|
1528
|
+
'VEK' => 'Vekta',
|
|
1090
1529
|
'VT' => 'Vestel',
|
|
1091
1530
|
'48' => 'Vexia',
|
|
1092
1531
|
'V6' => 'VGO TEL',
|
|
1532
|
+
'QJ' => 'VDVD',
|
|
1533
|
+
'VIC' => 'Victurio',
|
|
1093
1534
|
'VD' => 'Videocon',
|
|
1094
1535
|
'VW' => 'Videoweb',
|
|
1095
1536
|
'VS' => 'ViewSonic',
|
|
1096
1537
|
'V7' => 'Vinga',
|
|
1097
1538
|
'V3' => 'Vinsoc',
|
|
1539
|
+
'XD' => 'Vinabox',
|
|
1540
|
+
'FV' => 'Vios',
|
|
1098
1541
|
'0V' => 'Vipro',
|
|
1099
1542
|
'ZV' => 'Virzo',
|
|
1543
|
+
'VIP' => 'Viper',
|
|
1100
1544
|
'VI' => 'Vitelcom',
|
|
1545
|
+
'VIB' => 'ViBox',
|
|
1101
1546
|
'8V' => 'Viumee',
|
|
1102
1547
|
'V5' => 'Vivax',
|
|
1548
|
+
'VIV' => 'VIVIMAGE',
|
|
1103
1549
|
'VV' => 'Vivo',
|
|
1104
1550
|
'6V' => 'VIWA',
|
|
1551
|
+
'VII' => 'VIIPOO',
|
|
1552
|
+
'VID' => 'VIDA',
|
|
1105
1553
|
'VZ' => 'Vizio',
|
|
1554
|
+
'VIZ' => 'Vizmo',
|
|
1555
|
+
'VIT' => 'Vityaz',
|
|
1106
1556
|
'9V' => 'Vision Touch',
|
|
1557
|
+
'VIL' => 'Visual Land',
|
|
1107
1558
|
'VK' => 'VK Mobile',
|
|
1108
1559
|
'JM' => 'v-mobile',
|
|
1560
|
+
'VHO' => 'V-HOPE',
|
|
1561
|
+
'VHM' => 'V-HOME',
|
|
1562
|
+
'VGE' => 'V-Gen',
|
|
1109
1563
|
'V0' => 'VKworld',
|
|
1110
1564
|
'VM' => 'Vodacom',
|
|
1111
1565
|
'VF' => 'Vodafone',
|
|
1566
|
+
'7W' => 'VOGA',
|
|
1112
1567
|
'V2' => 'Vonino',
|
|
1113
1568
|
'1V' => 'Vontar',
|
|
1114
1569
|
'VG' => 'Vorago',
|
|
1115
1570
|
'2V' => 'Vorke',
|
|
1571
|
+
'8U' => 'Vorcom',
|
|
1572
|
+
'JW' => 'Vortex',
|
|
1573
|
+
'VOR' => 'Vormor',
|
|
1116
1574
|
'V1' => 'Voto',
|
|
1117
1575
|
'Z7' => 'VOX',
|
|
1118
1576
|
'VO' => 'Voxtel',
|
|
1119
1577
|
'VY' => 'Voyo',
|
|
1578
|
+
'VOL' => 'Völfen',
|
|
1579
|
+
'VO1' => 'Volt',
|
|
1120
1580
|
'VH' => 'Vsmart',
|
|
1121
1581
|
'V9' => 'Vsun',
|
|
1122
1582
|
'VU' => 'Vulcan',
|
|
1123
1583
|
'3V' => 'VVETIME',
|
|
1584
|
+
'ZC' => 'VUCATIMES',
|
|
1585
|
+
'VUE' => 'Vue Micro',
|
|
1124
1586
|
'WA' => 'Walton',
|
|
1587
|
+
'WAF' => 'WAF',
|
|
1588
|
+
'WAL' => 'Waltter',
|
|
1589
|
+
'WHI' => 'White Mobile',
|
|
1125
1590
|
'WM' => 'Weimei',
|
|
1126
1591
|
'WE' => 'WellcoM',
|
|
1127
1592
|
'W6' => 'WELLINGTON',
|
|
1128
1593
|
'WD' => 'Western Digital',
|
|
1129
1594
|
'WT' => 'Westpoint',
|
|
1595
|
+
'WAN' => 'Wanmukang',
|
|
1596
|
+
'WA1' => 'WANSA',
|
|
1130
1597
|
'WY' => 'Wexler',
|
|
1131
1598
|
'3W' => 'WE',
|
|
1599
|
+
'WEC' => 'Wecool',
|
|
1600
|
+
'WEE' => 'Weelikeit',
|
|
1132
1601
|
'WP' => 'Wieppo',
|
|
1133
1602
|
'W2' => 'Wigor',
|
|
1134
1603
|
'WI' => 'Wiko',
|
|
@@ -1138,9 +1607,11 @@ class DeviceDetector
|
|
|
1138
1607
|
'9W' => 'Winmax',
|
|
1139
1608
|
'W5' => 'Winnovo',
|
|
1140
1609
|
'WU' => 'Wintouch',
|
|
1610
|
+
'WIS' => 'Winstar',
|
|
1141
1611
|
'W0' => 'Wiseasy',
|
|
1142
1612
|
'2W' => 'Wizz',
|
|
1143
1613
|
'W4' => 'WIWA',
|
|
1614
|
+
'WIZ' => 'WizarPos',
|
|
1144
1615
|
'WL' => 'Wolder',
|
|
1145
1616
|
'WG' => 'Wolfgang',
|
|
1146
1617
|
'WQ' => 'Wolki',
|
|
@@ -1148,38 +1619,65 @@ class DeviceDetector
|
|
|
1148
1619
|
'W1' => 'Woo',
|
|
1149
1620
|
'WR' => 'Wortmann',
|
|
1150
1621
|
'WX' => 'Woxter',
|
|
1622
|
+
'XQ' => 'X-AGE',
|
|
1623
|
+
'XEL' => 'XElectron',
|
|
1151
1624
|
'X3' => 'X-BO',
|
|
1625
|
+
'XMO' => 'X-Mobile',
|
|
1152
1626
|
'XT' => 'X-TIGI',
|
|
1153
1627
|
'XV' => 'X-View',
|
|
1154
1628
|
'X4' => 'X.Vision',
|
|
1629
|
+
'X88' => 'X88',
|
|
1630
|
+
'X96' => 'X96',
|
|
1631
|
+
'96Q' => 'X96Q',
|
|
1632
|
+
'A95' => 'A95X',
|
|
1155
1633
|
'XG' => 'Xgody',
|
|
1156
1634
|
'QX' => 'XGIMI',
|
|
1157
1635
|
'XL' => 'Xiaolajiao',
|
|
1158
1636
|
'XI' => 'Xiaomi',
|
|
1637
|
+
'XW' => 'Xiaodu',
|
|
1159
1638
|
'XN' => 'Xion',
|
|
1160
1639
|
'XO' => 'Xolo',
|
|
1161
1640
|
'XR' => 'Xoro',
|
|
1162
1641
|
'XS' => 'Xshitou',
|
|
1163
1642
|
'4X' => 'Xtouch',
|
|
1164
1643
|
'X8' => 'Xtratech',
|
|
1644
|
+
'XCR' => 'Xcruiser',
|
|
1645
|
+
'XCO' => 'XCOM',
|
|
1646
|
+
'XCL' => 'Xcell',
|
|
1647
|
+
'XWA' => 'Xwave',
|
|
1165
1648
|
'YD' => 'Yandex',
|
|
1166
1649
|
'YA' => 'Yarvik',
|
|
1167
1650
|
'Y2' => 'Yes',
|
|
1651
|
+
'YES' => 'Yestel',
|
|
1168
1652
|
'YE' => 'Yezz',
|
|
1653
|
+
'YG' => 'YEPEN',
|
|
1654
|
+
'YEL' => 'YELLYOUTH',
|
|
1169
1655
|
'YK' => 'Yoka TV',
|
|
1170
1656
|
'YO' => 'Yota',
|
|
1657
|
+
'YOU' => 'Youin',
|
|
1658
|
+
'YO1' => 'Youwei',
|
|
1659
|
+
'YOO' => 'Yooz',
|
|
1171
1660
|
'YT' => 'Ytone',
|
|
1661
|
+
'Y9' => 'YOTOPT',
|
|
1172
1662
|
'Y1' => 'Yu',
|
|
1663
|
+
'YF' => 'YU Fly',
|
|
1173
1664
|
'Y0' => 'YUHO',
|
|
1174
1665
|
'YN' => 'Yuno',
|
|
1666
|
+
'YUN' => 'YUNDOO',
|
|
1667
|
+
'YUS' => 'YunSong',
|
|
1668
|
+
'YUM' => 'YUMKEM',
|
|
1175
1669
|
'YU' => 'Yuandao',
|
|
1176
1670
|
'YS' => 'Yusun',
|
|
1177
1671
|
'YJ' => 'YASIN',
|
|
1178
1672
|
'YX' => 'Yxtel',
|
|
1179
1673
|
'0Z' => 'Zatec',
|
|
1180
1674
|
'2Z' => 'Zaith',
|
|
1675
|
+
'ZAM' => 'Zamolxe',
|
|
1676
|
+
'ZEA' => 'Zealot',
|
|
1181
1677
|
'PZ' => 'Zebra',
|
|
1678
|
+
'ZE1' => 'Zeblaze',
|
|
1182
1679
|
'ZE' => 'Zeemi',
|
|
1680
|
+
'WZ' => 'Zeeker',
|
|
1183
1681
|
'ZN' => 'Zen',
|
|
1184
1682
|
'ZK' => 'Zenek',
|
|
1185
1683
|
'ZL' => 'Zentality',
|
|
@@ -1187,8 +1685,14 @@ class DeviceDetector
|
|
|
1187
1685
|
'ZI' => 'Zidoo',
|
|
1188
1686
|
'FZ' => 'ZIFRO',
|
|
1189
1687
|
'ZX' => 'Ziox',
|
|
1688
|
+
'ZIK' => 'ZIK',
|
|
1689
|
+
'ZIG' => 'Zigo',
|
|
1690
|
+
'ZIN' => 'Zinox',
|
|
1190
1691
|
'ZO' => 'Zonda',
|
|
1692
|
+
'ZW' => 'Zonko',
|
|
1191
1693
|
'ZP' => 'Zopo',
|
|
1694
|
+
'ZOO' => 'ZoomSmart',
|
|
1695
|
+
'ZO1' => 'Zoom',
|
|
1192
1696
|
'ZT' => 'ZTE',
|
|
1193
1697
|
'ZU' => 'Zuum',
|
|
1194
1698
|
'ZY' => 'Zync',
|
|
@@ -1196,6 +1700,8 @@ class DeviceDetector
|
|
|
1196
1700
|
'ZQ' => 'ZYQ',
|
|
1197
1701
|
'Z4' => 'ZH&K',
|
|
1198
1702
|
'OW' => 'öwn',
|
|
1703
|
+
'WBF' => 'Webfleet',
|
|
1704
|
+
|
|
1199
1705
|
# legacy brands, might be removed in future versions
|
|
1200
1706
|
'WB' => 'Web TV',
|
|
1201
1707
|
'XX' => 'Unknown'
|
|
@@ -1218,11 +1724,24 @@ class DeviceDetector
|
|
|
1218
1724
|
end
|
|
1219
1725
|
|
|
1220
1726
|
def brand
|
|
1221
|
-
regex_meta[:brand]
|
|
1727
|
+
return regex_meta[:brand] if regex_meta[:brand] == 'Sony Ericsson'
|
|
1728
|
+
|
|
1729
|
+
brand = regex_meta[:regex_name] || regex_meta[:brand] || vendor_fragment.name || fix_for_x_music
|
|
1730
|
+
return if brand == 'Unknown'
|
|
1731
|
+
|
|
1732
|
+
brand
|
|
1222
1733
|
end
|
|
1223
1734
|
|
|
1224
1735
|
private
|
|
1225
1736
|
|
|
1737
|
+
def fix_for_x_music
|
|
1738
|
+
user_agent&.include?('X-music Ⅲ') ? 'OneClick' : nil
|
|
1739
|
+
end
|
|
1740
|
+
|
|
1741
|
+
def vendor_fragment
|
|
1742
|
+
::DeviceDetector::VendorFragment.new(user_agent)
|
|
1743
|
+
end
|
|
1744
|
+
|
|
1226
1745
|
# The order of files needs to be the same as the order of device
|
|
1227
1746
|
# parser classes used in the piwik project.
|
|
1228
1747
|
def filenames
|