device_detector 1.0.0 → 1.0.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/.travis.yml +5 -4
- data/CHANGELOG.md +4 -4
- data/README.md +6 -8
- data/lib/device_detector.rb +2 -2
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +461 -10
- data/regexes/client/browser_engine.yml +4 -1
- data/regexes/client/browsers.yml +167 -17
- data/regexes/client/feed_readers.yml +30 -0
- data/regexes/client/libraries.yml +38 -0
- data/regexes/client/mediaplayers.yml +4 -0
- data/regexes/client/mobile_apps.yml +82 -1
- data/regexes/client/pim.yml +4 -0
- data/regexes/device/mobiles.yml +1761 -138
- data/regexes/device/portable_media_player.yml +2 -4
- data/regexes/device/televisions.yml +16 -2
- data/regexes/oss.yml +25 -4
- data/spec/device_detector/detector_fixtures_spec.rb +51 -11
- data/spec/device_detector_spec.rb +20 -0
- data/spec/fixtures/client/browser.yml +446 -11
- data/spec/fixtures/client/feed_reader.yml +25 -1
- data/spec/fixtures/client/library.yml +55 -1
- data/spec/fixtures/client/mediaplayer.yml +6 -0
- data/spec/fixtures/client/mobile_app.yml +81 -1
- data/spec/fixtures/client/pim.yml +7 -1
- data/spec/fixtures/detector/bots.yml +668 -108
- data/spec/fixtures/detector/camera.yml +14 -8
- data/spec/fixtures/detector/car_browser.yml +4 -3
- data/spec/fixtures/detector/console.yml +38 -24
- data/spec/fixtures/detector/desktop.yml +981 -687
- data/spec/fixtures/detector/feature_phone.yml +82 -41
- data/spec/fixtures/detector/feed_reader.yml +37 -0
- data/spec/fixtures/detector/mobile_apps.yml +257 -0
- data/spec/fixtures/detector/phablet.yml +569 -163
- data/spec/fixtures/detector/portable_media_player.yml +24 -16
- data/spec/fixtures/detector/smart_display.yml +8 -5
- data/spec/fixtures/detector/smartphone-1.yml +4698 -4235
- data/spec/fixtures/detector/smartphone-2.yml +4804 -4256
- data/spec/fixtures/detector/smartphone-3.yml +5060 -4603
- data/spec/fixtures/detector/smartphone-4.yml +6803 -2637
- data/spec/fixtures/detector/smartphone-5.yml +7044 -0
- data/spec/fixtures/detector/smartphone.yml +4380 -3904
- data/spec/fixtures/detector/tablet-1.yml +4530 -4036
- data/spec/fixtures/detector/tablet-2.yml +4875 -25
- data/spec/fixtures/detector/tablet.yml +3266 -2764
- data/spec/fixtures/detector/tv.yml +563 -206
- data/spec/fixtures/detector/unknown.yml +1033 -863
- data/spec/fixtures/parser/oss.yml +114 -2
- data/spec/fixtures/parser/vendorfragments.yml +2 -2
- metadata +5 -3
data/regexes/client/pim.yml
CHANGED
data/regexes/device/mobiles.yml
CHANGED
@@ -81,9 +81,15 @@ HTC:
|
|
81
81
|
|
82
82
|
- regex: 'NexusHD2' # custom rom for hd2
|
83
83
|
model: 'HD2'
|
84
|
-
- regex: 'HTC[ _\-]
|
84
|
+
- regex: 'HTC[ _\-]P715a'
|
85
85
|
device: 'tablet'
|
86
|
-
model: '
|
86
|
+
model: 'P715a'
|
87
|
+
- regex: 'HTC[ _\-]Flyer Build'
|
88
|
+
device: 'tablet'
|
89
|
+
model: 'Flyer'
|
90
|
+
- regex: 'HTC[ _\-]Flyer[ _\-]([\w]{1,5})'
|
91
|
+
device: 'tablet'
|
92
|
+
model: 'Flyer $1'
|
87
93
|
- regex: 'HTC[ _\-]One[ _\-]max[);/ ]'
|
88
94
|
device: 'phablet'
|
89
95
|
model: 'One max'
|
@@ -115,14 +121,44 @@ HTC:
|
|
115
121
|
- regex: '(One M8)'
|
116
122
|
model: '$1'
|
117
123
|
|
124
|
+
# microsoft
|
125
|
+
Microsoft:
|
126
|
+
regex: 'KIN\.(One|Two)|RM-(?:1031|106[57]|109[02]|1099|1109|1114|1127|1141|1154)|Microsoft; Lumia'
|
127
|
+
device: 'smartphone'
|
128
|
+
models:
|
129
|
+
- regex: 'KIN\.(One|Two)'
|
130
|
+
device: 'feature phone'
|
131
|
+
model: 'Kin $1'
|
132
|
+
|
133
|
+
- regex: 'RM-1031'
|
134
|
+
model: 'Lumia 532'
|
135
|
+
- regex: 'RM-106[57]'
|
136
|
+
model: 'Lumia 640 XL'
|
137
|
+
- regex: 'RM-109[02]'
|
138
|
+
model: 'Lumia 535'
|
139
|
+
- regex: 'RM-1099'
|
140
|
+
model: 'Lumia 430'
|
141
|
+
- regex: 'RM-1109'
|
142
|
+
model: 'Lumia 640'
|
143
|
+
- regex: 'RM-1114'
|
144
|
+
model: 'Lumia 435'
|
145
|
+
- regex: 'RM-1127'
|
146
|
+
model: 'Lumia 550'
|
147
|
+
- regex: 'RM-1141'
|
148
|
+
model: 'Lumia 540'
|
149
|
+
- regex: 'RM-1154'
|
150
|
+
model: 'Lumia 650'
|
151
|
+
|
152
|
+
- regex: 'Microsoft; Lumia ([^;/)]+)[;/)]'
|
153
|
+
model: 'Lumia $1'
|
154
|
+
|
118
155
|
# NOKIA
|
119
156
|
Nokia:
|
120
|
-
regex: 'Nokia|Lumia|Maemo RX|portalmmm/2\.0 N7|portalmmm/2\.0 NK|nok[0-9]+|Symbian.*\s([a-z0-9]+)$|RX-51 N900'
|
157
|
+
regex: 'Nokia|Lumia|Maemo RX|portalmmm/2\.0 N7|portalmmm/2\.0 NK|nok[0-9]+|Symbian.*\s([a-z0-9]+)$|RX-51 N900|TA-[0-9]{4} Build'
|
121
158
|
device: 'smartphone'
|
122
159
|
models:
|
123
160
|
- regex: 'RX-51 N900'
|
124
161
|
model: 'N900'
|
125
|
-
device: 'tablet'
|
126
162
|
- regex: 'Nokia(N[0-9]+)'
|
127
163
|
model: '$1'
|
128
164
|
- regex: 'Nokia-([a-z0-9]+)'
|
@@ -152,6 +188,18 @@ Nokia:
|
|
152
188
|
device: 'feature phone'
|
153
189
|
model: '$1'
|
154
190
|
|
191
|
+
# Nokia branded phones by HMD Global
|
192
|
+
- regex: 'TA-10(07|23|29|35)'
|
193
|
+
model: '2'
|
194
|
+
- regex: 'TA-10(20|28|32|38)'
|
195
|
+
model: '3'
|
196
|
+
- regex: 'TA-10(24|27|44|53)'
|
197
|
+
model: '5'
|
198
|
+
- regex: 'TA-10(00|03|21|25|33|39)'
|
199
|
+
model: '6'
|
200
|
+
- regex: 'TA-10(04|12)'
|
201
|
+
model: '8'
|
202
|
+
|
155
203
|
# CnM
|
156
204
|
CnM:
|
157
205
|
regex: 'CnM'
|
@@ -162,9 +210,13 @@ CnM:
|
|
162
210
|
|
163
211
|
# RIM/BlackBerry
|
164
212
|
RIM:
|
165
|
-
regex: 'BB10;|BlackBerry|rim[0-9]+|PlayBook'
|
213
|
+
regex: 'BB10;|BlackBerry|rim[0-9]+|PlayBook|STV100-4|STH100-2'
|
166
214
|
device: 'smartphone'
|
167
215
|
models:
|
216
|
+
- regex: 'STV100-4'
|
217
|
+
model: 'BlackBerry Priv'
|
218
|
+
- regex: 'STH100-2'
|
219
|
+
model: 'BlackBerry DTEK50'
|
168
220
|
- regex: 'BB10; ([a-z0-9\- ]+)\)'
|
169
221
|
model: 'BlackBerry $1'
|
170
222
|
- regex: 'PlayBook.+RIM Tablet OS'
|
@@ -195,9 +247,12 @@ Palm:
|
|
195
247
|
|
196
248
|
# HP
|
197
249
|
HP:
|
198
|
-
regex: 'TouchPad/\d+\.\d+|hp-tablet|HP ?iPAQ|webOS.*P160U|HP Slate|HP [78]|Compaq [7|8]'
|
250
|
+
regex: 'TouchPad/\d+\.\d+|hp-tablet|HP ?iPAQ|webOS.*P160U|HP Slate|HP [78]|Compaq [7|8]|HP; [^;/)]+'
|
199
251
|
device: 'smartphone'
|
200
252
|
models:
|
253
|
+
- regex: 'HP Slate 6 Voice Tab'
|
254
|
+
model: 'Slate 6 VoiceTab'
|
255
|
+
device: 'phablet'
|
201
256
|
- regex: 'HP ([78][^/;]*) Build'
|
202
257
|
model: 'Slate $1'
|
203
258
|
device: 'tablet'
|
@@ -213,6 +268,8 @@ HP:
|
|
213
268
|
- regex: 'TouchPad/(\d+\.\d+)|hp-tablet'
|
214
269
|
model: 'TouchPad'
|
215
270
|
device: 'tablet'
|
271
|
+
- regex: 'HP; ([^;/)]+)'
|
272
|
+
model: '$1'
|
216
273
|
- regex: 'HP(?: )?iPAQ(?: )?([a-z0-9]+)'
|
217
274
|
model: 'iPAQ $1'
|
218
275
|
- regex: 'webOS.*(P160U)'
|
@@ -259,6 +316,30 @@ Apple:
|
|
259
316
|
- regex: '(?:Apple-)?iPh(?:one)?7[C,]2'
|
260
317
|
model: 'iPhone 6'
|
261
318
|
device: 'smartphone'
|
319
|
+
- regex: '(?:Apple-)?iPh(?:one)?8[C,]1'
|
320
|
+
model: 'iPhone 6s'
|
321
|
+
device: 'smartphone'
|
322
|
+
- regex: '(?:Apple-)?iPh(?:one)?8[C,]2'
|
323
|
+
model: 'iPhone 6s Plus'
|
324
|
+
device: 'phablet'
|
325
|
+
- regex: '(?:Apple-)?iPh(?:one)?8[C,]4'
|
326
|
+
model: 'iPhone SE'
|
327
|
+
device: 'smartphone'
|
328
|
+
- regex: '(?:Apple-)?iPh(?:one)?9[C,][13]'
|
329
|
+
model: 'iPhone 7'
|
330
|
+
device: 'smartphone'
|
331
|
+
- regex: '(?:Apple-)?iPh(?:one)?9[C,][24]'
|
332
|
+
model: 'iPhone 7 Plus'
|
333
|
+
device: 'phablet'
|
334
|
+
- regex: '(?:Apple-)?iPh(?:one)?10[C,][14]'
|
335
|
+
model: 'iPhone 8'
|
336
|
+
device: 'smartphone'
|
337
|
+
- regex: '(?:Apple-)?iPh(?:one)?10[C,][25]'
|
338
|
+
model: 'iPhone 8 Plus'
|
339
|
+
device: 'phablet'
|
340
|
+
- regex: '(?:Apple-)?iPh(?:one)?10[C,][36]'
|
341
|
+
model: 'iPhone X'
|
342
|
+
device: 'phablet'
|
262
343
|
|
263
344
|
# specific tablet devices
|
264
345
|
- regex: '(?:Apple-)?iPad1[C,]1'
|
@@ -285,9 +366,24 @@ Apple:
|
|
285
366
|
- regex: '(?:Apple-)?iPad4[C,][789]'
|
286
367
|
model: 'iPad Mini 3'
|
287
368
|
device: 'tablet'
|
369
|
+
- regex: '(?:Apple-)?iPad5[C,][12]'
|
370
|
+
model: 'iPad Mini 4'
|
371
|
+
device: 'tablet'
|
288
372
|
- regex: '(?:Apple-)?iPad5[C,][34]'
|
289
373
|
model: 'iPad Air 2'
|
290
374
|
device: 'tablet'
|
375
|
+
- regex: '(?:Apple-)?iPad6[C,][34]'
|
376
|
+
model: 'iPad Pro 9.7'
|
377
|
+
device: 'tablet'
|
378
|
+
- regex: '(?:Apple-)?iPad6[C,][78]'
|
379
|
+
model: 'iPad Pro 12.9'
|
380
|
+
device: 'tablet'
|
381
|
+
- regex: '(?:Apple-)?iPad7[C,][12]'
|
382
|
+
model: 'iPad Pro 2 12.9'
|
383
|
+
device: 'tablet'
|
384
|
+
- regex: '(?:Apple-)?iPad7[C,][34]'
|
385
|
+
model: 'iPad Pro 10.5'
|
386
|
+
device: 'tablet'
|
291
387
|
|
292
388
|
- regex: '(?:iTunes-)?AppleTV'
|
293
389
|
model: 'Apple TV'
|
@@ -301,7 +397,7 @@ Apple:
|
|
301
397
|
|
302
398
|
# micromax
|
303
399
|
MicroMax:
|
304
|
-
regex: 'MicroMax[ \-\_]?[a-z0-9]
|
400
|
+
regex: '(MicroMax[ \-\_]?[a-z0-9]+|Q327)'
|
305
401
|
device: 'smartphone'
|
306
402
|
models:
|
307
403
|
- regex: 'MicroMax(?:[ \-\_])?(P[a-z0-9]+)'
|
@@ -309,6 +405,8 @@ MicroMax:
|
|
309
405
|
device: 'tablet'
|
310
406
|
- regex: 'MicroMax(?:[ \-\_])?([a-z0-9]+)'
|
311
407
|
model: '$1'
|
408
|
+
- regex: 'Q327'
|
409
|
+
model: 'Bolt'
|
312
410
|
|
313
411
|
# 3Q
|
314
412
|
3Q:
|
@@ -316,9 +414,38 @@ MicroMax:
|
|
316
414
|
device: 'tablet'
|
317
415
|
model: '$1'
|
318
416
|
|
417
|
+
# 4Good
|
418
|
+
4Good:
|
419
|
+
regex: '4Good[ _]|(?:4Good)?(S450m [43]G|S555m 4G|S501m 3G|T700i_3G|Light A103)'
|
420
|
+
device: 'smartphone'
|
421
|
+
models:
|
422
|
+
- regex: 'T700i_3G'
|
423
|
+
model: 'T700i 3G'
|
424
|
+
device: 'tablet'
|
425
|
+
- regex: '(S(?:450m|555m|501m)[_ ][43]G|Light A103)'
|
426
|
+
model: '$1'
|
427
|
+
- regex: '4Good[ _]([^;/]+) Build'
|
428
|
+
model: '$1'
|
429
|
+
- regex: '4Good[ _]([^);/ ]+)'
|
430
|
+
model: '$1'
|
431
|
+
|
432
|
+
# Bravis
|
433
|
+
Bravis:
|
434
|
+
regex: 'Bravis|A501 Bright|NB(?:10[56]|751|7[145])|NP101'
|
435
|
+
device: 'smartphone'
|
436
|
+
models:
|
437
|
+
- regex: 'A501 Bright'
|
438
|
+
model: 'A501 Bright'
|
439
|
+
- regex: 'Bravis[_ ]([^;\)]+) Build'
|
440
|
+
model: '$1'
|
441
|
+
- regex: '(NB(?:10[156]|751|7[145])|NP101)'
|
442
|
+
model: '$1'
|
443
|
+
device: 'tablet'
|
444
|
+
|
445
|
+
|
319
446
|
# Acer
|
320
447
|
Acer:
|
321
|
-
regex: 'acer|a(?:101|110|200|210|211|500|501|510|511|700|701)[);/ ]|Android.*V3[67]0[);/ ]|Android.*Z1[23456]0 Build|Android.*
|
448
|
+
regex: 'acer|(?<!ZTE BLADE )a(?:101|110|200|210|211|500|501|510|511|700|701)[);/ ]|Android.*V3[67]0[);/ ]|Android.*Z1[23456]0 Build|Android.*Z5\d{2} Build|Android.*T0[234678] Build|A1-830|A1-81[01]|A3-A[1234][01]|B1-7[1235678][01]|B1-7[23]3|B1-8[1235]0|B1-A71|B3-A[12]0|B3-A3[02]|E39 Build|S5[12]0 Build|DA[0-9]+HQ?L[);/ ]'
|
322
449
|
device: 'smartphone'
|
323
450
|
models:
|
324
451
|
# smart displays
|
@@ -342,9 +469,24 @@ Acer:
|
|
342
469
|
- regex: 'A3-A[12][01]'
|
343
470
|
model: 'Iconia A3'
|
344
471
|
device: 'tablet'
|
345
|
-
- regex: '
|
472
|
+
- regex: 'A3-A[34]0'
|
473
|
+
model: 'Iconia Tab 10'
|
474
|
+
device: 'tablet'
|
475
|
+
- regex: 'B1-7[1235][01]|B1-A71'
|
346
476
|
model: 'Iconia B1'
|
347
477
|
device: 'tablet'
|
478
|
+
- regex: 'B1-7[23]3'
|
479
|
+
model: 'Iconia Talk 7'
|
480
|
+
device: 'tablet'
|
481
|
+
- regex: 'B1-7[678]0'
|
482
|
+
model: 'Iconia One 7'
|
483
|
+
device: 'tablet'
|
484
|
+
- regex: 'B1-8[1235]0'
|
485
|
+
model: 'Iconia One 8'
|
486
|
+
device: 'tablet'
|
487
|
+
- regex: 'B3-A[12]0|B3-A3[02]'
|
488
|
+
model: 'Iconia One 10'
|
489
|
+
device: 'tablet'
|
348
490
|
|
349
491
|
# explicit smartphone models
|
350
492
|
- regex: 'E39 Build'
|
@@ -361,8 +503,20 @@ Acer:
|
|
361
503
|
model: 'Liquid Z$1'
|
362
504
|
- regex: 'Android.*Z160 Build'
|
363
505
|
model: 'Liquid Z4'
|
364
|
-
- regex: 'Android.*
|
365
|
-
model: 'Liquid
|
506
|
+
- regex: 'Android.*Z(5\d{2}) Build'
|
507
|
+
model: 'Liquid Z$1'
|
508
|
+
- regex: 'Android.*T02 Build'
|
509
|
+
model: 'Liquid Z530'
|
510
|
+
- regex: 'Android.*T03 Build'
|
511
|
+
model: 'Liquid Z630'
|
512
|
+
- regex: 'Android.*T04 Build'
|
513
|
+
model: 'Liquid Z630S'
|
514
|
+
- regex: 'Android.*T06 Build'
|
515
|
+
model: 'Liquid Zest'
|
516
|
+
- regex: 'Android.*T07 Build'
|
517
|
+
model: 'Liquid Zest 4G'
|
518
|
+
- regex: 'Android.*T08 Build'
|
519
|
+
model: 'Liquid Zest Plus'
|
366
520
|
- regex: 'Acer; ?([^;\)]+)'
|
367
521
|
model: '$1'
|
368
522
|
- regex: 'Acer[ _\-]?([^;\)]+) Build'
|
@@ -381,9 +535,42 @@ Airness:
|
|
381
535
|
|
382
536
|
# Alcatel
|
383
537
|
Alcatel:
|
384
|
-
regex: 'Alcatel|Alc[a-z0-9]+|One[ _]?Touch'
|
385
|
-
device: 'smartphone'
|
386
|
-
models:
|
538
|
+
regex: 'Alcatel|Alc[a-z0-9]+|One[ _]?Touch|(?:6036Y|6039H|50[16]5X|9005X|I213|5015D|5045D|5051X|6050[AFY]|6055K|8050D|4013M|I216X)[);/ ]'
|
539
|
+
device: 'smartphone'
|
540
|
+
models:
|
541
|
+
- regex: '50[16]5X[);/ ]'
|
542
|
+
model: 'One Touch Pop 3'
|
543
|
+
- regex: '5015D[);/ ]'
|
544
|
+
model: 'One Touch Pop 3 Dual SIM'
|
545
|
+
- regex: '5051X[);/ ]'
|
546
|
+
model: 'One Touch Pop 4'
|
547
|
+
- regex: '6036Y[);/ ]'
|
548
|
+
model: 'One Touch Idol 2 mini'
|
549
|
+
- regex: '6050[AFY][);/ ]'
|
550
|
+
model: 'One Touch Idol 2S'
|
551
|
+
- regex: '6039H[);/ ]'
|
552
|
+
model: 'One Touch Idol 3'
|
553
|
+
- regex: '6055K[);/ ]'
|
554
|
+
model: 'One Touch Idol 4'
|
555
|
+
- regex: 'I213[);/ ]'
|
556
|
+
model: 'One Touch Pixi 7'
|
557
|
+
device: 'tablet'
|
558
|
+
- regex: '8050D[);/ ]'
|
559
|
+
model: 'One Touch Pixi 4'
|
560
|
+
- regex: '5045D[);/ ]'
|
561
|
+
model: 'One Touch Pixi 4 5"'
|
562
|
+
- regex: 'I216X[);/ ]'
|
563
|
+
model: 'One Touch Pixi 7'
|
564
|
+
device: 'tablet'
|
565
|
+
- regex: '9005X[);/ ]'
|
566
|
+
model: 'One Touch Pixi 8'
|
567
|
+
device: 'tablet'
|
568
|
+
- regex: 'P320X'
|
569
|
+
model: 'One Touch POP 8'
|
570
|
+
device: 'tablet'
|
571
|
+
- regex: 'P310X'
|
572
|
+
model: 'One Touch POP 7'
|
573
|
+
device: 'tablet'
|
387
574
|
- regex: '(?:Alcatel[ _])?One[ _]?Touch[ _]((?:T[0-9]+|TAB[^/;]+|EVO[78](?:HD)?)) Build'
|
388
575
|
device: 'tablet'
|
389
576
|
model: 'One Touch $1'
|
@@ -401,12 +588,36 @@ Alcatel:
|
|
401
588
|
model: '$1'
|
402
589
|
- regex: 'Alc([a-z0-9]+)'
|
403
590
|
model: '$1'
|
591
|
+
- regex: '4013M'
|
592
|
+
model: 'One Touch Pixi 3'
|
404
593
|
|
405
594
|
# Allview
|
406
595
|
Allview:
|
407
|
-
regex: 'Allview'
|
408
|
-
device: 'smartphone'
|
409
|
-
models:
|
596
|
+
regex: 'Allview|P[567]_Lite(?:_TM)?|P5_Energy|P6_Energy_(?:Lite|Mini)|X2_Soul_Xtreme|A5_(?:Easy|Ready|Quad_Plus_TM)|A6_Duo|A[89]_Lite'
|
597
|
+
device: 'smartphone'
|
598
|
+
models:
|
599
|
+
- regex: 'P([567])_Lite(?:_TM)?'
|
600
|
+
model: 'P$1 Lite'
|
601
|
+
- regex: 'P5_Energy'
|
602
|
+
model: 'P5 Energy'
|
603
|
+
- regex: 'P6_Energy_Lite'
|
604
|
+
model: 'P6 Energy Lite'
|
605
|
+
- regex: 'P6_Energy_mini'
|
606
|
+
model: 'P6 Energy Mini'
|
607
|
+
- regex: 'X2_Soul_Xtreme'
|
608
|
+
model: 'X2 Soul Xtreme'
|
609
|
+
- regex: 'A5_Easy'
|
610
|
+
model: 'A5 Easy'
|
611
|
+
- regex: 'A5_Ready'
|
612
|
+
model: 'A5 Ready'
|
613
|
+
- regex: 'A5_Quad_Plus_TM'
|
614
|
+
model: 'A5 Quad Plus'
|
615
|
+
- regex: 'A6_Duo'
|
616
|
+
model: 'A6 Duo'
|
617
|
+
- regex: 'A8_Lite'
|
618
|
+
model: 'A8 Lite'
|
619
|
+
- regex: 'A9_Lite'
|
620
|
+
model: 'A9 Lite'
|
410
621
|
- regex: 'Allview[ _-]([^;/]+) Build'
|
411
622
|
model: '$1'
|
412
623
|
- regex: 'Allview[ _-]([^;/]+)[;/)]'
|
@@ -557,7 +768,7 @@ Garmin-Asus:
|
|
557
768
|
|
558
769
|
# Asus
|
559
770
|
Asus:
|
560
|
-
regex: 'Asus|Transformer|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|Z00D)[);/ ]'
|
771
|
+
regex: 'Asus|Transformer|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|Z00D|Z00YD)[);/ ]'
|
561
772
|
device: 'smartphone'
|
562
773
|
models:
|
563
774
|
# explicit tablet models
|
@@ -576,7 +787,7 @@ Asus:
|
|
576
787
|
- regex: 'ME301T[);/ ]'
|
577
788
|
model: 'MeMO Pad Smart 10'
|
578
789
|
device: 'tablet'
|
579
|
-
- regex: 'K01[3A][);/ ]'
|
790
|
+
- regex: '(?:K01[3A]|K007|K00R)[);/ ]'
|
580
791
|
model: 'MeMO Pad 7'
|
581
792
|
device: 'tablet'
|
582
793
|
- regex: 'K01E[);/ ]'
|
@@ -633,13 +844,16 @@ Asus:
|
|
633
844
|
model: 'Fonepad 8'
|
634
845
|
device: 'phablet'
|
635
846
|
|
636
|
-
|
637
847
|
# explicit smartphone models
|
638
848
|
- regex: '(?:ASUS_)?Z007'
|
639
849
|
model: 'ZenFone C'
|
640
850
|
- regex: '(?:ASUS_)?(?:Z00D|Z008D|Z00AD[AB]?)'
|
641
851
|
model: 'ZenFone 2'
|
642
|
-
- regex: '(?:ASUS_)
|
852
|
+
- regex: '(?:ASUS_)(Z00YD)'
|
853
|
+
model: '$1'
|
854
|
+
- regex: '(?:ASUS_)?Z00[ERL]D'
|
855
|
+
model: 'ZenFone 2 Laser'
|
856
|
+
- regex: '(?:ASUS_)?T00[IQ1]'
|
643
857
|
model: 'ZenFone 4'
|
644
858
|
- regex: '(?:ASUS_)?T00[JF]'
|
645
859
|
model: 'ZenFone 5'
|
@@ -649,6 +863,20 @@ Asus:
|
|
649
863
|
model: 'ZenFone 5 Lite'
|
650
864
|
- regex: '(?:ASUS_)?(?:T00G|Z002)'
|
651
865
|
model: 'ZenFone 6'
|
866
|
+
- regex: '(?:ASUS_)?Z010D'
|
867
|
+
model: 'ZenFone Max'
|
868
|
+
- regex: '(?:ASUS_)?X014D'
|
869
|
+
model: 'ZenFone Go Plus'
|
870
|
+
- regex: '(?:ASUS_)?(Z00[SV]D|X009[DB][DA])'
|
871
|
+
model: 'ZenFone Go'
|
872
|
+
- regex: '(?:ASUS_)?X013D'
|
873
|
+
model: 'ZenFone Go Life'
|
874
|
+
- regex: '(?:ASUS_)?(X008)'
|
875
|
+
model: 'ZenFone 3 Pegasus'
|
876
|
+
- regex: '(?:ASUS_)?Z00UD'
|
877
|
+
model: 'ZenFone Selfie'
|
878
|
+
- regex: '(?:ASUS_)?(Z017DA|ZE520KL)'
|
879
|
+
model: 'ZenFone 3'
|
652
880
|
|
653
881
|
# general detections
|
654
882
|
- regex: 'Asus(?:-|;)?([a-z0-9]+)'
|
@@ -686,6 +914,16 @@ Avvio:
|
|
686
914
|
- regex: 'Avvio[ _]([a-z0-9\-]+)'
|
687
915
|
model: '$1'
|
688
916
|
|
917
|
+
# Azumi Mobile
|
918
|
+
"Azumi Mobile":
|
919
|
+
regex: 'Azumi[_ ]'
|
920
|
+
device: 'smartphone'
|
921
|
+
models:
|
922
|
+
- regex: 'Azumi[_ ]([^/;]+) Build'
|
923
|
+
model: '$1'
|
924
|
+
- regex: 'Azumi[_ ]([a-z0-9_]+)'
|
925
|
+
model: '$1'
|
926
|
+
|
689
927
|
#Barnes & Noble
|
690
928
|
'Barnes & Noble':
|
691
929
|
regex: 'Nook|BN[TR]V[0-9]+'
|
@@ -698,11 +936,39 @@ Avvio:
|
|
698
936
|
- regex: '(BN[TR]V[0-9]+)'
|
699
937
|
model: 'Nook $1'
|
700
938
|
|
939
|
+
# BGH
|
940
|
+
BGH:
|
941
|
+
regex: '(?<!Positivo )BGH ([^/;]+) Build'
|
942
|
+
device: 'smartphone'
|
943
|
+
model: '$1'
|
944
|
+
|
945
|
+
# Bitel
|
946
|
+
Bitel:
|
947
|
+
regex: 'Bitel[ _-]([^/;]+) Build'
|
948
|
+
device: 'smartphone'
|
949
|
+
model: '$1'
|
950
|
+
|
701
951
|
# Blu
|
702
952
|
Blu:
|
703
|
-
regex: 'blu ([^/;]+) Build'
|
953
|
+
regex: '(?:blu|Dash)[ _]([^/;]+) Build'
|
704
954
|
device: 'smartphone'
|
705
|
-
|
955
|
+
models:
|
956
|
+
- regex: 'DASH[ _]([^/;]+) Build'
|
957
|
+
model: 'Dash $1'
|
958
|
+
- regex: 'blu[ _]([^/;]+) Build'
|
959
|
+
model: '$1'
|
960
|
+
|
961
|
+
# Blackview
|
962
|
+
Blackview:
|
963
|
+
regex: '(BV[2567]000(?:[ _](?:PRO))?|omega[ _]pro|Alife[ _][PS]1|Heatwave|DM550)[ _]Build'
|
964
|
+
device: 'smartphone'
|
965
|
+
models:
|
966
|
+
- regex: '(BV[2567]000(?:[ _](?:PRO))?)[ _]Build'
|
967
|
+
model: '$1'
|
968
|
+
- regex: 'omega[ _]pro'
|
969
|
+
model: 'Omega Pro'
|
970
|
+
- regex: '(Alife[ _][PS]1|DM550|Heatwave)'
|
971
|
+
model: '$1'
|
706
972
|
|
707
973
|
# Boway
|
708
974
|
Boway:
|
@@ -785,11 +1051,35 @@ BenQ:
|
|
785
1051
|
device: 'feature phone'
|
786
1052
|
model: '$1'
|
787
1053
|
|
1054
|
+
# Blaupunkt
|
1055
|
+
Blaupunkt:
|
1056
|
+
regex: 'Atlantis[_ ](?:1001A|1010A|A10\.G402)|Discovery[_ ](?:111C|1000C|1001A?)|Endeavour[_ ](?:785|101[GLM]|1000|1001|101[03]|1100)|Polaris[_ ]803'
|
1057
|
+
device: 'tablet'
|
1058
|
+
models:
|
1059
|
+
- regex: 'Discovery[_ ]111C'
|
1060
|
+
model: 'Discovery 111C'
|
1061
|
+
- regex: 'Discovery[_ ]1000C'
|
1062
|
+
model: 'Discovery 1000C'
|
1063
|
+
- regex: 'Discovery[_ ]1001A'
|
1064
|
+
model: 'Discovery 1001A'
|
1065
|
+
- regex: 'Discovery[_ ]1001'
|
1066
|
+
model: 'Discovery 1001'
|
1067
|
+
- regex: 'Endeavour[_ ](101[GLM]|785|100[01]|101[03]|1100)'
|
1068
|
+
model: 'Endeavour $1'
|
1069
|
+
- regex: 'Polaris[_ ](803)'
|
1070
|
+
model: 'Polaris $1'
|
1071
|
+
- regex: 'Atlantis[_ ](1001A|1010A|A10\.G402)'
|
1072
|
+
model: 'Atlantis $1'
|
1073
|
+
|
788
1074
|
# Bmobile
|
789
1075
|
Bmobile:
|
790
|
-
regex: '
|
1076
|
+
regex: 'Bmobile[_ ]'
|
791
1077
|
device: 'smartphone'
|
792
|
-
|
1078
|
+
models:
|
1079
|
+
- regex: 'Bmobile[_ ]([^/;]+) Build'
|
1080
|
+
model: '$1'
|
1081
|
+
- regex: 'Bmobile[_ ]([a-z0-9]+)'
|
1082
|
+
model: '$1'
|
793
1083
|
|
794
1084
|
# bq
|
795
1085
|
bq:
|
@@ -843,9 +1133,12 @@ Casio:
|
|
843
1133
|
|
844
1134
|
# Cat
|
845
1135
|
Cat:
|
846
|
-
regex: 'Cat ?(tablet|stargate|nova)'
|
1136
|
+
regex: 'Cat ?(tablet|stargate|nova)|B15Q'
|
847
1137
|
device: 'tablet'
|
848
1138
|
models:
|
1139
|
+
- regex: 'B15Q'
|
1140
|
+
model: 'B15Q'
|
1141
|
+
device: 'smartphone'
|
849
1142
|
- regex: 'Cat ?(?:tablet)? ?((?:Galactica|Nova|StarGate|PHOENIX)[^/;]*) Build'
|
850
1143
|
model: '$1'
|
851
1144
|
- regex: 'Cat ?tablet'
|
@@ -900,6 +1193,12 @@ Changhong:
|
|
900
1193
|
model: '$1'
|
901
1194
|
device: 'tablet'
|
902
1195
|
|
1196
|
+
# China Mobile
|
1197
|
+
'China Mobile':
|
1198
|
+
regex: '(M812C|1501_M02|9930i|A1303|A309W) Build'
|
1199
|
+
device: 'smartphone'
|
1200
|
+
model: '$1'
|
1201
|
+
|
903
1202
|
# Compal
|
904
1203
|
Compal:
|
905
1204
|
regex: 'Compal-[a-z0-9]+'
|
@@ -920,15 +1219,88 @@ ConCorde:
|
|
920
1219
|
- regex: 'ConCorde ([^/;]+) Build'
|
921
1220
|
model: '$1'
|
922
1221
|
|
1222
|
+
# Condor
|
1223
|
+
Condor:
|
1224
|
+
regex: '(?:PGN\-?[456][012][0-9]|PHS\-601)[;/) ]|CTAB[^/;]+ Build'
|
1225
|
+
device: 'smartphone'
|
1226
|
+
models:
|
1227
|
+
- regex: 'CTAB([^/;]+) Build'
|
1228
|
+
device: 'tablet'
|
1229
|
+
model: 'CTAB $1'
|
1230
|
+
|
1231
|
+
- regex: 'PHS\-601'
|
1232
|
+
model: 'C8'
|
1233
|
+
- regex: 'PGN\-?403'
|
1234
|
+
model: 'C4+ Noir'
|
1235
|
+
- regex: 'PGN\-?404'
|
1236
|
+
model: 'C7 Mini'
|
1237
|
+
- regex: 'PGN\-?409'
|
1238
|
+
model: 'Plume P4'
|
1239
|
+
- regex: 'PGN\-?504'
|
1240
|
+
model: 'C5'
|
1241
|
+
- regex: 'PGN\-?505'
|
1242
|
+
model: 'C8S'
|
1243
|
+
- regex: 'PGN\-?506'
|
1244
|
+
model: 'C7'
|
1245
|
+
- regex: 'PGN\-?507'
|
1246
|
+
model: 'Allure A9'
|
1247
|
+
- regex: 'PGN\-?508'
|
1248
|
+
model: 'C6+'
|
1249
|
+
- regex: 'PGN\-?509'
|
1250
|
+
model: 'C6 Pro'
|
1251
|
+
- regex: 'PGN\-?511'
|
1252
|
+
model: 'Allure A9 Plus'
|
1253
|
+
- regex: 'PGN\-?513'
|
1254
|
+
model: 'Griffe G4'
|
1255
|
+
- regex: 'PGN\-?514'
|
1256
|
+
model: 'Plume P7'
|
1257
|
+
- regex: 'PGN\-?515'
|
1258
|
+
model: 'Plume P4 Pro'
|
1259
|
+
- regex: 'PGN\-?516'
|
1260
|
+
model: 'Plume P5'
|
1261
|
+
- regex: 'PGN\-?51[78]'
|
1262
|
+
model: 'Plume P6'
|
1263
|
+
- regex: 'PGN\-?521'
|
1264
|
+
model: 'Griffe G4 Plus'
|
1265
|
+
- regex: 'PGN\-?522'
|
1266
|
+
model: 'P6 Plus'
|
1267
|
+
- regex: 'PGN\-?523'
|
1268
|
+
model: 'P7 Plus'
|
1269
|
+
- regex: 'PGN\-?527'
|
1270
|
+
model: 'Plume P4 Plus'
|
1271
|
+
- regex: 'PGN\-?528'
|
1272
|
+
model: 'Plume P6 Pro Lte'
|
1273
|
+
- regex: 'PGN\-?605'
|
1274
|
+
model: 'Plume P8'
|
1275
|
+
- regex: 'PGN\-?606'
|
1276
|
+
model: 'Allure A55'
|
1277
|
+
- regex: 'PGN\-?607'
|
1278
|
+
model: 'Allure A100'
|
1279
|
+
- regex: 'PGN\-?608'
|
1280
|
+
model: 'Allure A55 Slim'
|
1281
|
+
- regex: 'PGN\-?609'
|
1282
|
+
model: 'Allure A100 Lite'
|
1283
|
+
- regex: 'PGN\-?610'
|
1284
|
+
model: 'Plume P8 Lite'
|
1285
|
+
- regex: 'PGN\-?611'
|
1286
|
+
model: 'Allure A8'
|
1287
|
+
- regex: 'PGN\-?612'
|
1288
|
+
model: 'Allure A8 Plus'
|
1289
|
+
- regex: 'PGN\-?613'
|
1290
|
+
model: 'Allure A55 Plus'
|
1291
|
+
|
1292
|
+
- regex: 'PGN\-?([0-9]{3})'
|
1293
|
+
model: 'PGN-$1'
|
1294
|
+
|
923
1295
|
# Coolpad
|
924
1296
|
Coolpad:
|
925
|
-
regex: '(?:YL-)?Coolpad|8190Q[ ;/\)]|8295 Build'
|
1297
|
+
regex: '(?:YL-)?Coolpad|8190Q[ ;/\)]|(8295|5860S) Build'
|
926
1298
|
device: 'smartphone'
|
927
1299
|
models:
|
928
1300
|
- regex: '8190Q[ ;/\)]'
|
929
1301
|
model: '8190Q'
|
930
|
-
- regex: '8295 Build'
|
931
|
-
model: '
|
1302
|
+
- regex: '(5860S|8295) Build'
|
1303
|
+
model: '$1'
|
932
1304
|
- regex: '(?:YL-)?Coolpad[ _\-]?([^/;]+) Build'
|
933
1305
|
model: '$1'
|
934
1306
|
- regex: '(?:YL-)?Coolpad[ _\-]?([a-z0-9\-]+)'
|
@@ -948,15 +1320,21 @@ Cricket:
|
|
948
1320
|
|
949
1321
|
# Crosscall
|
950
1322
|
Crosscall:
|
951
|
-
regex: 'Crosscall'
|
1323
|
+
regex: 'Crosscall|ODYSSEY_Plus|Odyssey S1|Trekker-[MSX][123]'
|
952
1324
|
device: 'smartphone'
|
953
1325
|
models:
|
954
1326
|
- regex: 'Crosscall ([^;/]+) Build'
|
955
1327
|
model: '$1'
|
1328
|
+
- regex: 'ODYSSEY_Plus'
|
1329
|
+
model: 'ODYSSEY+'
|
1330
|
+
- regex: 'Odyssey S1'
|
1331
|
+
model: 'ODYSSEY S1'
|
1332
|
+
- regex: 'Trekker-([MSX][123](?: Core)?)'
|
1333
|
+
model: 'Trekker-$1'
|
956
1334
|
|
957
1335
|
# Cube
|
958
1336
|
Cube:
|
959
|
-
regex: 'Cube|(U[0-9]+GT|K8GT)'
|
1337
|
+
regex: '(<!myPhone ?)Cube|(U[0-9]+GT|K8GT)'
|
960
1338
|
device: 'tablet'
|
961
1339
|
models:
|
962
1340
|
- regex: 'U27GT'
|
@@ -983,6 +1361,16 @@ CUBOT:
|
|
983
1361
|
- regex: '([^;/]+) Build/CUBOT'
|
984
1362
|
model: '$1'
|
985
1363
|
|
1364
|
+
# Cyrus
|
1365
|
+
Cyrus:
|
1366
|
+
regex: 'Cyrus[ _-]'
|
1367
|
+
device: 'smartphone'
|
1368
|
+
models:
|
1369
|
+
- regex: 'Cyrus[ _-]?([^;/)]+) Build'
|
1370
|
+
model: '$1'
|
1371
|
+
- regex: 'Cyrus[ _-]?([^;/)]+)[);/ ]'
|
1372
|
+
model: '$1'
|
1373
|
+
|
986
1374
|
# Datang
|
987
1375
|
Datang:
|
988
1376
|
regex: 'DATANG'
|
@@ -1007,7 +1395,7 @@ Denver:
|
|
1007
1395
|
|
1008
1396
|
# Dell
|
1009
1397
|
Dell:
|
1010
|
-
regex: 'Dell|Venue|XCD35'
|
1398
|
+
regex: 'Dell[^a-z]|Venue|XCD35'
|
1011
1399
|
device: 'smartphone'
|
1012
1400
|
models:
|
1013
1401
|
- regex: 'XCD35'
|
@@ -1033,6 +1421,28 @@ Desay:
|
|
1033
1421
|
- regex: 'Desay[ _-]?([^;/)]+)[);/ ]'
|
1034
1422
|
model: '$1'
|
1035
1423
|
|
1424
|
+
# DEXP
|
1425
|
+
DEXP:
|
1426
|
+
regex: 'DEXP|(?:Ursus|Ixion)[ _]([^;/]+) Build|H135[ _]Build'
|
1427
|
+
device: 'smartphone'
|
1428
|
+
models:
|
1429
|
+
|
1430
|
+
- regex: 'Ixion[_ ]([^;/]+) Build'
|
1431
|
+
model: 'Ixion $1'
|
1432
|
+
|
1433
|
+
- regex: 'Ursus ([^;/]+) Build'
|
1434
|
+
model: 'Ursus $1'
|
1435
|
+
device: 'tablet'
|
1436
|
+
|
1437
|
+
- regex: 'H135[ _]Build'
|
1438
|
+
model: 'Atlas'
|
1439
|
+
device: 'desktop'
|
1440
|
+
|
1441
|
+
- regex: 'DEXP[ _]([^;/]+) Build'
|
1442
|
+
model: '$1'
|
1443
|
+
- regex: 'DEXP[ _]([^);/]+)[);/ ]'
|
1444
|
+
model: '$1'
|
1445
|
+
|
1036
1446
|
# Dbtel
|
1037
1447
|
Dbtel:
|
1038
1448
|
regex: 'DBTEL(?:[\-/])?([a-z0-9]+)'
|
@@ -1045,6 +1455,72 @@ Dicam:
|
|
1045
1455
|
device: 'feature phone'
|
1046
1456
|
model: '$1'
|
1047
1457
|
|
1458
|
+
# Digma
|
1459
|
+
Digma:
|
1460
|
+
regex: 'Digma[_ ]([^;/]+) Build|HIT HT707[10]MG|CITI 1902 3G|(CITI (?:[A-Z0-9]+) 3G) C[ST]500[67]PG|iDrQ10 3G|iDxD8 3G|iDnD7|HIT 4G HT7074ML|IDX5|(iDx10|iDx7)|MVM900H(?:WZ|C)|MVM908HCZ|iDxD10 3G|(iDxD[45]|iDxQ5)|iDxD7[_ ]3G|PS604M|PT452E|Linx A400 3G LT4001PG|Linx C500 3G LT5001PG|Linx PS474S|NS6902QL|NS9797MG|((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\.ST]+|Prime)(?:[ _][43]G)?)|(VOX[ _](?:[0-9\.A-Z]+)[_ ][43]G)'
|
1461
|
+
device: 'smartphone'
|
1462
|
+
models:
|
1463
|
+
- regex: 'HIT HT707[10]MG'
|
1464
|
+
model: 'HIT 3G'
|
1465
|
+
device: 'tablet'
|
1466
|
+
- regex: 'iDx5'
|
1467
|
+
model: 'iDx5'
|
1468
|
+
- regex: 'iDxD10 3G'
|
1469
|
+
model: 'iDxD10 3G'
|
1470
|
+
device: 'tablet'
|
1471
|
+
- regex: '(VOX[ _](?:[0-9\.A-Z]+)[_ ][43]G)'
|
1472
|
+
model: '$1'
|
1473
|
+
- regex: 'PS604M'
|
1474
|
+
model: 'Linx 6.0'
|
1475
|
+
- regex: '(Linx A400 3G) LT4001PG'
|
1476
|
+
model: '$1'
|
1477
|
+
- regex: '(Linx C500 3G) LT5001PG'
|
1478
|
+
model: '$1'
|
1479
|
+
- regex: '(Linx PS474S)'
|
1480
|
+
model: '$1'
|
1481
|
+
- regex: 'PT452E'
|
1482
|
+
model: 'Linx 4.5'
|
1483
|
+
- regex: 'MVM900H(?:WZ|C)'
|
1484
|
+
model: 'iDx8'
|
1485
|
+
device: 'tablet'
|
1486
|
+
- regex: 'MVM908HCZ'
|
1487
|
+
model: 'iDx9'
|
1488
|
+
device: 'tablet'
|
1489
|
+
- regex: '(iDxD7[_ ]3G)'
|
1490
|
+
model: '$1'
|
1491
|
+
device: 'tablet'
|
1492
|
+
- regex: '(iDx10|iDx7)'
|
1493
|
+
model: '$1'
|
1494
|
+
- regex: '(iDxD[45]|iDxQ5)'
|
1495
|
+
model: '$1'
|
1496
|
+
- regex: 'HIT 4G HT7074ML'
|
1497
|
+
model: 'HIT 4G'
|
1498
|
+
device: 'tablet'
|
1499
|
+
- regex: '(CITI 1902 3G)'
|
1500
|
+
model: '$1'
|
1501
|
+
device: 'tablet'
|
1502
|
+
- regex: '(CITI (?:[A-Z0-9]+) 3G) C[ST]500[67]PG'
|
1503
|
+
model: '$1'
|
1504
|
+
device: 'tablet'
|
1505
|
+
- regex: 'iDxD8 3G'
|
1506
|
+
model: 'D-Plane2 8'
|
1507
|
+
device: 'tablet'
|
1508
|
+
- regex: '(iDrQ10 3G|iDnD7)'
|
1509
|
+
model: '$1'
|
1510
|
+
device: 'tablet'
|
1511
|
+
- regex: 'NS6902QL'
|
1512
|
+
model: 'Platina 7.2 4G'
|
1513
|
+
device: 'tablet'
|
1514
|
+
- regex: 'NS9797MG'
|
1515
|
+
model: 'Platina 7.2 3G'
|
1516
|
+
device: 'tablet'
|
1517
|
+
- regex: '((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\.ST]+|Prime)(?:[ _][43]G)?)'
|
1518
|
+
model: '$1'
|
1519
|
+
device: 'tablet'
|
1520
|
+
- regex: 'Digma[_ ]([^;/]+) Build'
|
1521
|
+
model: '$1'
|
1522
|
+
device: 'tablet'
|
1523
|
+
|
1048
1524
|
# DoCoMo
|
1049
1525
|
DoCoMo:
|
1050
1526
|
regex: 'DoCoMo|\;FOMA|KGT/1\.0'
|
@@ -1059,10 +1535,10 @@ DoCoMo:
|
|
1059
1535
|
|
1060
1536
|
# Doogee
|
1061
1537
|
Doogee:
|
1062
|
-
regex: 'DOOGEE[ _-]|((?:BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|
|
1538
|
+
regex: 'DOOGEE[ _-]|((?:BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|TITANS2?))[ -_](DG[0-9]+C?)[);/ ]'
|
1063
1539
|
device: 'smartphone'
|
1064
1540
|
models:
|
1065
|
-
- regex: '(?:DOOGEE[ _-])?((?:BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|
|
1541
|
+
- regex: '(?:DOOGEE[ _-])?((?:BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|TITANS2?))[ -_](DG[0-9]+C?)[);/ ]'
|
1066
1542
|
model: '$1 $2'
|
1067
1543
|
- regex: 'DOOGEE[ _-]([^);/]+) Build'
|
1068
1544
|
model: '$1'
|
@@ -1085,6 +1561,16 @@ Dopod:
|
|
1085
1561
|
device: 'feature phone'
|
1086
1562
|
model: '$1'
|
1087
1563
|
|
1564
|
+
# Doro
|
1565
|
+
Doro:
|
1566
|
+
regex: 'Doro'
|
1567
|
+
device: 'smartphone'
|
1568
|
+
models:
|
1569
|
+
- regex: 'Doro[ _-]?([^;/)]+) Build'
|
1570
|
+
model: '$1'
|
1571
|
+
- regex: 'Doro[ _-]([0-9a-z]+)'
|
1572
|
+
model: '$1'
|
1573
|
+
|
1088
1574
|
# Dune HD
|
1089
1575
|
'Dune HD':
|
1090
1576
|
regex: 'DuneHD'
|
@@ -1156,9 +1642,19 @@ ECS:
|
|
1156
1642
|
|
1157
1643
|
# Elephone
|
1158
1644
|
Elephone:
|
1159
|
-
regex: 'Elephone[ _\-]([^/;]+) Build'
|
1645
|
+
regex: 'Elephone[ _\-]([^/;]+) Build|P6000( ?Pro| ?Plus|\+| ?02)? Build'
|
1160
1646
|
device: 'smartphone'
|
1161
|
-
|
1647
|
+
models:
|
1648
|
+
- regex: 'Elephone[ _\-]([^/;]+) Build'
|
1649
|
+
model: '$1'
|
1650
|
+
- regex: 'P6000 Build'
|
1651
|
+
model: 'P6000'
|
1652
|
+
- regex: 'P6000(\+| ?Plus) Build'
|
1653
|
+
model: 'P6000 Plus'
|
1654
|
+
- regex: 'P6000 02 Build'
|
1655
|
+
model: 'P6000 02'
|
1656
|
+
- regex: 'P6000 ?Pro Build'
|
1657
|
+
model: 'P6000 Pro'
|
1162
1658
|
|
1163
1659
|
# Energy Sistem
|
1164
1660
|
'Energy Sistem':
|
@@ -1188,9 +1684,15 @@ Rikomagic:
|
|
1188
1684
|
device: 'tv'
|
1189
1685
|
model: 'MK$1'
|
1190
1686
|
|
1687
|
+
# Senseit
|
1688
|
+
Senseit:
|
1689
|
+
regex: 'SENSEIT[ _]?([^;/)]+) Build'
|
1690
|
+
device: 'smartphone'
|
1691
|
+
model: '$1'
|
1692
|
+
|
1191
1693
|
# Sony & Sony Ericsson (combined as they are mixed up)
|
1192
1694
|
Sony:
|
1193
|
-
regex: 'Sony(?: ?Ericsson)?|SGP|Xperia|C1[569]0[45]|C2[01]0[45]|C2305|C530[236]|C550[23]|C6[56]0[236]|C6616|C68(?:0[26]|[34]3)|C69(?:0[236]|16|43)|D200[45]|D21(?:0[45]|14)|D22(?:0[236]|12|43)|D230[2356]|D240[36]|D25(?:02|33)|D510[236]|D530[36]|D5322|D5503|D58[03]3|D65(?:0[23]|43)|D66[
|
1695
|
+
regex: 'Sony(?: ?Ericsson)?|SGP|Xperia|C1[569]0[45]|C2[01]0[45]|C2305|C530[236]|C550[23]|C6[56]0[236]|C6616|C68(?:0[26]|[34]3)|C69(?:0[236]|16|43)|D200[45]|D21(?:0[45]|14)|D22(?:0[236]|12|43)|D230[2356]|D240[36]|D25(?:02|33)|D510[236]|D530[36]|D5322|D5503|D58[03]3|D65(?:0[23]|43)|D66[035]3|E210[45]|E2115|E5506|E2033|E2[03]03|E23[36]3|E2306|E2312|E2353|E53[03]3|E55[36]3|E56[46305][36]|E58[02]3|E65[35]3|E66[0358]3|E68[358]3|F311[12356]|F331[13]|F321[12356]|F5[13]21|F5122|F813[12]|F833[12]|G312[135]|G311[26]|G322[136]|G3212|G331[123]|G3412|G3423|G823[12]|G8[14]4[12]|(?:WT|LT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*(?: Build|\))|X?L39H|XM50[ht]|W960|portalmmm/2\.0 K|S3[69]h|X10[ia]v?|E1[05][ai]v?|MT[0-9]{2}[a-z]? Build|SO-0(?:[345]D|[234]E|[12]C|[1235]F|[12]G)|R800[aix]|LiveWithWalkman'
|
1194
1696
|
device: 'smartphone'
|
1195
1697
|
models:
|
1196
1698
|
# SONY ERICSSON: explicit smartphone models
|
@@ -1355,6 +1857,10 @@ Sony:
|
|
1355
1857
|
model: 'Xperia E'
|
1356
1858
|
- regex: '(?:Sony(?:Ericsson)?)?C160[45]'
|
1357
1859
|
model: 'Xperia E Dual'
|
1860
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:E210[45]|E2115)'
|
1861
|
+
model: 'Xperia E4'
|
1862
|
+
- regex: '(?:Sony(?:Ericsson)?)?E2003'
|
1863
|
+
model: 'Xperia E4G'
|
1358
1864
|
- regex: '(?:Sony(?:Ericsson)?)?C190[45]'
|
1359
1865
|
model: 'Xperia M'
|
1360
1866
|
- regex: '(?:Sony(?:Ericsson)?)?C200[45]'
|
@@ -1384,21 +1890,37 @@ Sony:
|
|
1384
1890
|
model: 'Xperia E3'
|
1385
1891
|
- regex: '(?:Sony(?:Ericsson)?)?D2212'
|
1386
1892
|
model: 'Xperia E3 Dual'
|
1893
|
+
- regex: '(?:Sony(?:Ericsson)?)?E2033'
|
1894
|
+
model: 'Xperia E4g Dual'
|
1387
1895
|
- regex: '(?:Sony(?:Ericsson)?)?D2302'
|
1388
1896
|
model: 'Xperia M2 Dual'
|
1389
1897
|
- regex: '(?:Sony(?:Ericsson)?)?D230[356]'
|
1390
1898
|
model: 'Xperia M2'
|
1391
1899
|
- regex: '(?:Sony(?:Ericsson)?)?D240[36]'
|
1392
1900
|
model: 'Xperia M2 Aqua'
|
1393
|
-
- regex: '(?:Sony(?:Ericsson)?)?
|
1901
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:E230[36]|E23[35]3)'
|
1394
1902
|
model: 'Xperia M4 Aqua'
|
1903
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:E2312|E2363)'
|
1904
|
+
model: 'Xperia M4 Aqua Dual'
|
1905
|
+
- regex: '(?:Sony(?:Ericsson)?)?E56[05][36]'
|
1906
|
+
model: 'Xperia M5'
|
1907
|
+
- regex: '(?:Sony(?:Ericsson)?)?E56[436]3'
|
1908
|
+
model: 'Xperia M5 Dual'
|
1395
1909
|
- regex: '(?:Sony(?:Ericsson)?)?D2502'
|
1396
1910
|
model: 'Xperia C3 Dual'
|
1397
1911
|
- regex: '(?:Sony(?:Ericsson)?)?D2533'
|
1398
1912
|
model: 'Xperia C3'
|
1913
|
+
- regex: '(?:Sony(?:Ericsson)?)?E5303'
|
1914
|
+
model: 'Xperia C4'
|
1915
|
+
- regex: '(?:Sony(?:Ericsson)?)?E53[03]3'
|
1916
|
+
model: 'Xperia C4 Dual'
|
1917
|
+
- regex: '(?:Sony(?:Ericsson)?)?E5506'
|
1918
|
+
model: 'Xperia C5 Ultra'
|
1919
|
+
- regex: '(?:Sony(?:Ericsson)?)?E55[36]3'
|
1920
|
+
model: 'Xperia C5 Ultra Dual'
|
1399
1921
|
- regex: '(?:Sony(?:Ericsson)?)?D510[236]'
|
1400
1922
|
model: 'Xperia T3'
|
1401
|
-
- regex: '(?:Sony(?:Ericsson)?)?D530[36]|XM50[ht]'
|
1923
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:D530[36]|XM50[ht])'
|
1402
1924
|
model: 'Xperia T2 Ultra'
|
1403
1925
|
device: 'phablet'
|
1404
1926
|
- regex: '(?:Sony(?:Ericsson)?)?D5322'
|
@@ -1412,16 +1934,64 @@ Sony:
|
|
1412
1934
|
model: 'Xperia Z2'
|
1413
1935
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D66[05]3|SO-01G)'
|
1414
1936
|
model: 'Xperia Z3'
|
1415
|
-
- regex: '(?:Sony(?:Ericsson)?)?(?:
|
1937
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:D6633)'
|
1938
|
+
model: 'Xperia Z3 Dual'
|
1939
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:E65[35]3)'
|
1416
1940
|
model: 'Xperia Z3+'
|
1417
1941
|
- regex: '(?:Sony(?:Ericsson)?)?(?:E58[02]3)'
|
1418
1942
|
model: 'Xperia Z5 Compact'
|
1943
|
+
- regex: '(?:Sony(?:Ericsson)?)?E66[05]3'
|
1944
|
+
model: 'Xperia Z5'
|
1945
|
+
- regex: '(?:Sony(?:Ericsson)?)?E66[38]3'
|
1946
|
+
model: 'Xperia Z5 Dual'
|
1947
|
+
- regex: '(?:Sony(?:Ericsson)?)?E68[58]3'
|
1948
|
+
model: 'Xperia Z5 Premium'
|
1949
|
+
- regex: '(?:Sony(?:Ericsson)?)?E6833'
|
1950
|
+
model: 'Xperia Z5 Premium Dual'
|
1951
|
+
- regex: '(?:Sony(?:Ericsson)?)?F311[135]'
|
1952
|
+
model: 'Xperia XA'
|
1953
|
+
- regex: '(?:Sony(?:Ericsson)?)?F311[26]'
|
1954
|
+
model: 'Xperia XA Dual'
|
1955
|
+
- regex: '(?:Sony(?:Ericsson)?)?F321[135]'
|
1956
|
+
model: 'Xperia XA Ultra'
|
1957
|
+
- regex: '(?:Sony(?:Ericsson)?)?F321[26]'
|
1958
|
+
model: 'Xperia XA Ultra Dual'
|
1959
|
+
- regex: '(?:Sony(?:Ericsson)?)?F833[12]'
|
1960
|
+
model: 'Xperia XZ'
|
1961
|
+
- regex: '(?:Sony(?:Ericsson)?)?G8441'
|
1962
|
+
model: 'Xperia XZ1 Compact'
|
1963
|
+
- regex: '(?:Sony(?:Ericsson)?)?F331[13]'
|
1964
|
+
model: 'Xperia E5'
|
1965
|
+
- regex: '(?:Sony(?:Ericsson)?)?G312[135]|G311[26]'
|
1966
|
+
model: 'Xperia XA1'
|
1967
|
+
- regex: '(?:Sony(?:Ericsson)?)?G3412|G3423'
|
1968
|
+
model: 'Xperia XA1 Plus'
|
1969
|
+
- regex: '(?:Sony(?:Ericsson)?)?G322[136]|G3212'
|
1970
|
+
model: 'Xperia XA1 Ultra'
|
1971
|
+
- regex: '(?:Sony(?:Ericsson)?)?G823[12]'
|
1972
|
+
model: 'Xperia XZs'
|
1973
|
+
- regex: '(?:Sony(?:Ericsson)?)?G814[12]'
|
1974
|
+
model: 'Xperia XZ Premium'
|
1975
|
+
- regex: '(?:Sony(?:Ericsson)?)?G331[13]'
|
1976
|
+
model: 'Xperia L1'
|
1977
|
+
- regex: '(?:Sony(?:Ericsson)?)?G3312'
|
1978
|
+
model: 'Xperia L1 Dual'
|
1419
1979
|
- regex: '(?:Sony(?:Ericsson)?)?SO-04E'
|
1420
1980
|
model: 'Xperia A'
|
1421
1981
|
- regex: '(?:Sony(?:Ericsson)?)?SO-04D'
|
1422
1982
|
model: 'Xperia GX'
|
1423
1983
|
- regex: '(?:Sony(?:Ericsson)?)?SO-05D'
|
1424
1984
|
model: 'Xperia SX'
|
1985
|
+
- regex: '(?:Sony(?:Ericsson)?)?F5121'
|
1986
|
+
model: 'Xperia X'
|
1987
|
+
- regex: '(?:Sony(?:Ericsson)?)?F5122'
|
1988
|
+
model: 'Xperia X Dual'
|
1989
|
+
- regex: '(?:Sony(?:Ericsson)?)?F5321'
|
1990
|
+
model: 'Xperia X Compact'
|
1991
|
+
- regex: '(?:Sony(?:Ericsson)?)?F8131'
|
1992
|
+
model: 'Xperia X Performance'
|
1993
|
+
- regex: '(?:Sony(?:Ericsson)?)?F8132'
|
1994
|
+
model: 'Xperia X Performance Dual'
|
1425
1995
|
|
1426
1996
|
# SONY: explicit tablet models
|
1427
1997
|
- regex: 'SGP(?:311|312|321)[);/ ]|SO-03E'
|
@@ -1521,6 +2091,57 @@ Evertek:
|
|
1521
2091
|
- regex: '(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build'
|
1522
2092
|
model: '$1'
|
1523
2093
|
|
2094
|
+
# Evolveo
|
2095
|
+
Evolveo:
|
2096
|
+
regex: 'EVOLVEO[ _]([^;/]*) Build'
|
2097
|
+
device: 'smartphone'
|
2098
|
+
models:
|
2099
|
+
- regex: 'Smart TV ([^;/]*) Build'
|
2100
|
+
device: 'tv'
|
2101
|
+
model: 'Smart TV $1'
|
2102
|
+
- regex: 'EVOLVEO[ _]([^;/]*) Build'
|
2103
|
+
model: '$1'
|
2104
|
+
|
2105
|
+
# Explay
|
2106
|
+
Explay:
|
2107
|
+
regex: 'Explay|ActiveD[ _]|Atlant |Informer[ _][0-9]+|CinemaTV 3G|Surfer[ _][0-9\.]|sQuad[ _][0-9\.]|Onliner[1-3]|RioPlay'
|
2108
|
+
device: 'tablet'
|
2109
|
+
models:
|
2110
|
+
- regex: 'ActiveD[ _]7.4[ _]3G'
|
2111
|
+
model: 'ActiveD 7.4 3G'
|
2112
|
+
- regex: 'ActiveD[ _]8.2[ _]3G'
|
2113
|
+
model: 'ActiveD 8.2 3G'
|
2114
|
+
- regex: 'CinemaTV[ _]3G'
|
2115
|
+
model: 'CinemaTV 3G'
|
2116
|
+
- regex: 'Informer[ _]([0-9]+(?:[ _]3G)?)'
|
2117
|
+
model: 'Informer $1'
|
2118
|
+
- regex: 'Surfer[ _]([0-9\.]+(?:[ _]3G)?)'
|
2119
|
+
model: 'Surfer $1'
|
2120
|
+
- regex: 'sQuad[ _]([0-9\.]+(?:[ _]3G)?)'
|
2121
|
+
model: 'sQuad $1'
|
2122
|
+
- regex: 'Onliner([1-3])'
|
2123
|
+
model: 'Onliner $1'
|
2124
|
+
- regex: 'Atlant[;/) ]'
|
2125
|
+
device: 'smartphone'
|
2126
|
+
model: 'Atlant'
|
2127
|
+
- regex: 'Explay[ _-]([^;/]+) Build'
|
2128
|
+
model: '$1'
|
2129
|
+
- regex: 'Explay[ _-]([^;/]+)[;/)]'
|
2130
|
+
model: '$1'
|
2131
|
+
- regex: '(RioPlay)[;/) ]'
|
2132
|
+
device: 'smartphone'
|
2133
|
+
model: 'Rio Play'
|
2134
|
+
|
2135
|
+
# EKO
|
2136
|
+
EKO:
|
2137
|
+
regex: 'EKO'
|
2138
|
+
device: 'smartphone'
|
2139
|
+
models:
|
2140
|
+
- regex: 'EKO[ _-]?([^;/)]+) Build'
|
2141
|
+
model: '$1'
|
2142
|
+
- regex: 'EKO[ _-]?([^;/)]+)[);/ ]'
|
2143
|
+
model: '$1'
|
2144
|
+
|
1524
2145
|
# Ezze
|
1525
2146
|
Ezze:
|
1526
2147
|
regex: 'EZZE-|EZ[a-z0-9]+'
|
@@ -1554,7 +2175,7 @@ Fairphone:
|
|
1554
2175
|
|
1555
2176
|
# Fujitsu
|
1556
2177
|
Fujitsu:
|
1557
|
-
regex: 'F-01F|F-02[EF]|F-05[DE]|F-06E|F-08D|F-09E'
|
2178
|
+
regex: 'F-01F|F-02[EF]|F-05[DE]|F-06E|F-08D|F-09E|M532[);/ ]'
|
1558
2179
|
device: 'smartphone'
|
1559
2180
|
models:
|
1560
2181
|
- regex: 'F-01F'
|
@@ -1578,6 +2199,9 @@ Fujitsu:
|
|
1578
2199
|
- regex: 'F-05E'
|
1579
2200
|
model: 'Arrows Tab F-05E'
|
1580
2201
|
device: 'tablet'
|
2202
|
+
- regex: 'M532[);/ ]'
|
2203
|
+
model: 'Stylistic'
|
2204
|
+
device: 'tablet'
|
1581
2205
|
|
1582
2206
|
# Gemini
|
1583
2207
|
Gemini:
|
@@ -1638,10 +2262,22 @@ Vizio:
|
|
1638
2262
|
|
1639
2263
|
# GOCLEVER
|
1640
2264
|
GOCLEVER:
|
1641
|
-
regex: 'GOCLEVER|QUANTUM|ARIES|INSIGNIA'
|
2265
|
+
regex: 'GOCLEVER|QUANTUM|ARIES|INSIGNIA|ORION_|ELIPSO'
|
1642
2266
|
device: 'smartphone'
|
1643
2267
|
models:
|
1644
|
-
- regex: '(
|
2268
|
+
- regex: 'QUANTUM_(1010N|1010M|900)'
|
2269
|
+
model: 'QUANTUM $1'
|
2270
|
+
device: 'tablet'
|
2271
|
+
- regex: 'INSIGNIA_785_PRO'
|
2272
|
+
model: 'INSIGNIA 785 PRO'
|
2273
|
+
device: 'tablet'
|
2274
|
+
- regex: '(ORION|ARIES|ELIPSO)[_ ](71|101|102)'
|
2275
|
+
model: '$1 $2'
|
2276
|
+
device: 'tablet'
|
2277
|
+
- regex: 'TQ700N'
|
2278
|
+
model: 'QUANTUM 700N'
|
2279
|
+
device: 'tablet'
|
2280
|
+
- regex: '((?:QUANTUM|ARIES|INSIGNIA|ORION|ELIPSO)[ _-]?[^;/]+) Build'
|
1645
2281
|
model: '$1'
|
1646
2282
|
- regex: 'GOCLEVER[ _-]TAB[ _-]?([^;/]+) Build'
|
1647
2283
|
model: 'TAB $1'
|
@@ -1659,6 +2295,7 @@ GOCLEVER:
|
|
1659
2295
|
- regex: 'GOCLEVER[ _-]?([^;/)]+)[;/)]'
|
1660
2296
|
model: '$1'
|
1661
2297
|
|
2298
|
+
|
1662
2299
|
# Goly
|
1663
2300
|
Goly:
|
1664
2301
|
regex: 'Goly[ _-]'
|
@@ -1671,7 +2308,7 @@ Goly:
|
|
1671
2308
|
|
1672
2309
|
# Google
|
1673
2310
|
Google:
|
1674
|
-
regex: 'Nexus|GoogleTV|Glass|CrKey[^a-z0-9]'
|
2311
|
+
regex: 'Nexus|GoogleTV|Glass|CrKey[^a-z0-9]|Pixel Build|Pixel (?:XL|C|2|2 XL) Build'
|
1675
2312
|
device: 'smartphone'
|
1676
2313
|
models:
|
1677
2314
|
- regex: 'Glass'
|
@@ -1692,6 +2329,17 @@ Google:
|
|
1692
2329
|
- regex: 'GoogleTV'
|
1693
2330
|
device: 'tv'
|
1694
2331
|
model: 'GoogleTV'
|
2332
|
+
- regex: 'Pixel Build'
|
2333
|
+
model: 'Pixel'
|
2334
|
+
- regex: 'Pixel XL'
|
2335
|
+
model: 'Pixel XL'
|
2336
|
+
- regex: 'Pixel 2 XL'
|
2337
|
+
model: 'Pixel 2 XL'
|
2338
|
+
- regex: 'Pixel 2'
|
2339
|
+
model: 'Pixel 2'
|
2340
|
+
- regex: 'Pixel C'
|
2341
|
+
device: 'tablet'
|
2342
|
+
model: 'Pixel C'
|
1695
2343
|
|
1696
2344
|
# Gradiente
|
1697
2345
|
Gradiente:
|
@@ -1745,7 +2393,7 @@ Hasee:
|
|
1745
2393
|
|
1746
2394
|
# Hisense
|
1747
2395
|
Hisense:
|
1748
|
-
regex: '(?:HS-)?Hisense ([^;/]+) Build|Hisense [^);/]+|HS-(?:U|EG?|I|T|X)[0-9]+[a-z0-9\-]*|E270BSA|M470BS[AE]|E2281'
|
2396
|
+
regex: '(?:HS-)?Hisense ([^;/]+) Build|Hisense [^);/]+|HS-(?:G|U|EG?|I|L|T|X)[0-9]+[a-z0-9\-]*|E270BSA|M470BS[AE]|E2281|EG680'
|
1749
2397
|
device: 'smartphone'
|
1750
2398
|
models:
|
1751
2399
|
# explicit tablet models
|
@@ -1758,8 +2406,10 @@ Hisense:
|
|
1758
2406
|
- regex: 'E2281'
|
1759
2407
|
device: 'tablet'
|
1760
2408
|
model: 'Sero 8'
|
2409
|
+
- regex: 'EG680'
|
2410
|
+
model: 'Smartfren Andromax Z'
|
1761
2411
|
|
1762
|
-
- regex: '(HS-(?:U|EG?|I|T|X)[0-9]+[a-z0-9\-]*)'
|
2412
|
+
- regex: '(HS-(?:G|U|EG?|I|L|T|X)[0-9]+[a-z0-9\-]*)'
|
1763
2413
|
model: '$1'
|
1764
2414
|
- regex: '(?:HS-)?Hisense ([^;/]+) Build'
|
1765
2415
|
model: '$1'
|
@@ -1772,6 +2422,16 @@ Hi-Level:
|
|
1772
2422
|
device: 'tablet'
|
1773
2423
|
model: 'HLV-T$1'
|
1774
2424
|
|
2425
|
+
# Homtom
|
2426
|
+
Homtom:
|
2427
|
+
regex: 'Homtom|(?:HT[0-9]{1,2})(?: ?Pro)? Build'
|
2428
|
+
device: 'smartphone'
|
2429
|
+
models:
|
2430
|
+
- regex: '(HT[0-9]{1,2}(?: ?Pro)?) Build'
|
2431
|
+
model: '$1'
|
2432
|
+
- regex: 'Homtom ([^;/]+) Build'
|
2433
|
+
model: '$1'
|
2434
|
+
|
1775
2435
|
# Hosin
|
1776
2436
|
Hosin:
|
1777
2437
|
regex: 'HOSIN[ _-]'
|
@@ -1784,7 +2444,7 @@ Hosin:
|
|
1784
2444
|
|
1785
2445
|
# Huawei
|
1786
2446
|
Huawei:
|
1787
|
-
regex: '(HW-)?(?:Huawei|Ideos|Honor[ _]|(?:H60-L(?:01|02|03|04|11|12)|H30-(?:C00|L01M?|L02|U10|T00|T10)|G621-TL00M?|PLK-(?:AL10|CL00|TL00|TL01H?|UL00|L01)|SCL-(?:AL00|CL00|TL00H
|
2447
|
+
regex: '(HW-)?(?:Huawei|Ideos|Honor[ _]|(?:H60-L(?:01|02|03|04|11|12)|H30-(?:C00|L01M?|L02|U10|T00|T10)|G621-TL00M?|PLK-(?:AL10|CL00|TL00|TL01H?|UL00|L01)|SCL-(?:AL00|CL00|TL00H?|L01)|CH(?:E2?|M)-[CUT]L00[HM]?|CHE1-CL[12]0|CHE2-L11|CHM-U01|KIW-L21|U(?:8230|8500|8661|8665|8667|8800|8818|8860|9200|9508)|NEM-L[52][21]|PLE-70[13]L|BLN-(?:L2[124]|AL10)|BND-(?:AL10|L21)|PRA-L[AX]1|PRA-AL00X|RNE-L22)[);/ ])|Bucare Y330-U05'
|
1788
2448
|
device: 'smartphone'
|
1789
2449
|
models:
|
1790
2450
|
- regex: 'U(8230|8661|8667)[);/ ]'
|
@@ -1817,10 +2477,55 @@ Huawei:
|
|
1817
2477
|
model: 'Honor 3C'
|
1818
2478
|
- regex: '(?:Honor_|HW-)?SCL-(?:AL00|CL00|TL00H?)(?:_TD)?[);/ ]'
|
1819
2479
|
model: 'Honor 4A'
|
2480
|
+
- regex: '(?:Honor_|HW-)?KIW-L21(?:_TD)?[);/ ]'
|
2481
|
+
model: 'Honor 5X'
|
2482
|
+
- regex: '(?:Honor_|HW-)?CHM-U01(?:_TD)?[);/ ]'
|
2483
|
+
model: 'Honor 4C'
|
1820
2484
|
- regex: '(?:Honor_|HW-)?H60-L(?:01|02|03|04|11|12)(?:_TD)?[);/ ]'
|
1821
2485
|
model: 'Honor 6'
|
2486
|
+
- regex: '(?:Honor_|HW-)?SCL-L01(?:_TD)?[);/ ]'
|
2487
|
+
model: 'Honor Y6'
|
1822
2488
|
- regex: '(?:Honor_|HW-)?PLK-(?:AL10|CL00|TL00|TL01H?|UL00|L01)[);/ ]'
|
1823
2489
|
model: 'Honor 7'
|
2490
|
+
- regex: '(?:Honor_|HW-)?NEM-L51[);/ ]'
|
2491
|
+
model: 'Honor 5C'
|
2492
|
+
- regex: '(?:Honor_|HW-)?NEM-L22[);/ ]'
|
2493
|
+
model: 'Honor 5C Dual SIM'
|
2494
|
+
- regex: '(?:Honor_|HW-)?NEM-L21[);/ ]'
|
2495
|
+
model: 'Honor 7 Lite'
|
2496
|
+
- regex: '(?:HONOR[ _]?)?BLN-(?:L2[124]|AL10)'
|
2497
|
+
model: 'Honor 6X'
|
2498
|
+
- regex: '(?:HONOR[ _]?)?BND-(?:AL10|L21)'
|
2499
|
+
model: 'Honor 7X'
|
2500
|
+
- regex: 'PRA-AL00X'
|
2501
|
+
model: 'Honor 8 Lite'
|
2502
|
+
- regex: 'GRA-L09'
|
2503
|
+
model: 'P8'
|
2504
|
+
- regex: 'ALE-L(02|21|23)'
|
2505
|
+
model: 'P8 Lite (2015)'
|
2506
|
+
- regex: 'PRA-L[AX]1'
|
2507
|
+
model: 'P8 Lite (2017)'
|
2508
|
+
- regex: 'RNE-L22'
|
2509
|
+
model: 'Nova 2I'
|
2510
|
+
- regex: 'EVA-L09'
|
2511
|
+
model: 'P9'
|
2512
|
+
- regex: 'VTR-L09'
|
2513
|
+
model: 'P10'
|
2514
|
+
- regex: 'CAM-L21'
|
2515
|
+
model: 'Y6II'
|
2516
|
+
- regex: 'MHA-L[02]9'
|
2517
|
+
model: 'Mate 9'
|
2518
|
+
- regex: 'Bucare Y330-U05'
|
2519
|
+
model: 'Y330-U05'
|
2520
|
+
- regex: 'T1-A21w'
|
2521
|
+
device: 'tablet'
|
2522
|
+
model: 'Honor Tablet Note'
|
2523
|
+
- regex: 'PLE-70[13]L'
|
2524
|
+
device: 'tablet'
|
2525
|
+
model: 'MediaPad T2 7.0 Pro'
|
2526
|
+
- regex: 'T1-A21L'
|
2527
|
+
device: 'tablet'
|
2528
|
+
model: 'MediaPad T1 10'
|
1824
2529
|
- regex: '(MediaPad[^/;]*) Build'
|
1825
2530
|
device: 'tablet'
|
1826
2531
|
model: '$1'
|
@@ -1892,6 +2597,82 @@ iBerry:
|
|
1892
2597
|
- regex: 'AUXUS ([^/;]+) Build'
|
1893
2598
|
model: '$1'
|
1894
2599
|
|
2600
|
+
# IconBIT
|
2601
|
+
IconBIT:
|
2602
|
+
regex: 'NT-3506M'
|
2603
|
+
device: 'smartphone'
|
2604
|
+
models:
|
2605
|
+
- regex: 'NT-3506M'
|
2606
|
+
model: 'NetTAB Mercury Quad FHD'
|
2607
|
+
|
2608
|
+
# LYF
|
2609
|
+
LYF:
|
2610
|
+
regex: '(LYF[ _])?LS-[45][0-9]{3}'
|
2611
|
+
device: 'smartphone'
|
2612
|
+
models:
|
2613
|
+
- regex: 'LS-4004'
|
2614
|
+
model: 'Flame 2'
|
2615
|
+
- regex: 'LS-5501'
|
2616
|
+
model: 'Earth 1'
|
2617
|
+
- regex: 'LS-5021'
|
2618
|
+
model: 'Earth 2'
|
2619
|
+
- regex: 'LS-5505'
|
2620
|
+
model: 'Water F1'
|
2621
|
+
- regex: 'LS-4503'
|
2622
|
+
model: 'Flame LS-4503'
|
2623
|
+
- regex: 'LS-4001'
|
2624
|
+
model: 'Flame 3'
|
2625
|
+
- regex: 'LS-4003'
|
2626
|
+
model: 'Flame 4'
|
2627
|
+
- regex: 'LS-4002'
|
2628
|
+
model: 'Flame 5'
|
2629
|
+
- regex: 'LS-4005'
|
2630
|
+
model: 'Flame 6'
|
2631
|
+
- regex: '(LYF[ _])?LS-4006'
|
2632
|
+
model: 'Flame 7'
|
2633
|
+
- regex: 'LS-4008'
|
2634
|
+
model: 'Flame 7S'
|
2635
|
+
- regex: 'LS-4505'
|
2636
|
+
model: 'Flame 8'
|
2637
|
+
- regex: 'LS-5002'
|
2638
|
+
model: 'Water 1'
|
2639
|
+
- regex: 'LS-5005'
|
2640
|
+
model: 'Water 4'
|
2641
|
+
- regex: 'LS-5006'
|
2642
|
+
model: 'Water 6'
|
2643
|
+
- regex: 'LS-5008'
|
2644
|
+
model: 'Water 2'
|
2645
|
+
- regex: 'LS-5009'
|
2646
|
+
model: 'Wind 6'
|
2647
|
+
- regex: 'LS-5013'
|
2648
|
+
model: 'Wind 5'
|
2649
|
+
- regex: 'LS-5014'
|
2650
|
+
model: 'Wind 4'
|
2651
|
+
- regex: 'LS-5010'
|
2652
|
+
model: 'Wind 1'
|
2653
|
+
- regex: 'LS-5015'
|
2654
|
+
model: 'Water 8'
|
2655
|
+
- regex: 'LS-5016'
|
2656
|
+
model: 'Wind 7'
|
2657
|
+
- regex: 'LS-5504'
|
2658
|
+
model: 'Water 7'
|
2659
|
+
- regex: 'LS-5017'
|
2660
|
+
model: 'Water 11'
|
2661
|
+
- regex: 'LS-5018'
|
2662
|
+
model: 'Wind 4S'
|
2663
|
+
- regex: 'LS-5020'
|
2664
|
+
model: 'Water 10'
|
2665
|
+
- regex: 'LS-5201'
|
2666
|
+
model: 'Water F1S'
|
2667
|
+
- regex: 'LS-5502'
|
2668
|
+
model: 'Wind 3'
|
2669
|
+
- regex: 'LS-5503'
|
2670
|
+
model: 'Water 3'
|
2671
|
+
- regex: 'LS-5506'
|
2672
|
+
model: 'Water 9'
|
2673
|
+
- regex: 'LS-6001'
|
2674
|
+
model: 'Wind 2'
|
2675
|
+
|
1895
2676
|
# iNew
|
1896
2677
|
iNew:
|
1897
2678
|
regex: 'iNew|(?:V7A|V3 Plus|V3-?E|V3C)(?: Build|[;/\)])'
|
@@ -2014,7 +2795,15 @@ iTel:
|
|
2014
2795
|
- regex: 'iTel_([a-z0-9\-_]*)'
|
2015
2796
|
model: '$1'
|
2016
2797
|
|
2017
|
-
#
|
2798
|
+
# JAY-Tech
|
2799
|
+
JAY-Tech:
|
2800
|
+
regex: 'TPC-[A-Z0-9]+'
|
2801
|
+
device: 'tablet'
|
2802
|
+
models:
|
2803
|
+
- regex: 'TPC-([A-Z0-9]+)'
|
2804
|
+
model: 'Tablet PC $1'
|
2805
|
+
|
2806
|
+
# Jiayu
|
2018
2807
|
Jiayu:
|
2019
2808
|
regex: '(JY-[a-z0-9]+)[);/ ]'
|
2020
2809
|
device: 'smartphone'
|
@@ -2038,6 +2827,28 @@ Kazam:
|
|
2038
2827
|
- regex: 'Kazam ([^;/]+) Build'
|
2039
2828
|
model: '$1'
|
2040
2829
|
|
2830
|
+
# Kiano
|
2831
|
+
Kiano:
|
2832
|
+
regex: 'Kiano|Elegance_5_0|CORE 10.1 DUAL 3G|Intelect ?(7|8|10)|Slim ?Tab ?\d+(?:[_ ]3GR?)?[);/ ]|Cavion[_ ]'
|
2833
|
+
device: 'smartphone'
|
2834
|
+
models:
|
2835
|
+
- regex: 'Slim ?Tab ?(\d+)(?:[_ ]3GR?)?'
|
2836
|
+
model: 'Slim Tab $1'
|
2837
|
+
device: 'tablet'
|
2838
|
+
- regex: 'Cavion[_ ](?:Base[_ ])?(\d+)'
|
2839
|
+
model: 'Cavion Base $1'
|
2840
|
+
device: 'tablet'
|
2841
|
+
- regex: 'CORE 10.1 DUAL 3G'
|
2842
|
+
model: 'CORE 10.1 DUAL 3G'
|
2843
|
+
device: 'tablet'
|
2844
|
+
- regex: 'Elegance_5_0'
|
2845
|
+
model: 'Elegance 5.0'
|
2846
|
+
- regex: '(Kiano)?(Intelect|Elegance) ?(7|8|10)?'
|
2847
|
+
model: '$2 $3'
|
2848
|
+
device: 'tablet'
|
2849
|
+
- regex: 'Kiano[ _]([^;/]+) Build'
|
2850
|
+
model: '$1'
|
2851
|
+
|
2041
2852
|
# Kingsun
|
2042
2853
|
Kingsun:
|
2043
2854
|
regex: 'Kingsun[ _-]'
|
@@ -2149,17 +2960,37 @@ Kyocera:
|
|
2149
2960
|
|
2150
2961
|
# Lava
|
2151
2962
|
Lava:
|
2152
|
-
regex: 'iris[ _]?([^/;]+)(?:\)| Build)'
|
2963
|
+
regex: 'Lava |iris[ _]?([^/;]+)(?:\)| Build)'
|
2153
2964
|
device: 'smartphone'
|
2154
2965
|
models:
|
2155
2966
|
- regex: 'iris[ _]?([^/;]+)(?:\)| Build)'
|
2156
2967
|
model: 'Iris $1'
|
2968
|
+
- regex: 'Lava[ _]?([^/;]+)(?:/| Build)'
|
2969
|
+
model: '$1'
|
2970
|
+
|
2971
|
+
# Landvo
|
2972
|
+
Landvo:
|
2973
|
+
regex: 'XM[123]00|(?<!Blade )S6 Build'
|
2974
|
+
device: 'smartphone'
|
2975
|
+
models:
|
2976
|
+
- regex: 'S6 Build'
|
2977
|
+
model: 'S6'
|
2978
|
+
- regex: 'XM([123])00([^/;]*) Build'
|
2979
|
+
model: 'XM$100$2'
|
2157
2980
|
|
2158
2981
|
# lanix
|
2159
2982
|
Lanix:
|
2160
|
-
regex: 'LANIX-([a-z0-9]+)'
|
2983
|
+
regex: 'LANIX-([a-z0-9]+)|ILIUM[ _]([^;/]+) Build'
|
2161
2984
|
device: 'feature phone'
|
2162
|
-
|
2985
|
+
models:
|
2986
|
+
- regex: 'ILIUM[ _]PAD[ _]([^;/]+) Build'
|
2987
|
+
model: 'Ilium Pad $1'
|
2988
|
+
device: 'tablet'
|
2989
|
+
- regex: 'ILIUM[ _]([^;/]+) Build'
|
2990
|
+
model: 'Ilium $1'
|
2991
|
+
device: 'smartphone'
|
2992
|
+
- regex: 'LANIX-([a-z0-9]+)'
|
2993
|
+
model: '$1'
|
2163
2994
|
|
2164
2995
|
# lct
|
2165
2996
|
LCT:
|
@@ -2181,6 +3012,24 @@ LCT:
|
|
2181
3012
|
- regex: 'Le ?Pan ?([^;/]+) Build'
|
2182
3013
|
model: '$1'
|
2183
3014
|
|
3015
|
+
# LeEco
|
3016
|
+
LeEco:
|
3017
|
+
regex: 'LeEco|Le ?X[0-9][^;/]+|Le Max|Le [12]'
|
3018
|
+
device: 'smartphone'
|
3019
|
+
models:
|
3020
|
+
- regex: 'Le ?X([^;/]+) Build'
|
3021
|
+
model: 'Le X$1'
|
3022
|
+
- regex: 'Le ?X([^ ;/]+)'
|
3023
|
+
model: 'Le X$1'
|
3024
|
+
- regex: 'Le ?([12][^;/]+) Build'
|
3025
|
+
model: 'Le $1'
|
3026
|
+
- regex: 'Le Max([^;/]*) Build'
|
3027
|
+
model: 'Le Max$1'
|
3028
|
+
- regex: 'Le Max([^ ;/]*)'
|
3029
|
+
model: 'Le Max$1'
|
3030
|
+
- regex: 'LeEco ([^;/]+) Build'
|
3031
|
+
model: '$1'
|
3032
|
+
|
2184
3033
|
# lenco
|
2185
3034
|
Lenco:
|
2186
3035
|
regex: 'Lenco ([^/;]*) Build'
|
@@ -2189,10 +3038,47 @@ Lenco:
|
|
2189
3038
|
|
2190
3039
|
# lenovo
|
2191
3040
|
Lenovo:
|
2192
|
-
regex: '(?:LNV-)?Lenovo|IdeaTab|IdeaPad|Thinkpad|Yoga Tablet'
|
3041
|
+
regex: '(?:LNV-)?Lenovo|IdeaTab|IdeaPad|Thinkpad|Yoga Tablet|Tab2A[0-9]-[0-9]{2}[a-z]?|YT3-X50L|ZUK[ -_]'
|
2193
3042
|
device: 'smartphone'
|
2194
3043
|
models:
|
2195
|
-
- regex: 'Lenovo
|
3044
|
+
- regex: 'Lenovo ?G780'
|
3045
|
+
model: 'G780'
|
3046
|
+
device: 'desktop'
|
3047
|
+
- regex: 'Lenovo ?A3500-FL'
|
3048
|
+
model: 'IdeaTab A7-40'
|
3049
|
+
device: 'tablet'
|
3050
|
+
- regex: 'Lenovo ?A3500-(H|HV|F)'
|
3051
|
+
model: 'IdeaTab A7-50'
|
3052
|
+
device: 'tablet'
|
3053
|
+
- regex: 'Lenovo ?A5500-[HF]'
|
3054
|
+
model: 'IdeaTab A8-50'
|
3055
|
+
device: 'tablet'
|
3056
|
+
- regex: 'Lenovo ?A7600-[HF]'
|
3057
|
+
model: 'IdeaTab A10-70'
|
3058
|
+
device: 'tablet'
|
3059
|
+
- regex: 'TB2-X30[FL]'
|
3060
|
+
model: 'Tab 2 A10-30'
|
3061
|
+
device: 'tablet'
|
3062
|
+
- regex: 'YT3-X50[FL]'
|
3063
|
+
model: 'Yoga Tab 3'
|
3064
|
+
device: 'tablet'
|
3065
|
+
- regex: 'TB3-710[IF]'
|
3066
|
+
model: 'TAB3 7 Essential'
|
3067
|
+
device: 'tablet'
|
3068
|
+
- regex: 'Lenovo ?B8000(-[FH])?'
|
3069
|
+
model: 'Yoga Tablet 10'
|
3070
|
+
device: 'tablet'
|
3071
|
+
- regex: 'Lenovo ?B6000(-[FH])?'
|
3072
|
+
model: 'Yoga Tablet 8'
|
3073
|
+
device: 'tablet'
|
3074
|
+
- regex: 'YT3-X90(L|F|X)'
|
3075
|
+
model: 'Yoga 3 Pro'
|
3076
|
+
device: 'tablet'
|
3077
|
+
- regex: 'YT3-850[FL]'
|
3078
|
+
model: 'Yoga Tab 3 8'
|
3079
|
+
device: 'tablet'
|
3080
|
+
|
3081
|
+
- regex: 'Lenovo ([ASB][0-9]{4})[A-Z]?\-[EHF]'
|
2196
3082
|
model: 'IdeaTab $1'
|
2197
3083
|
device: 'tablet'
|
2198
3084
|
- regex: 'ThinkPadTablet_(A[0-9]{3})_'
|
@@ -2204,15 +3090,67 @@ Lenovo:
|
|
2204
3090
|
- regex: 'IdeaPad ?([^;/]*) Build'
|
2205
3091
|
model: 'IdeaPad $1'
|
2206
3092
|
device: 'tablet'
|
2207
|
-
- regex: 'Lenovo ([^/;]*) Build'
|
2208
|
-
model: '$1'
|
3093
|
+
- regex: 'Lenovo TAB ?([^/;]*) Build'
|
3094
|
+
model: 'TAB $1'
|
3095
|
+
device: 'tablet'
|
3096
|
+
- regex: 'Lenovo ?A3300-(?:GV|H)'
|
3097
|
+
model: 'TAB 2 A7-30'
|
3098
|
+
device: 'tablet'
|
3099
|
+
- regex: 'Tab2A([0-9]-[0-9]{2}[a-z]?)'
|
3100
|
+
model: 'TAB 2 A$1'
|
3101
|
+
device: 'tablet'
|
2209
3102
|
- regex: 'IdeaTab[ \-_]?([a-z0-9]+)'
|
2210
3103
|
model: 'IdeaTab $1'
|
2211
3104
|
device: 'tablet'
|
2212
3105
|
- regex: 'Yoga Tablet([^;/]+) Build'
|
2213
3106
|
model: 'Yoga Tablet$1'
|
2214
3107
|
device: 'tablet'
|
2215
|
-
- regex: '
|
3108
|
+
- regex: 'Lenovo TB\-X704F Build/NMF26F'
|
3109
|
+
model: 'Tab 4 10 Plus'
|
3110
|
+
device: 'tablet'
|
3111
|
+
- regex: 'Lenovo (TB[0-9]?\-[a-z0-9\-]+) Build'
|
3112
|
+
model: '$1'
|
3113
|
+
device: 'tablet'
|
3114
|
+
- regex: 'ZUK[ -_]([^/;]*) Build'
|
3115
|
+
model: 'ZUK $1'
|
3116
|
+
- regex: 'Lenovo ([^/;]*) Build'
|
3117
|
+
model: '$1'
|
3118
|
+
- regex: '(?:LNV-|Lenovo-)?Lenovo[ \-_]?([a-z0-9_+\-]+)'
|
3119
|
+
model: '$1'
|
3120
|
+
|
3121
|
+
# Lexand
|
3122
|
+
Lexand:
|
3123
|
+
regex: '(?:SC7 PRO HD|S5A[1-4]|S4A[1-5]|S6A1|A811|A802)[);/ ]|Lexand ([^;/]+) Build'
|
3124
|
+
device: 'smartphone'
|
3125
|
+
models:
|
3126
|
+
- regex: 'A(811|802)'
|
3127
|
+
device: 'tablet'
|
3128
|
+
model: 'A$1'
|
3129
|
+
|
3130
|
+
- regex: 'S4A1'
|
3131
|
+
model: 'Vega'
|
3132
|
+
- regex: 'S4A2'
|
3133
|
+
model: 'Irida'
|
3134
|
+
- regex: 'S4A3'
|
3135
|
+
model: 'Pallada'
|
3136
|
+
- regex: 'S4A5'
|
3137
|
+
model: 'Oxygen'
|
3138
|
+
- regex: 'S4A4 NEON'
|
3139
|
+
model: 'S4A4 Neon'
|
3140
|
+
- regex: 'S5A1'
|
3141
|
+
model: 'Callisto'
|
3142
|
+
- regex: 'S5A2'
|
3143
|
+
model: 'Overon'
|
3144
|
+
- regex: 'S5A3'
|
3145
|
+
model: 'Capella'
|
3146
|
+
- regex: 'S5A4'
|
3147
|
+
model: 'Argon'
|
3148
|
+
- regex: 'S6A1'
|
3149
|
+
model: 'Antares'
|
3150
|
+
- regex: 'SC7 PRO HD'
|
3151
|
+
model: 'SC7 PRO HD'
|
3152
|
+
|
3153
|
+
- regex: 'Lexand ([^;/]+) Build'
|
2216
3154
|
model: '$1'
|
2217
3155
|
|
2218
3156
|
# lexibook
|
@@ -2271,9 +3209,11 @@ Lexibook:
|
|
2271
3209
|
|
2272
3210
|
# lg
|
2273
3211
|
LG:
|
2274
|
-
regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|(?:VX[0-9]+|L-0[12]D|L-07C|P713)[);/ ]|NetCast'
|
3212
|
+
regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|(?:VX[0-9]+|L-0[12]D|L-07C|P713)[);/ ]|NetCast|VS995'
|
2275
3213
|
device: 'smartphone'
|
2276
3214
|
models:
|
3215
|
+
- regex: 'LG-D855'
|
3216
|
+
model: 'G3'
|
2277
3217
|
- regex: 'P713'
|
2278
3218
|
model: 'Optimus L7II'
|
2279
3219
|
- regex: 'L-01D'
|
@@ -2283,6 +3223,19 @@ LG:
|
|
2283
3223
|
- regex: 'L-07C'
|
2284
3224
|
model: 'Optimus Bright L-07C'
|
2285
3225
|
|
3226
|
+
- regex: 'LG-V490'
|
3227
|
+
model: 'G Pad 8.0'
|
3228
|
+
device: 'tablet'
|
3229
|
+
- regex: 'LG-V500'
|
3230
|
+
model: 'G Pad 8.3'
|
3231
|
+
device: 'tablet'
|
3232
|
+
- regex: 'LG-V700'
|
3233
|
+
model: 'G Pad 10.1'
|
3234
|
+
device: 'tablet'
|
3235
|
+
- regex: 'LG-V935'
|
3236
|
+
model: 'G Pad II 10.1'
|
3237
|
+
device: 'tablet'
|
3238
|
+
|
2286
3239
|
- regex: 'webOS.TV'
|
2287
3240
|
device: 'tv'
|
2288
3241
|
model: 'WebOS TV'
|
@@ -2306,6 +3259,8 @@ LG:
|
|
2306
3259
|
model: '$1'
|
2307
3260
|
- regex: '(VX[0-9]+)'
|
2308
3261
|
model: '$1'
|
3262
|
+
- regex: 'VS995'
|
3263
|
+
model: 'V20'
|
2309
3264
|
|
2310
3265
|
# Lingwin
|
2311
3266
|
Lingwin:
|
@@ -2319,15 +3274,25 @@ Lingwin:
|
|
2319
3274
|
|
2320
3275
|
# Logicom
|
2321
3276
|
Logicom:
|
2322
|
-
regex: '(TAB950|TAB1062|E731|E812|E912|E1031)[);/ ]'
|
3277
|
+
regex: '(TAB950|TAB1062|E731|E812|E912|E1031|POWER BOT|(?:B|C|M|ID|VR) ?BOT ?(?:TAB )?([0-9]+\+?)(?:PLUS)?|KT712A_4\.4|L-?IXIR[0-9]*|L-ITE|L-?EMENT)[_);/ ]'
|
2323
3278
|
device: 'tablet'
|
2324
|
-
|
2325
|
-
|
2326
|
-
|
2327
|
-
|
2328
|
-
|
2329
|
-
|
2330
|
-
|
3279
|
+
models:
|
3280
|
+
- regex: 'KT712A_4.4'
|
3281
|
+
model: 'L-ixir Tab 701'
|
3282
|
+
- regex: 'LIXIR1041'
|
3283
|
+
model: 'L-ixir Tab 1041'
|
3284
|
+
- regex: 'L-?IXIR TAB ([^;/]+) Build'
|
3285
|
+
model: 'L-ixir Tab $1'
|
3286
|
+
- regex: 'L-ITE[ _]([^;/]+) Build'
|
3287
|
+
model: 'L-ite Tab $1'
|
3288
|
+
- regex: 'L-?EMENT[ _](?:TAB)?([^;/]+) Build'
|
3289
|
+
model: 'L-ement Tab $1'
|
3290
|
+
- regex: '(TAB950|TAB1062|E731|E812|E912|E1031)[);/ ]'
|
3291
|
+
model: '$1'
|
3292
|
+
- regex: 'POWER BOT'
|
3293
|
+
model: 'POWER BOT'
|
3294
|
+
- regex: '((?:B|C|M|ID|VR)) ?BOT ?((?:TAB )?([0-9]+\+?)(?:PLUS)?)'
|
3295
|
+
model: '$1 BOT $2'
|
2331
3296
|
|
2332
3297
|
# Konka
|
2333
3298
|
Konka:
|
@@ -2348,6 +3313,22 @@ Konka:
|
|
2348
3313
|
device: 'feature phone'
|
2349
3314
|
model: '$1'
|
2350
3315
|
|
3316
|
+
# Konrow
|
3317
|
+
Konrow:
|
3318
|
+
regex: '(?:BIGCOOL|COOLFIVE|COOL-K|Just5|Link5)[);/ ]'
|
3319
|
+
device: 'smartphone'
|
3320
|
+
models:
|
3321
|
+
- regex: 'BIGCOOL[);/ ]'
|
3322
|
+
model: 'BigCool'
|
3323
|
+
- regex: 'COOL-K[);/ ]'
|
3324
|
+
model: 'Cool-K'
|
3325
|
+
- regex: 'COOLFIVE[);/ ]'
|
3326
|
+
model: 'Cool Five'
|
3327
|
+
- regex: 'Just5[);/ ]'
|
3328
|
+
model: 'Just 5'
|
3329
|
+
- regex: 'Link5[);/ ]'
|
3330
|
+
model: 'Link 5'
|
3331
|
+
|
2351
3332
|
# Karbonn
|
2352
3333
|
Karbonn:
|
2353
3334
|
regex: '(?:Browser-)?Karbonn'
|
@@ -2422,7 +3403,7 @@ Majestic:
|
|
2422
3403
|
|
2423
3404
|
# Manta Multimedia
|
2424
3405
|
Manta Multimedia:
|
2425
|
-
regex: '(MID(?:06[SN]|08[S]?|12|13|14|15|701|702|703|704|705(?:DC)?|706[AS]?|707|708|709|711|712|714|717|781|801|802|1001|1002|1003|1004(?: 3G)?|1005|7802|9701|9702))[);/ ]'
|
3406
|
+
regex: '((?<!/)MID713|MID(?:06[SN]|08[S]?|12|13|14|15|701|702|703|704|705(?:DC)?|706[AS]?|707|708|709|711|712|714|717|781|801|802|901|1001|1002|1003|1004(?: 3G)?|1005|1009|1010|7802|9701|9702))[);/ ]'
|
2426
3407
|
device: 'tablet'
|
2427
3408
|
model: '$1'
|
2428
3409
|
|
@@ -2528,12 +3509,17 @@ Mediacom:
|
|
2528
3509
|
|
2529
3510
|
# Medion
|
2530
3511
|
Medion:
|
2531
|
-
regex: 'Medion|(?:MD_)?LIFETAB'
|
3512
|
+
regex: 'Medion|(?:MD_)?LIFETAB|X5001[);/ ]|[SPX]10[0-9]{2}X[);/ ]'
|
2532
3513
|
device: 'smartphone'
|
2533
3514
|
models:
|
2534
3515
|
- regex: '(?:MD_)?LIFETAB_([a-z0-9]+)'
|
2535
3516
|
device: 'tablet'
|
2536
3517
|
model: 'Lifetab $1'
|
3518
|
+
- regex: 'X5001'
|
3519
|
+
model: 'Life X5001'
|
3520
|
+
- regex: '([SPX]10[0-9]{2}X)[);/ ]'
|
3521
|
+
model: 'Lifetab $1'
|
3522
|
+
device: 'tablet'
|
2537
3523
|
- regex: 'Medion(?: Smartphone)? ([^/;]+) Build'
|
2538
3524
|
model: '$1'
|
2539
3525
|
|
@@ -2549,17 +3535,19 @@ MEEG:
|
|
2549
3535
|
|
2550
3536
|
# Meizu
|
2551
3537
|
Meizu:
|
2552
|
-
regex: '(M04[05]|M35[1356]|MX[ -]?[
|
3538
|
+
regex: 'Meizu|MZ-[a-z]|(M04[05]|M35[1356]|MX[ -]?[2345](?: Pro)?|(?:MZ-)?m[1-6] note|M57[18]C|M3S)[);/ ]'
|
2553
3539
|
device: 'smartphone'
|
2554
3540
|
models:
|
2555
3541
|
- regex: '(?:MZ-)?M571C'
|
2556
3542
|
device: 'phablet'
|
2557
3543
|
model: 'M2 Note'
|
2558
|
-
- regex: '(?:MZ-)?m(1
|
3544
|
+
- regex: '(?:MZ-)?m([1-6]) note[);/ ]'
|
2559
3545
|
device: 'phablet'
|
2560
3546
|
model: 'M$1 Note'
|
2561
3547
|
- regex: '(?:MZ-)?M578C'
|
2562
3548
|
model: 'M2'
|
3549
|
+
- regex: 'M3S'
|
3550
|
+
model: 'M3S'
|
2563
3551
|
- regex: '(M04[05]|MX[ -]?2)[);/ ]'
|
2564
3552
|
model: 'MX2'
|
2565
3553
|
- regex: '(M35[1356]|MX[ -]?3)[);/ ]'
|
@@ -2568,6 +3556,14 @@ Meizu:
|
|
2568
3556
|
model: 'MX4 Pro'
|
2569
3557
|
- regex: 'MX[ -]?4[);/ ]'
|
2570
3558
|
model: 'MX4'
|
3559
|
+
- regex: 'MX[ -]?5[);/ ]'
|
3560
|
+
model: 'MX5'
|
3561
|
+
- regex: '(?:MZ-)?Meizu[_ ]([^/;]+) Build'
|
3562
|
+
model: '$1'
|
3563
|
+
- regex: '(?:MZ-)?Meizu[_ ]([a-z0-9_]+)'
|
3564
|
+
model: '$1'
|
3565
|
+
- regex: 'MZ-([^/;]+) Build'
|
3566
|
+
model: '$1'
|
2571
3567
|
|
2572
3568
|
# Memup
|
2573
3569
|
Memup:
|
@@ -2615,6 +3611,16 @@ Mitsubishi:
|
|
2615
3611
|
- regex: 'portalmmm/[12]\.0 (M[a-z0-9]+)'
|
2616
3612
|
model: '$1'
|
2617
3613
|
|
3614
|
+
# MIXC
|
3615
|
+
MIXC:
|
3616
|
+
regex: '(M35|M20|G7106|G7108)[ );/]'
|
3617
|
+
device: 'smartphone'
|
3618
|
+
models:
|
3619
|
+
- regex: '(M[0-9]{1,2})[ );/]'
|
3620
|
+
model: '$1'
|
3621
|
+
- regex: '(G[0-9]{4})[ );/]'
|
3622
|
+
model: '$1'
|
3623
|
+
|
2618
3624
|
# MSI
|
2619
3625
|
MSI:
|
2620
3626
|
regex: 'Primo ?(?:91|76)|Enjoy 7 Plus'
|
@@ -2640,10 +3646,27 @@ MLLED:
|
|
2640
3646
|
|
2641
3647
|
# Mobistel
|
2642
3648
|
Mobistel:
|
2643
|
-
regex: '(Cynus [^/;]+) Build'
|
3649
|
+
regex: '(Cynus[ _][^/;]+) Build'
|
2644
3650
|
device: 'smartphone'
|
2645
3651
|
model: '$1'
|
2646
3652
|
|
3653
|
+
# Modecom
|
3654
|
+
Modecom:
|
3655
|
+
regex: 'Modecom|Free(?:Way )?Tab|xino z[\d]+ x[\d]+'
|
3656
|
+
device: 'tablet'
|
3657
|
+
models:
|
3658
|
+
- regex: 'xino Z([\d]+) X([\d]+)'
|
3659
|
+
model: 'Xino Z$1 X$2'
|
3660
|
+
device: 'smartphone'
|
3661
|
+
|
3662
|
+
- regex: 'FreeTab[ _\-]?([^/;]+)? Build'
|
3663
|
+
model: 'FreeTab $1'
|
3664
|
+
- regex: 'FreeTab[ _\-]?((?!Build)[^);/ ]+)?'
|
3665
|
+
model: 'FreeTab $1'
|
3666
|
+
- regex: 'FreeWay Tab[ _\-]?([^/;]+) Build'
|
3667
|
+
model: 'FreeWay Tab $1'
|
3668
|
+
- regex: 'FreeWay Tab[ _\-]?((?!Build)[^);/ ]+)'
|
3669
|
+
model: 'FreeWay Tab $1'
|
2647
3670
|
|
2648
3671
|
# Mofut
|
2649
3672
|
Mofut:
|
@@ -2657,7 +3680,7 @@ Mofut:
|
|
2657
3680
|
|
2658
3681
|
# motorola
|
2659
3682
|
Motorola:
|
2660
|
-
regex: 'MOT|(?<!AN)DROID ?(?:Build|[a-z0-9]+)|portalmmm/2.0 (?:E378i|L6|L7|v3)|XOOM [^;/]*Build|(?:XT|MZ|MB|ME)[0-9]{3,4}[a-z]?(?:\(Defy\))?(?: Build|\))'
|
3683
|
+
regex: 'MOT|(?<!AN)DROID ?(?:Build|[a-z0-9]+)|portalmmm/2.0 (?:E378i|L6|L7|v3)|XOOM [^;/]*Build|(?:XT|MZ|MB|ME)[0-9]{3,4}[a-z]?(?:\(Defy\)|-0[1-3])?(?: Build|\))'
|
2661
3684
|
device: 'smartphone'
|
2662
3685
|
models:
|
2663
3686
|
# Explicit feature phone models
|
@@ -2666,6 +3689,8 @@ Motorola:
|
|
2666
3689
|
device: 'feature phone'
|
2667
3690
|
|
2668
3691
|
# Explicit smartphone models
|
3692
|
+
- regex: 'Moto G'
|
3693
|
+
model: 'Moto G'
|
2669
3694
|
- regex: '(?:MOT-|Motorola-)?XT300'
|
2670
3695
|
model: 'Spice'
|
2671
3696
|
- regex: '(?:MOT-|Motorola-)?XT30[35]'
|
@@ -2740,6 +3765,8 @@ Motorola:
|
|
2740
3765
|
model: 'Moto X'
|
2741
3766
|
- regex: '(?:MOT-|Motorola-)?XT1080'
|
2742
3767
|
model: 'Droid Ultra'
|
3768
|
+
- regex: '(?:MOT-|Motorola-)?XT1635(?:-0[1-3])?'
|
3769
|
+
model: 'Moto Z Play'
|
2743
3770
|
|
2744
3771
|
- regex: 'Motorola[ _\-]([a-z0-9]+)'
|
2745
3772
|
model: '$1'
|
@@ -2766,13 +3793,21 @@ Motorola:
|
|
2766
3793
|
|
2767
3794
|
# myphone
|
2768
3795
|
MyPhone:
|
2769
|
-
regex: '(?:MyPhone|MyPad) [^;/]+ Build'
|
3796
|
+
regex: '(?:MyPhone|MyPad|MyTab)[ _][^;/]+ Build|Cube_LTE|myTab10II'
|
2770
3797
|
device: 'smartphone'
|
2771
3798
|
models:
|
2772
|
-
- regex: 'MyPad ([^;/]+) Build'
|
3799
|
+
- regex: 'MyPad[ _]([^;/]+) Build'
|
2773
3800
|
model: 'MyPad $1'
|
2774
3801
|
device: 'tablet'
|
2775
|
-
- regex: '
|
3802
|
+
- regex: 'MyTab[ _]([^;/]+) Build'
|
3803
|
+
model: 'MyTab $1'
|
3804
|
+
device: 'tablet'
|
3805
|
+
- regex: 'myTab10II'
|
3806
|
+
model: 'MyTab 10 II'
|
3807
|
+
device: 'tablet'
|
3808
|
+
- regex: 'Cube_LTE'
|
3809
|
+
model: 'Cube LTE'
|
3810
|
+
- regex: 'MyPhone[ _]([^;/]+) Build'
|
2776
3811
|
model: '$1'
|
2777
3812
|
|
2778
3813
|
# M.T.T.
|
@@ -2798,6 +3833,16 @@ NEC:
|
|
2798
3833
|
- regex: '(?:portalmmm|o2imode)/2\.0[ ,](N[a-z0-9]+)'
|
2799
3834
|
model: '$1'
|
2800
3835
|
|
3836
|
+
# Neffos
|
3837
|
+
Neffos:
|
3838
|
+
regex: 'Neffos'
|
3839
|
+
device: 'smartphone'
|
3840
|
+
models:
|
3841
|
+
- regex: 'Neffos ([^/;]+) Build'
|
3842
|
+
model: '$1'
|
3843
|
+
- regex: 'Neffos ([^/;]+)/'
|
3844
|
+
model: '$1'
|
3845
|
+
|
2801
3846
|
# newgen
|
2802
3847
|
Newgen:
|
2803
3848
|
regex: 'NEWGEN\-([a-z0-9]+)'
|
@@ -2867,6 +3912,16 @@ Noain:
|
|
2867
3912
|
- regex: 'NOAIN[ _-]([^;/)]+)[;/)]'
|
2868
3913
|
model: '$1'
|
2869
3914
|
|
3915
|
+
# Noblex
|
3916
|
+
Noblex:
|
3917
|
+
regex: 'Noblex|NBX-'
|
3918
|
+
device: 'smartphone'
|
3919
|
+
models:
|
3920
|
+
- regex: '(?:Noblex|NBX)[ _-]([^;/]+) Build'
|
3921
|
+
model: '$1'
|
3922
|
+
- regex: '(?:Noblex|NBX)[ _-]([^;/)]+)[;/)]'
|
3923
|
+
model: '$1'
|
3924
|
+
|
2870
3925
|
# Nomi
|
2871
3926
|
Nomi:
|
2872
3927
|
regex: 'Nomi[ _-]'
|
@@ -2877,6 +3932,23 @@ Nomi:
|
|
2877
3932
|
- regex: 'Nomi[ _-]([^;/)]+)[;/)]'
|
2878
3933
|
model: '$1'
|
2879
3934
|
|
3935
|
+
# Nous
|
3936
|
+
Nous:
|
3937
|
+
regex: 'NS([356]|500[346]|5511) Build'
|
3938
|
+
device: 'smartphone'
|
3939
|
+
models:
|
3940
|
+
- regex: '(NS[0-9]{1,4}) Build'
|
3941
|
+
model: '$1'
|
3942
|
+
|
3943
|
+
# Nvidia
|
3944
|
+
Nvidia:
|
3945
|
+
regex: '(SHIELD Tablet K1) Build'
|
3946
|
+
device: 'tablet'
|
3947
|
+
models:
|
3948
|
+
- regex: '(SHIELD Tablet K1) Build'
|
3949
|
+
model: '$1'
|
3950
|
+
|
3951
|
+
|
2880
3952
|
# o2
|
2881
3953
|
O2:
|
2882
3954
|
regex: 'Xda|O2[ \-]|COCOON'
|
@@ -2891,6 +3963,58 @@ O2:
|
|
2891
3963
|
- regex: 'O2-([a-z0-9]+)'
|
2892
3964
|
model: '$1'
|
2893
3965
|
|
3966
|
+
# Odys
|
3967
|
+
Odys:
|
3968
|
+
regex: 'ODYS[ _-]|IEOS[_ ]([^/;]+)|NOON(?:_PRO)? Build|SPACE10_(?:PLUS|PRO)_3G|THOR_?10|TAO_X10|RAPID_?(?:10|7)_?LTE|MAVEN_?10_|CONNECT[78]|ELEMENT10_PLUS_3G|XELIO[_0-9P]'
|
3969
|
+
device: 'tablet'
|
3970
|
+
models:
|
3971
|
+
- regex: 'XELIOPHONETAB3'
|
3972
|
+
model: 'Xelio Phonetab 3'
|
3973
|
+
- regex: 'XELIO_NEXT_10_PLUS_3G'
|
3974
|
+
model: 'Xelio Next 10 Plus 3G'
|
3975
|
+
- regex: 'XELIO_PHONE_TAB7_3G'
|
3976
|
+
model: 'Xelio Phonetab 7 3G'
|
3977
|
+
- regex: 'XELIO10EXTREME'
|
3978
|
+
model: 'Xelio 10 Xtreme'
|
3979
|
+
- regex: 'XELIO10_PLUS_3G'
|
3980
|
+
model: 'Xelio 10 Plus 3G'
|
3981
|
+
- regex: 'ELEMENT10_PLUS_3G'
|
3982
|
+
model: 'Element 10 Plus 3G'
|
3983
|
+
- regex: 'CONNECT8PLUS'
|
3984
|
+
model: 'Connect 8 Plus'
|
3985
|
+
- regex: 'CONNECT7PRO'
|
3986
|
+
model: 'Connect 7 Pro'
|
3987
|
+
- regex: 'MAVEN_?10_PRO_PLUS_3G'
|
3988
|
+
model: 'Maven 10 Pro Plus 3G'
|
3989
|
+
- regex: 'MAVEN_?10_?PLUS'
|
3990
|
+
model: 'Maven 10 Plus'
|
3991
|
+
- regex: 'MAVEN_?10_?PRO'
|
3992
|
+
model: 'Maven 10 Pro'
|
3993
|
+
- regex: 'MAVEN_?10_?HD'
|
3994
|
+
model: 'Maven 10 HD'
|
3995
|
+
- regex: 'RAPID_?7_?LTE'
|
3996
|
+
model: 'Rapid 7 LTE'
|
3997
|
+
- regex: 'RAPID_?10_?LTE'
|
3998
|
+
model: 'Rapid 10 LTE'
|
3999
|
+
- regex: 'TAO_X10'
|
4000
|
+
model: 'Tao X10'
|
4001
|
+
- regex: 'SPACE10_PLUS_3G'
|
4002
|
+
model: 'Space 10 Plus 3G'
|
4003
|
+
- regex: 'SPACE10_PRO_3G'
|
4004
|
+
model: 'Space 10 Pro 3G'
|
4005
|
+
- regex: 'THOR_?10 Build'
|
4006
|
+
model: 'Thor 10'
|
4007
|
+
- regex: 'THOR_?10_PLUS_3G'
|
4008
|
+
model: 'Thor 10 Plus 3G'
|
4009
|
+
- regex: 'IEOS[ _]([^/;]+) Build'
|
4010
|
+
model: 'Ieos $1'
|
4011
|
+
- regex: '(?:ODYS[ _-])?NOON Build'
|
4012
|
+
model: 'Noon'
|
4013
|
+
- regex: '(?:ODYS[ _-])?NOON_PRO Build'
|
4014
|
+
model: 'Noon Pro'
|
4015
|
+
- regex: 'Odys[ _-]([^/;]+) Build'
|
4016
|
+
model: '$1'
|
4017
|
+
|
2894
4018
|
# onda
|
2895
4019
|
Onda:
|
2896
4020
|
regex: 'Onda'
|
@@ -2906,9 +4030,29 @@ Onda:
|
|
2906
4030
|
- regex: 'Onda ([a-z0-9]+)'
|
2907
4031
|
model: '$1'
|
2908
4032
|
|
4033
|
+
# OnePlus
|
4034
|
+
OnePlus:
|
4035
|
+
regex: '(?:du_)?ONEPLUS|(?:A0001|A2001|A2003|A2005|A3003|A3000|A3010|A5000|E1003) Build'
|
4036
|
+
device: 'smartphone'
|
4037
|
+
models:
|
4038
|
+
- regex: 'A0001'
|
4039
|
+
model: 'One'
|
4040
|
+
- regex: 'A2001|A2003|A2005'
|
4041
|
+
model: '2'
|
4042
|
+
- regex: 'E1003'
|
4043
|
+
model: 'X'
|
4044
|
+
- regex: 'A3003|A3000'
|
4045
|
+
model: '3'
|
4046
|
+
- regex: 'A3010'
|
4047
|
+
model: '3T'
|
4048
|
+
- regex: 'A5000'
|
4049
|
+
model: '5'
|
4050
|
+
- regex: '(?:du_)?ONEPLUS ?([^;/]+) Build'
|
4051
|
+
model: '$1'
|
4052
|
+
|
2909
4053
|
# oppo
|
2910
4054
|
OPPO:
|
2911
|
-
regex: '(?:OB-)?OPPO[ _]?([a-z0-9]+)|N1T|(?:X90[07][
|
4055
|
+
regex: '(?:OB-)?OPPO[ _]?([a-z0-9]+)|N1T|(?:X90[07][0679]|U707T?|X909T?|R(?:10[01]1|2001|201[07]|6007|7005|7007|80[13579]|81[13579]|82[01379]|83[013]|800[067]|8015|810[679]|811[13]|820[057])[KLSTW]?)|N520[79]|N5117|A37f[);/ ]|CPH[0-9]{4}'
|
2912
4056
|
device: 'smartphone'
|
2913
4057
|
models:
|
2914
4058
|
- regex: '(?:OPPO[ _]?)?U707T?[);/ ]'
|
@@ -2919,6 +4063,8 @@ OPPO:
|
|
2919
4063
|
model: 'Find 7'
|
2920
4064
|
- regex: '(?:OPPO[ _]?)?X900[067][);/ ]'
|
2921
4065
|
model: 'Find 7a'
|
4066
|
+
- regex: '(?:OPPO[ _]?)?X9009[);/ ]'
|
4067
|
+
model: 'F1 Plus'
|
2922
4068
|
- regex: '(?:OPPO[ _]?)?R8006[);/ ]'
|
2923
4069
|
model: 'R1L'
|
2924
4070
|
- regex: '(?:OPPO[ _]?)?R800[07][);/ ]'
|
@@ -2947,6 +4093,32 @@ OPPO:
|
|
2947
4093
|
model: 'N3'
|
2948
4094
|
- regex: '(?:OPPO[ _]?)?N5117[);/ ]'
|
2949
4095
|
model: 'N1 Mini'
|
4096
|
+
- regex: '(?:OPPO[ _]?)?CPH1609[);/ ]'
|
4097
|
+
model: 'F3'
|
4098
|
+
- regex: '(?:OPPO[ _]?)?CPH1707[);/ ]'
|
4099
|
+
model: 'R11'
|
4100
|
+
- regex: '(?:OPPO[ _]?)?CPH1715[);/ ]'
|
4101
|
+
model: 'A77'
|
4102
|
+
- regex: '(?:OPPO[ _]?)?CPH1717[);/ ]'
|
4103
|
+
model: 'A71'
|
4104
|
+
- regex: '(?:OPPO[ _]?)?CPH1719[);/ ]'
|
4105
|
+
model: 'R11s'
|
4106
|
+
- regex: '(?:OPPO[ _]?)?CPH1721[);/ ]'
|
4107
|
+
model: 'R11s Plus'
|
4108
|
+
- regex: '(?:OPPO[ _]?)?CPH172[37][);/ ]'
|
4109
|
+
model: 'F5'
|
4110
|
+
- regex: '(?:OPPO[ _]?)?CPH1725[);/ ]'
|
4111
|
+
model: 'F5 Youth'
|
4112
|
+
- regex: '(?:OPPO[ _]?)?CPH1607[);/ ]'
|
4113
|
+
model: 'R9s'
|
4114
|
+
- regex: '(?:OPPO[ _]?)?CPH1611[);/ ]'
|
4115
|
+
model: 'R9s Plus'
|
4116
|
+
- regex: '(?:OPPO[ _]?)?CPH1613[);/ ]'
|
4117
|
+
model: 'F3 Plus'
|
4118
|
+
- regex: '(?:OPPO[ _]?)?CPH1701[);/ ]'
|
4119
|
+
model: 'A57'
|
4120
|
+
- regex: 'A37f'
|
4121
|
+
model: 'A37f'
|
2950
4122
|
|
2951
4123
|
- regex: 'N1T?[);/ ]'
|
2952
4124
|
model: 'N1T'
|
@@ -2974,16 +4146,22 @@ Opsson:
|
|
2974
4146
|
|
2975
4147
|
# orange
|
2976
4148
|
Orange:
|
2977
|
-
regex: 'SPV[ \-]?([a-z0-9]+)|Orange ([^/;]+) Build|SC/IHD92'
|
4149
|
+
regex: 'SPV[ \-]?([a-z0-9]+)|Orange ([^/;]+) Build|SC/IHD92|FunTab ([^/;]+) Build'
|
2978
4150
|
device: 'smartphone'
|
2979
4151
|
models:
|
4152
|
+
- regex: 'SC/IHD92'
|
4153
|
+
model: 'Livebox Play'
|
4154
|
+
device: 'tv' # set top box
|
4155
|
+
- regex: 'Sego'
|
4156
|
+
model: 'Sego'
|
4157
|
+
device: 'tablet'
|
4158
|
+
- regex: 'FunTab ([^/;]+) Build'
|
4159
|
+
model: 'FunTab $1'
|
4160
|
+
device: 'tablet'
|
2980
4161
|
- regex: 'Orange ([^/;]+) Build'
|
2981
4162
|
model: '$1'
|
2982
4163
|
- regex: 'SPV[ \-]?([a-z0-9]+)'
|
2983
4164
|
model: 'SPV $1'
|
2984
|
-
- regex: 'SC/IHD92'
|
2985
|
-
model: 'Livebox Play'
|
2986
|
-
device: 'tv' # set top box
|
2987
4165
|
|
2988
4166
|
# Ouki
|
2989
4167
|
Ouki:
|
@@ -3001,14 +4179,21 @@ Ouki:
|
|
3001
4179
|
|
3002
4180
|
# Overmax
|
3003
4181
|
Overmax:
|
3004
|
-
regex: 'OV-[a-z]+(?:[
|
4182
|
+
regex: 'OV-[a-z]+(?:[^;(/]*)[();/ ]|Qualcore 1010'
|
3005
4183
|
device: 'tablet'
|
3006
4184
|
models:
|
3007
|
-
- regex: 'OV-
|
3008
|
-
model: '
|
4185
|
+
- regex: 'OV-V10'
|
4186
|
+
model: 'Vertis Yard'
|
3009
4187
|
device: 'smartphone'
|
4188
|
+
- regex: 'OV-Vertis[ _-]([^;/]+) Build'
|
4189
|
+
model: 'Vertis $1'
|
4190
|
+
device: 'smartphone'
|
4191
|
+
|
4192
|
+
- regex: 'Qualcore 1010'
|
4193
|
+
model: 'Qualcore 1010'
|
4194
|
+
device: 'tablet'
|
3010
4195
|
|
3011
|
-
- regex: '(OV-[a-z]+(?:[
|
4196
|
+
- regex: '(OV-[a-z]+(?:[^;(/]*))(?<!Build)[();/ ]'
|
3012
4197
|
model: '$1'
|
3013
4198
|
|
3014
4199
|
# Oysters
|
@@ -3024,9 +4209,13 @@ Oysters:
|
|
3024
4209
|
|
3025
4210
|
# panasonic
|
3026
4211
|
Panasonic:
|
3027
|
-
regex: 'Panasonic|PANATV[0-9]+|Viera/|P902i[);/ ]'
|
4212
|
+
regex: 'Panasonic|PANATV[0-9]+|Viera/|P902i[);/ ]|Eluga[ _]'
|
3028
4213
|
device: 'smartphone'
|
3029
4214
|
models:
|
4215
|
+
- regex: 'Eluga[ _-]([^;/]+) Build'
|
4216
|
+
model: 'Eluga $1'
|
4217
|
+
- regex: 'Eluga[ _-]([^;/]+)[;/)]'
|
4218
|
+
model: 'Eluga $1'
|
3030
4219
|
- regex: 'P902i[);/ ]'
|
3031
4220
|
device: 'feature phone'
|
3032
4221
|
model: 'P902i'
|
@@ -3036,19 +4225,42 @@ Panasonic:
|
|
3036
4225
|
- regex: 'PANATV[0-9]+|Viera/'
|
3037
4226
|
device: 'tv'
|
3038
4227
|
model: 'Smart TV'
|
3039
|
-
- regex: 'Panasonic[ \-]?([a-z0-9]+)'
|
4228
|
+
- regex: 'Panasonic[ _\-]?([a-z0-9]+)'
|
3040
4229
|
model: '$1'
|
3041
4230
|
- regex: 'portalmmm/2.0 (P[a-z0-9]+)'
|
3042
4231
|
model: '$1'
|
3043
4232
|
|
4233
|
+
# Pentagram
|
4234
|
+
Pentagram:
|
4235
|
+
regex: 'Pentagram|Quadra|Monster X5'
|
4236
|
+
device: 'tablet'
|
4237
|
+
models:
|
4238
|
+
- regex: '(?:PENTAGRAM[_ ])?EON[_ ]PRIX'
|
4239
|
+
model: 'Eon Prix'
|
4240
|
+
- regex: 'Quadra 7( UltraSlim)?'
|
4241
|
+
model: 'Quadra 7 UltraSlim'
|
4242
|
+
- regex: 'Monster X5?'
|
4243
|
+
model: 'Monster X5'
|
4244
|
+
device: 'smartphone'
|
4245
|
+
- regex: 'Quadra ?([^);/]*) Build'
|
4246
|
+
model: 'Quadra $1'
|
4247
|
+
- regex: 'Pentagram ?TAB ?([^);/]*) Build'
|
4248
|
+
model: 'Tab $1'
|
4249
|
+
- regex: 'Pentagram ?([^);/]*) Build'
|
4250
|
+
model: '$1'
|
4251
|
+
device: 'smartphone'
|
4252
|
+
|
3044
4253
|
# philips
|
3045
4254
|
Philips:
|
3046
|
-
regex: 'Philips|AND1E[);/ ]|NETTV
|
4255
|
+
regex: 'Philips|AND1E[);/ ]|NETTV/|PI3210G'
|
3047
4256
|
device: 'smartphone'
|
3048
4257
|
models:
|
3049
4258
|
- regex: 'AND1E(?: TV)?[);/ ]'
|
3050
4259
|
model: 'Android TV'
|
3051
4260
|
device: 'tv'
|
4261
|
+
- regex: '(PI3210G)'
|
4262
|
+
model: '$1'
|
4263
|
+
device: 'tablet'
|
3052
4264
|
- regex: 'Philips, BDP([0-9]{4})'
|
3053
4265
|
model: 'Blu-ray Player (BDP$1)'
|
3054
4266
|
device: 'tv'
|
@@ -3057,9 +4269,7 @@ Philips:
|
|
3057
4269
|
device: 'tv'
|
3058
4270
|
- regex: 'Philips-FISIO ([a-z0-9]+)'
|
3059
4271
|
model: 'Fisio $1'
|
3060
|
-
- regex: 'Philips[ ]?([a-z0-9]+)'
|
3061
|
-
model: '$1'
|
3062
|
-
- regex: 'Philips-([a-z0-9\-@]+)'
|
4272
|
+
- regex: 'Philips[ _-]?([a-z0-9\-@]+)'
|
3063
4273
|
model: '$1'
|
3064
4274
|
|
3065
4275
|
# phoneOne
|
@@ -3138,6 +4348,12 @@ Pomp:
|
|
3138
4348
|
- regex: 'POMP[ _-]([^;/)]+)[;/)]'
|
3139
4349
|
model: '$1'
|
3140
4350
|
|
4351
|
+
# PPTV
|
4352
|
+
PPTV:
|
4353
|
+
regex: '(KING 7S?)'
|
4354
|
+
device: 'smartphone'
|
4355
|
+
model: '$1'
|
4356
|
+
|
3141
4357
|
# ProScan
|
3142
4358
|
ProScan:
|
3143
4359
|
regex: 'PLT([^;/]+) Build'
|
@@ -3188,7 +4404,7 @@ Siemens:
|
|
3188
4404
|
|
3189
4405
|
# Samsung
|
3190
4406
|
Samsung:
|
3191
|
-
regex: 'SAMSUNG|Maple |SC-(?:
|
4407
|
+
regex: 'SAMSUNG|Maple |SC-(?:02[CH]|04E|01F)|N[57]100|N5110|N9100|S(?:CH|GH|PH|EC|AM|HV|HW|M)-|SMART-TV|GT-|Galaxy|(?:portalmmm|o2imode)/2\.0 [SZ]|sam[rua]|vollo Vi86[);/ ]|(?:OTV-)?SMT-E5015|ISW11SC'
|
3192
4408
|
device: 'smartphone'
|
3193
4409
|
models:
|
3194
4410
|
# explicit tv models
|
@@ -3305,9 +4521,12 @@ Samsung:
|
|
3305
4521
|
- regex: '(?:SAMSUNG-)?SM-T315'
|
3306
4522
|
device: 'tablet'
|
3307
4523
|
model: 'GALAXY Tab 3 8.0" LTE'
|
4524
|
+
- regex: '(?:SAMSUNG-)?SM-T330'
|
4525
|
+
device: 'tablet'
|
4526
|
+
model: 'GALAXY Tab 4 8.0" WiFi'
|
3308
4527
|
- regex: '(?:SAMSUNG-)?SM-T335'
|
3309
4528
|
device: 'tablet'
|
3310
|
-
model: 'GALAXY Tab 8.0" LTE'
|
4529
|
+
model: 'GALAXY Tab 4 8.0" LTE'
|
3311
4530
|
- regex: '(?:SAMSUNG-)?SM-T520'
|
3312
4531
|
device: 'tablet'
|
3313
4532
|
model: 'GALAXY TabPRO 10.1" WiFi'
|
@@ -3338,9 +4557,27 @@ Samsung:
|
|
3338
4557
|
- regex: '(?:SAMSUNG-)?SM-T805'
|
3339
4558
|
device: 'tablet'
|
3340
4559
|
model: 'GALAXY Tab S 10.5" LTE'
|
4560
|
+
- regex: '(?:SAMSUNG-)?SM-T813'
|
4561
|
+
device: 'tablet'
|
4562
|
+
model: 'GALAXY Tab S2 9.7" WiFi'
|
4563
|
+
- regex: '(?:SAMSUNG-)?SM-T815'
|
4564
|
+
device: 'tablet'
|
4565
|
+
model: 'GALAXY Tab S2 9.7" LTE'
|
3341
4566
|
- regex: '(?:SAMSUNG-)?SM-T900'
|
3342
4567
|
device: 'tablet'
|
3343
4568
|
model: 'GALAXY TabPRO 12.2" WiFi'
|
4569
|
+
- regex: '(?:SAMSUNG-)?SM-T550'
|
4570
|
+
device: 'tablet'
|
4571
|
+
model: 'GALAXY Tab A 9.7" WiFi'
|
4572
|
+
- regex: '(?:SAMSUNG-)?SM-T555'
|
4573
|
+
device: 'tablet'
|
4574
|
+
model: 'GALAXY Tab A 9.7" LTE'
|
4575
|
+
- regex: '(?:SAMSUNG-)?SM-T580'
|
4576
|
+
device: 'tablet'
|
4577
|
+
model: 'GALAXY Tab A 10.1" WiFi (2016)'
|
4578
|
+
- regex: '(?:SAMSUNG-)?SM-T560'
|
4579
|
+
device: 'tablet'
|
4580
|
+
model: 'GALAXY Tab E 9.6"'
|
3344
4581
|
|
3345
4582
|
# explicit smartphone models
|
3346
4583
|
- regex: '(?:SAMSUNG-)?GT-B5330'
|
@@ -3399,6 +4636,8 @@ Samsung:
|
|
3399
4636
|
model: 'GALAXY S II Plus'
|
3400
4637
|
- regex: '(?:SAMSUNG-)?(?:GT-I919[05]|SCH-I435)'
|
3401
4638
|
model: 'GALAXY S4 mini'
|
4639
|
+
- regex: '(?:SAMSUNG-)?GT-I9515'
|
4640
|
+
model: 'GALAXY S4 Value Edition'
|
3402
4641
|
- regex: '(?:SAMSUNG-)?GT-I9295'
|
3403
4642
|
model: 'GALAXY S4 ACTIVE'
|
3404
4643
|
- regex: '(?:SAMSUNG-)?(?:GT-I9300|SCH-I535|SCH-L710)'
|
@@ -3441,6 +4680,24 @@ Samsung:
|
|
3441
4680
|
model: 'GALAXY DUOS 2'
|
3442
4681
|
- regex: '(?:SAMSUNG-)?GT-S7710'
|
3443
4682
|
model: 'GALAXY Xcover 2'
|
4683
|
+
- regex: '(?:SAMSUNG-)?GT-S8500'
|
4684
|
+
model: 'Wave'
|
4685
|
+
- regex: '(?:SAMSUNG-)?GT-S8530'
|
4686
|
+
model: 'Wave II'
|
4687
|
+
- regex: '(?:SAMSUNG-)?GT-S8600'
|
4688
|
+
model: 'Wave 3'
|
4689
|
+
- regex: '(?:SAMSUNG-)?GT-S5380'
|
4690
|
+
model: 'Wave Y'
|
4691
|
+
- regex: '(?:SAMSUNG-)?GT-S7250'
|
4692
|
+
model: 'Wave M'
|
4693
|
+
- regex: '(?:SAMSUNG-)?GT-S5250'
|
4694
|
+
model: 'Wave 525'
|
4695
|
+
- regex: '(?:SAMSUNG-)?GT-S5330'
|
4696
|
+
model: 'Wave 533'
|
4697
|
+
- regex: '(?:SAMSUNG-)?GT-S5780'
|
4698
|
+
model: 'Wave 578'
|
4699
|
+
- regex: '(?:SAMSUNG-)?GT-S7230'
|
4700
|
+
model: 'Wave 723'
|
3444
4701
|
- regex: '(?:SAMSUNG-)?SM-C101'
|
3445
4702
|
model: 'GALAXY S4 zoom'
|
3446
4703
|
- regex: '(?:SAMSUNG-)?SM-C115'
|
@@ -3451,12 +4708,34 @@ Samsung:
|
|
3451
4708
|
model: 'GALAXY CORE LTE'
|
3452
4709
|
- regex: '(?:SAMSUNG-)?SM-G3815'
|
3453
4710
|
model: 'GALAXY EXPRESS II'
|
4711
|
+
- regex: '(?:SAMSUNG-)?SM-G388F'
|
4712
|
+
model: 'GALAXY Xcover 3'
|
4713
|
+
- regex: '(?:SAMSUNG-)?SM-G390F'
|
4714
|
+
model: 'GALAXY Xcover 4'
|
3454
4715
|
- regex: '(?:SAMSUNG-)?SM-G800'
|
3455
4716
|
model: 'GALAXY S5 mini'
|
3456
4717
|
- regex: '(?:SAMSUNG-)?SM-G9009D'
|
3457
4718
|
model: 'GALAXY S5 Dual-SIM'
|
3458
4719
|
- regex: '(?:SAMSUNG-)?SM-G900|GALAXY-S5'
|
3459
4720
|
model: 'GALAXY S5'
|
4721
|
+
- regex: '(?:SAMSUNG-)?SM-G901F'
|
4722
|
+
model: 'GALAXY S5 LTE+'
|
4723
|
+
- regex: '(?:SAMSUNG-)?SM-G903F'
|
4724
|
+
model: 'GALAXY S5 Neo'
|
4725
|
+
- regex: '(?:SAMSUNG-)?SM-G920F'
|
4726
|
+
model: 'GALAXY S6'
|
4727
|
+
- regex: '(?:SAMSUNG-)?SM-G925F'
|
4728
|
+
model: 'GALAXY S6 edge'
|
4729
|
+
- regex: '(?:SAMSUNG-)?SM-G928F'
|
4730
|
+
model: 'GALAXY S6 edge+'
|
4731
|
+
- regex: '(?:SAMSUNG-)?SM-G930F'
|
4732
|
+
model: 'GALAXY S7'
|
4733
|
+
- regex: '(?:SAMSUNG-)?SM-G935F|SC-02H'
|
4734
|
+
model: 'GALAXY S7 edge'
|
4735
|
+
- regex: '(?:SAMSUNG-)?SM-G950F'
|
4736
|
+
model: 'GALAXY S8'
|
4737
|
+
- regex: '(?:SAMSUNG-)?SM-G955F'
|
4738
|
+
model: 'GALAXY S8+'
|
3460
4739
|
- regex: '(?:SAMSUNG-)?SCH-I200'
|
3461
4740
|
model: 'GALAXY Stellar'
|
3462
4741
|
- regex: '(?:SAMSUNG-)?SCH-I829'
|
@@ -3467,6 +4746,28 @@ Samsung:
|
|
3467
4746
|
model: 'GALAXY Centura'
|
3468
4747
|
- regex: 'vollo Vi86[);/ ]'
|
3469
4748
|
model: 'Vollo Vi86'
|
4749
|
+
- regex: '(?:SAMSUNG-)?SM-A300FU'
|
4750
|
+
model: 'GALAXY A3 (2015)'
|
4751
|
+
- regex: '(?:SAMSUNG-)?SM-A310F'
|
4752
|
+
model: 'GALAXY A3 (2016)'
|
4753
|
+
- regex: '(?:SAMSUNG-)?SM-A320FL'
|
4754
|
+
model: 'GALAXY A3 (2017)'
|
4755
|
+
- regex: '(?:SAMSUNG-)?SM-A500FU'
|
4756
|
+
model: 'GALAXY A5 (2015)'
|
4757
|
+
- regex: '(?:SAMSUNG-)?SM-A510F'
|
4758
|
+
model: 'GALAXY A5 (2016)'
|
4759
|
+
- regex: '(?:SAMSUNG-)?SM-A520F'
|
4760
|
+
model: 'GALAXY A5 (2017)'
|
4761
|
+
- regex: '(?:SAMSUNG-)?GT-I9301I'
|
4762
|
+
model: 'GALAXY S III Neo'
|
4763
|
+
- regex: '(?:SAMSUNG-)?SM-J320FN?'
|
4764
|
+
model: 'GALAXY J3 (2016)'
|
4765
|
+
- regex: '(?:SAMSUNG-)?SM-J500FN'
|
4766
|
+
model: 'GALAXY J5 (2015)'
|
4767
|
+
- regex: '(?:SAMSUNG-)?SM-J510FN'
|
4768
|
+
model: 'GALAXY J5 (2016)'
|
4769
|
+
- regex: '(?:SAMSUNG-)?SM-G850F'
|
4770
|
+
model: 'GALAXY Alpha'
|
3470
4771
|
|
3471
4772
|
# explicit phablet models
|
3472
4773
|
- regex: '(?:SAMSUNG-)?GT-I9060'
|
@@ -3511,12 +4812,24 @@ Samsung:
|
|
3511
4812
|
- regex: '(?:SAMSUNG-)?SM-N915'
|
3512
4813
|
model: 'GALAXY Note 4 Edge'
|
3513
4814
|
device: 'phablet'
|
4815
|
+
- regex: '(?:SAMSUNG-)?SM-N920[0CIST]'
|
4816
|
+
model: 'GALAXY Note 5'
|
4817
|
+
device: 'phablet'
|
4818
|
+
- regex: '(?:SAMSUNG-)?SM-N9208'
|
4819
|
+
model: 'GALAXY Note 5 Duos'
|
4820
|
+
device: 'phablet'
|
3514
4821
|
- regex: '(?:SAMSUNG-)?GT-I915[028]'
|
3515
4822
|
model: 'GALAXY Mega 5.8'
|
3516
4823
|
device: 'phablet'
|
3517
4824
|
- regex: '(?:SAMSUNG-)?GT-I920[05]'
|
3518
4825
|
model: 'GALAXY Mega 6.3'
|
3519
4826
|
device: 'phablet'
|
4827
|
+
- regex: '(?:SAMSUNG-)?SM-N930F'
|
4828
|
+
model: 'GALAXY Note 7'
|
4829
|
+
device: 'phablet'
|
4830
|
+
- regex: '(?:SAMSUNG[- ])?SM-N950'
|
4831
|
+
model: 'GALAXY Note 8'
|
4832
|
+
device: 'phablet'
|
3520
4833
|
|
3521
4834
|
# explicit feature phones
|
3522
4835
|
- regex: '(?:SAMSUNG-)?GT-E2152'
|
@@ -3645,6 +4958,34 @@ Smartfren:
|
|
3645
4958
|
model: '$1'
|
3646
4959
|
device: 'tablet'
|
3647
4960
|
|
4961
|
+
# Smartisan
|
4962
|
+
Smartisan:
|
4963
|
+
regex: 'SM(?:70[15]|801|901|919)|OD10[35]|YQ60[1357][ /;\)]'
|
4964
|
+
device: 'smartphone'
|
4965
|
+
models:
|
4966
|
+
- regex: 'SM70[15]'
|
4967
|
+
model: 'T1'
|
4968
|
+
- regex: 'SM801'
|
4969
|
+
model: 'T2'
|
4970
|
+
- regex: 'SM901'
|
4971
|
+
model: 'M1'
|
4972
|
+
- regex: 'SM919'
|
4973
|
+
model: 'M1L'
|
4974
|
+
- regex: 'YQ60[1357]'
|
4975
|
+
model: 'U1'
|
4976
|
+
- regex: 'OD10[35]'
|
4977
|
+
model: 'Pro'
|
4978
|
+
|
4979
|
+
# STK
|
4980
|
+
STK:
|
4981
|
+
regex: 'STK[_ ]'
|
4982
|
+
device: 'smartphone'
|
4983
|
+
models:
|
4984
|
+
- regex: 'STK[_ ]([^/;]+) Build'
|
4985
|
+
model: '$1'
|
4986
|
+
- regex: 'STK[_ ]([a-z0-9]+)'
|
4987
|
+
model: '$1'
|
4988
|
+
|
3648
4989
|
# Stonex
|
3649
4990
|
Stonex:
|
3650
4991
|
regex: 'STX[ -]([^;/]+)'
|
@@ -3661,6 +5002,15 @@ SuperSonic:
|
|
3661
5002
|
device: 'tablet'
|
3662
5003
|
model: '$1'
|
3663
5004
|
|
5005
|
+
# Supra
|
5006
|
+
Supra:
|
5007
|
+
regex: 'SUPRA ([^;/]+) Build'
|
5008
|
+
device: 'smartphone'
|
5009
|
+
models:
|
5010
|
+
- regex: 'SUPRA ([^;/]+) Build'
|
5011
|
+
device: 'tablet'
|
5012
|
+
model: '$1'
|
5013
|
+
|
3664
5014
|
# Sumvision
|
3665
5015
|
Sumvision:
|
3666
5016
|
regex: '(Cyclone [^/;]+) Build'
|
@@ -3783,12 +5133,17 @@ Positivo:
|
|
3783
5133
|
|
3784
5134
|
# Prestigio
|
3785
5135
|
Prestigio:
|
3786
|
-
regex: '(?:PMP|PAP)[0-9]+[a-z0-9_]+[);/ ]'
|
5136
|
+
regex: '(?:PMP|PAP|PMT|PSP)[0-9]+[a-z0-9_]+[);/ ]'
|
3787
5137
|
device: 'tablet'
|
3788
5138
|
models:
|
3789
|
-
- regex: '
|
5139
|
+
- regex: 'PMT3277_3G'
|
5140
|
+
model: 'MultiPad Ranger 7.0 3G'
|
5141
|
+
- regex: 'PMT3287_3G'
|
5142
|
+
model: 'MultiPad Ranger 8.0 3G'
|
5143
|
+
|
5144
|
+
- regex: '(PM[PT][0-9]+[a-z0-9_]+)[);/ ]'
|
3790
5145
|
model: '$1'
|
3791
|
-
- regex: '(PAP[0-9]+[a-z0-9_]+(?: DUO)?)[);/ ]'
|
5146
|
+
- regex: '((?:PAP|PSP)[0-9]+[a-z0-9_]+(?: DUO)?)[);/ ]'
|
3792
5147
|
model: '$1'
|
3793
5148
|
device: 'smartphone'
|
3794
5149
|
|
@@ -3886,10 +5241,12 @@ Spice:
|
|
3886
5241
|
|
3887
5242
|
# Sharp
|
3888
5243
|
Sharp:
|
3889
|
-
regex: 'SHARP|SBM|SH-?[0-9]+[a-z]?[);/ ]|AQUOS'
|
5244
|
+
regex: 'SHARP|SBM|SH-?[0-9]+[a-z]?[);/ ]|AQUOS|506SH'
|
3890
5245
|
device: 'smartphone'
|
3891
5246
|
models:
|
3892
5247
|
# explicit smartphone models
|
5248
|
+
- regex: '506SH'
|
5249
|
+
model: 'Aquos Xx3'
|
3893
5250
|
- regex: 'SH-02E'
|
3894
5251
|
model: 'Aquos Phone Zeta'
|
3895
5252
|
- regex: 'SH06D'
|
@@ -3938,7 +5295,7 @@ Star:
|
|
3938
5295
|
|
3939
5296
|
# Kindle
|
3940
5297
|
Amazon:
|
3941
|
-
regex: 'KF(?:OT|TT|JWI|JWA|
|
5298
|
+
regex: 'KF(?:OT|TT|JWI|JWA|[DFS]OWI|A[PRSU]WI|T[BH]WI|SAW[IA]|GIWI)[);/ ]|Kindle|Silk/\d+\.\d+|Amazon (?:Tate|Jem)|AFT[BM]|SD4930UR'
|
3942
5299
|
device: 'tablet'
|
3943
5300
|
models:
|
3944
5301
|
- regex: 'AFTB'
|
@@ -3947,6 +5304,8 @@ Amazon:
|
|
3947
5304
|
- regex: 'AFTM'
|
3948
5305
|
model: 'Fire TV stick'
|
3949
5306
|
device: 'tv'
|
5307
|
+
- regex: 'KFFOWI[);/ ]'
|
5308
|
+
model: 'Fire 7"'
|
3950
5309
|
- regex: 'KFTT[);/ ]'
|
3951
5310
|
model: 'Kindle Fire HD'
|
3952
5311
|
- regex: 'KFJWI[);/ ]|Amazon Jem'
|
@@ -3967,10 +5326,18 @@ Amazon:
|
|
3967
5326
|
model: 'Fire HD 6'
|
3968
5327
|
- regex: 'KFASWI[);/ ]'
|
3969
5328
|
model: 'Fire HD 7'
|
5329
|
+
- regex: 'KFAUWI[);/ ]'
|
5330
|
+
model: 'Fire HD 7 2017'
|
5331
|
+
- regex: 'KFGIWI[);/ ]'
|
5332
|
+
model: 'Fire HD 8 2016'
|
5333
|
+
- regex: 'KFDOWI[);/ ]'
|
5334
|
+
model: 'Fire HD 8 2017'
|
3970
5335
|
- regex: 'KFSAWI[);/ ]'
|
3971
5336
|
model: 'Fire HDX 8.9'
|
3972
5337
|
- regex: 'KFSAWA[);/ ]'
|
3973
5338
|
model: 'Fire HDX 8.9 4G'
|
5339
|
+
- regex: 'KFTBWI[);/ ]'
|
5340
|
+
model: 'Fire HD 10'
|
3974
5341
|
- regex: 'SD4930UR'
|
3975
5342
|
model: 'Fire Phone'
|
3976
5343
|
device: 'smartphone'
|
@@ -4003,15 +5370,35 @@ T-Mobile:
|
|
4003
5370
|
- regex: 'T-Mobile[ _]([a-z0-9_ ]+)'
|
4004
5371
|
model: '$1'
|
4005
5372
|
|
5373
|
+
# TB Touch
|
5374
|
+
'TB Touch':
|
5375
|
+
regex: 'Ignis [89]'
|
5376
|
+
device: 'tablet'
|
5377
|
+
models:
|
5378
|
+
- regex: 'Ignis ([89])'
|
5379
|
+
model: 'Ignis $1'
|
5380
|
+
|
4006
5381
|
# Tcl
|
4007
5382
|
TCL:
|
4008
|
-
regex: 'TCL[ -][a-z0-9]+|TCL[_ -][^;/]
|
5383
|
+
regex: 'TCL[ -][a-z0-9]+|(TCL[_ -][^;/]+|7040N) Build'
|
4009
5384
|
device: 'smartphone'
|
4010
5385
|
models:
|
4011
5386
|
- regex: 'TCL[_ -]([^;/]+) Build'
|
4012
5387
|
model: '$1'
|
4013
5388
|
- regex: 'TCL[ -]([a-z0-9]+)'
|
4014
5389
|
model: '$1'
|
5390
|
+
- regex: '(7040N)'
|
5391
|
+
model: '$1'
|
5392
|
+
|
5393
|
+
# Teclast
|
5394
|
+
Teclast:
|
5395
|
+
regex: 'Teclast|Tbook'
|
5396
|
+
device: 'tablet'
|
5397
|
+
models:
|
5398
|
+
- regex: 'Tbook[_ -]([^;/]+) Build'
|
5399
|
+
model: 'Tbook $1'
|
5400
|
+
- regex: 'Teclast[_ -]([^;/]+) Build'
|
5401
|
+
model: '$1'
|
4015
5402
|
|
4016
5403
|
# Tecno Mobile
|
4017
5404
|
Tecno Mobile:
|
@@ -4025,9 +5412,13 @@ Tecno Mobile:
|
|
4025
5412
|
|
4026
5413
|
# Tesco
|
4027
5414
|
Tesco:
|
4028
|
-
regex: 'Hudl ([^/;]+) Build'
|
5415
|
+
regex: 'Hudl ([^/;]+) Build|W032i-C3[);/ ]'
|
4029
5416
|
device: 'tablet'
|
4030
|
-
|
5417
|
+
models:
|
5418
|
+
- regex: 'Hudl ([^/;]+) Build'
|
5419
|
+
model: 'Hudl $1'
|
5420
|
+
- regex: 'W032i-C3[);/ ]'
|
5421
|
+
model: 'Op3n Dott'
|
4031
5422
|
|
4032
5423
|
# teXet
|
4033
5424
|
teXet:
|
@@ -4087,6 +5478,14 @@ Toplux:
|
|
4087
5478
|
device: 'feature phone'
|
4088
5479
|
model: '$1'
|
4089
5480
|
|
5481
|
+
# TrekStor
|
5482
|
+
TrekStor:
|
5483
|
+
regex: 'TrekStor ([^/;]+) Build'
|
5484
|
+
device: 'tablet'
|
5485
|
+
models:
|
5486
|
+
- regex: 'TrekStor ([^/;]+) Build'
|
5487
|
+
model: '$1'
|
5488
|
+
|
4090
5489
|
# Trevi
|
4091
5490
|
Trevi:
|
4092
5491
|
regex: 'Trevi[ _]|TAB[ _]10[ _]3G[ _]V16|TAB[ _](7|8)[ _]3G[ _]V8|TAB9 3G|MINITAB 3GV|Phablet[ _](?:4|4\.5|5|5\,3|6)[ _]?[CSQ]|REVERSE[ _]5\.5[ _]?Q'
|
@@ -4146,6 +5545,44 @@ UTStarcom:
|
|
4146
5545
|
device: 'feature phone'
|
4147
5546
|
model: '$1'
|
4148
5547
|
|
5548
|
+
# Ulefone
|
5549
|
+
Ulefone:
|
5550
|
+
regex: 'Ulefone|(Armor(?:[ _]2)?|U00[78][ _]Pro|Be[ _]X|Be[ _]Touch(?:[ _][23])?|Be[ _](?:One|Pure)(?:[ _]Lite)?) Build'
|
5551
|
+
device: 'smartphone'
|
5552
|
+
models:
|
5553
|
+
- regex: 'Be[ _]Touch([ _][23])?'
|
5554
|
+
model: 'Be Touch$1'
|
5555
|
+
- regex: 'Be[ _]Pure[ _]Lite'
|
5556
|
+
model: 'Be Pure Lite'
|
5557
|
+
- regex: 'Be[ _]Pure'
|
5558
|
+
model: 'Be Pure'
|
5559
|
+
- regex: 'Be[ _]One[ _]Lite'
|
5560
|
+
model: 'Be One Lite'
|
5561
|
+
- regex: 'Be[ _]One'
|
5562
|
+
model: 'Be One'
|
5563
|
+
- regex: 'Be[ _]X'
|
5564
|
+
model: 'Be X'
|
5565
|
+
- regex: 'U007 Pro'
|
5566
|
+
model: 'U007 Pro'
|
5567
|
+
- regex: 'U008 Pro'
|
5568
|
+
model: 'U008 Pro'
|
5569
|
+
- regex: 'Armor[ _]2 Build'
|
5570
|
+
model: 'Armor 2'
|
5571
|
+
- regex: 'Armor Build'
|
5572
|
+
model: 'Armor'
|
5573
|
+
- regex: 'Ulefone[ _-]?([^;/]+) Build'
|
5574
|
+
model: '$1'
|
5575
|
+
- regex: 'Ulefone[ _-]?([^;/)]+)[;/)]'
|
5576
|
+
model: '$1'
|
5577
|
+
|
5578
|
+
# UMIDIGI
|
5579
|
+
UMIDIGI:
|
5580
|
+
regex: 'UMI(?:DIGI)?[ _]'
|
5581
|
+
device: 'smartphone'
|
5582
|
+
models:
|
5583
|
+
- regex: 'UMI(?:DIGI)?[ _]([^/;]+) Build'
|
5584
|
+
model: '$1'
|
5585
|
+
|
4149
5586
|
# Uniscope
|
4150
5587
|
Uniscope:
|
4151
5588
|
regex: 'Uniscope'
|
@@ -4169,6 +5606,9 @@ ViewSonic:
|
|
4169
5606
|
regex: 'ViewSonic|VSD[0-9]+[);/ ]|ViewPad|ViewPhone'
|
4170
5607
|
device: 'smart display'
|
4171
5608
|
models:
|
5609
|
+
- regex: '(?:ViewSonic-)?V500[);/ ]'
|
5610
|
+
model: 'V500'
|
5611
|
+
device: 'smartphone'
|
4172
5612
|
- regex: '(?:ViewSonic-)?ViewPhone ?([^;/]+) Build'
|
4173
5613
|
model: 'ViewPhone $1'
|
4174
5614
|
device: 'smartphone'
|
@@ -4202,6 +5642,14 @@ Vertu:
|
|
4202
5642
|
device: 'feature phone'
|
4203
5643
|
model: '$1'
|
4204
5644
|
|
5645
|
+
# Verykool
|
5646
|
+
Verykool:
|
5647
|
+
regex: 'verykool'
|
5648
|
+
device: 'smartphone'
|
5649
|
+
models:
|
5650
|
+
- regex: 'verykool[ _]?([^/;]+) Build'
|
5651
|
+
model: '$1'
|
5652
|
+
|
4205
5653
|
# Videocon
|
4206
5654
|
Videocon:
|
4207
5655
|
regex: 'Videocon[_ \-]|VT75C'
|
@@ -4214,9 +5662,27 @@ Videocon:
|
|
4214
5662
|
|
4215
5663
|
# Vodafone
|
4216
5664
|
Vodafone:
|
4217
|
-
regex: 'Vodafone[ _-]|Smart ?Tab ?(?:III? ?)?(?:|4G|7|10)[);/ -]|VodafoneSmartChat'
|
4218
|
-
device: 'smartphone'
|
4219
|
-
models:
|
5665
|
+
regex: 'Vodafone[ _-]|Smart ?Tab ?(?:III? ?)?(?:|4G|7|10)[);/ -]|VodafoneSmartChat|VFD[ _][0-9]+[;/) ]'
|
5666
|
+
device: 'smartphone'
|
5667
|
+
models:
|
5668
|
+
- regex: 'VFD 100'
|
5669
|
+
model: 'Smart Mini'
|
5670
|
+
- regex: 'VFD 200'
|
5671
|
+
model: 'Smart First 7'
|
5672
|
+
- regex: 'VFD 300'
|
5673
|
+
model: 'Smart Mini 7'
|
5674
|
+
- regex: 'VFD 50[02]'
|
5675
|
+
model: 'Smart Turbo 7'
|
5676
|
+
- regex: 'VFD 51[013]'
|
5677
|
+
model: 'Smart E8'
|
5678
|
+
- regex: 'VFD 600'
|
5679
|
+
model: 'Smart Prime 7'
|
5680
|
+
- regex: 'VFD 610'
|
5681
|
+
model: 'Smart N8'
|
5682
|
+
- regex: 'VFD 700'
|
5683
|
+
model: 'Smart Ultra 7'
|
5684
|
+
- regex: 'VFD 900'
|
5685
|
+
model: 'Smart Platinum 7'
|
4220
5686
|
- regex: 'Vodafone[ _]875[);/ ]'
|
4221
5687
|
model: 'Smart Mini' # Alcatel
|
4222
5688
|
- regex: 'Vodafone[ _]975N?[);/ ]'
|
@@ -4231,6 +5697,15 @@ Vodafone:
|
|
4231
5697
|
model: 'Smart Chat'
|
4232
5698
|
|
4233
5699
|
# explicit table models
|
5700
|
+
- regex: 'VFD 1100'
|
5701
|
+
device: 'tablet'
|
5702
|
+
model: 'Tab Mini 7'
|
5703
|
+
- regex: 'VFD 1300'
|
5704
|
+
device: 'tablet'
|
5705
|
+
model: 'Smart Tab N8'
|
5706
|
+
- regex: 'VFD 1400'
|
5707
|
+
device: 'tablet'
|
5708
|
+
model: 'Tab Prime 7'
|
4234
5709
|
- regex: 'Smart ?Tab ?3G'
|
4235
5710
|
device: 'tablet'
|
4236
5711
|
model: 'Smart Tab 3G'
|
@@ -4256,6 +5731,8 @@ Vodafone:
|
|
4256
5731
|
model: 'Smart Tab III 10' # Lenovo
|
4257
5732
|
device: 'tablet'
|
4258
5733
|
|
5734
|
+
- regex: 'VFD[ _]([0-9]+)[;/) ]'
|
5735
|
+
model: 'VFD $1'
|
4259
5736
|
- regex: 'Vodafone[ _-]([^;/]+) Build'
|
4260
5737
|
model: '$1'
|
4261
5738
|
- regex: 'Vodafone[ _-]([a-z0-9_-]+)'
|
@@ -4325,16 +5802,16 @@ Wexler:
|
|
4325
5802
|
|
4326
5803
|
# Wiko
|
4327
5804
|
Wiko:
|
4328
|
-
regex: '(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink
|
5805
|
+
regex: '(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink([^/;]*)|Highway([^/;]*)|Iggy|Stairway|Rainbow ?(Jam|Lite|Up)?|Darkside|Darkmoon|Darkfull|Darknight|Freddy|Jerry[2]?|Sublim|Ozzy|JIMMY|Barry|Birdy|Bloom|Getaway|Goa|Kite|Lenny[234]?(?: Plus)?|Slide|Sunset2?|Sunny[2]?(?: Plus)?|Tommy[2]?|PULP|Wax|Ridge(?: Fab)?)(?: 4G)? Build'
|
4329
5806
|
device: 'smartphone'
|
4330
5807
|
models:
|
4331
5808
|
- regex: '(?:WIKO-)?CINK_([a-z0-9_]+)'
|
4332
5809
|
model: 'Cink $1'
|
4333
|
-
- regex: '(?:Wiko-)?Cink(
|
5810
|
+
- regex: '(?:Wiko-)?Cink([^/;]*) Build'
|
4334
5811
|
model: 'Cink$1'
|
4335
5812
|
- regex: '(?:WIKO-)?HIGHWAY_([a-z0-9_]+)'
|
4336
5813
|
model: 'Highway $1'
|
4337
|
-
- regex: '(?:Wiko-)?Highway(
|
5814
|
+
- regex: '(?:Wiko-)?Highway([^/;]*) Build'
|
4338
5815
|
model: 'Highway$1'
|
4339
5816
|
- regex: '(?:WIKO-)?Iggy Build'
|
4340
5817
|
model: 'Iggy'
|
@@ -4348,8 +5825,8 @@ Wiko:
|
|
4348
5825
|
model: 'Ridge 4G'
|
4349
5826
|
- regex: '(?:WIKO-)?Rainbow Build'
|
4350
5827
|
model: 'Rainbow'
|
4351
|
-
- regex: '(?:WIKO-)?Rainbow
|
4352
|
-
model: 'Rainbow
|
5828
|
+
- regex: '(?:WIKO-)?Rainbow ([^/;]+) Build'
|
5829
|
+
model: 'Rainbow $1'
|
4353
5830
|
- regex: '(?:WIKO-)?Darkside Build'
|
4354
5831
|
model: 'Darkside'
|
4355
5832
|
- regex: '(?:WIKO-)?Darkmoon Build'
|
@@ -4370,20 +5847,58 @@ Wiko:
|
|
4370
5847
|
model: 'Bloom'
|
4371
5848
|
- regex: '(?:WIKO-)?JIMMY Build'
|
4372
5849
|
model: 'Jimmy'
|
5850
|
+
- regex: '(?:WIKO-)?Jerry Build'
|
5851
|
+
model: 'Jerry'
|
5852
|
+
- regex: '(?:WIKO-)?Jerry2 Build'
|
5853
|
+
model: 'Jerry 2'
|
4373
5854
|
- regex: '(?:WIKO-)?Getaway Build'
|
4374
5855
|
model: 'Getaway'
|
4375
5856
|
- regex: '(?:WIKO-)?Goa Build'
|
4376
5857
|
model: 'Goa'
|
5858
|
+
- regex: '(?:WIKO-)?Freddy Build'
|
5859
|
+
model: 'Freddy'
|
4377
5860
|
- regex: '(?:WIKO-)?Kite Build'
|
4378
5861
|
model: 'Kite'
|
4379
5862
|
- regex: '(?:WIKO-)?Lenny Build'
|
4380
5863
|
model: 'Lenny'
|
5864
|
+
- regex: '(?:WIKO-)?Lenny[ -_]?2 Build'
|
5865
|
+
model: 'Lenny 2'
|
5866
|
+
- regex: '(?:WIKO-)?Lenny[ -_]?3 Build'
|
5867
|
+
model: 'Lenny 3'
|
5868
|
+
- regex: '(?:WIKO-)?Lenny[ -_]?4 Build'
|
5869
|
+
model: 'Lenny 4'
|
5870
|
+
- regex: '(?:WIKO-)?Lenny[ -_]?4 Plus Build'
|
5871
|
+
model: 'Lenny 4 Plus'
|
4381
5872
|
- regex: '(?:WIKO-)?Slide Build'
|
4382
5873
|
model: 'Slide'
|
4383
5874
|
- regex: '(?:WIKO-)?Sunset Build'
|
4384
5875
|
model: 'Sunset'
|
5876
|
+
- regex: '(?:WIKO-)?Sunset2 Build'
|
5877
|
+
model: 'Sunset 2'
|
5878
|
+
- regex: '(?:WIKO-)?Sunny Build'
|
5879
|
+
model: 'Sunny'
|
5880
|
+
- regex: '(?:WIKO-)?Sunny2 Build'
|
5881
|
+
model: 'Sunny 2'
|
5882
|
+
- regex: '(?:WIKO-)?Sunny2 Plus Build'
|
5883
|
+
model: 'Sunny 2 Plus'
|
5884
|
+
- regex: '(?:WIKO-)?Tommy Build'
|
5885
|
+
model: 'Tommy'
|
5886
|
+
- regex: '(?:WIKO-)?Tommy2 Build'
|
5887
|
+
model: 'Tommy 2'
|
4385
5888
|
- regex: '(?:WIKO-)?Wax Build'
|
4386
5889
|
model: 'Wax'
|
5890
|
+
- regex: '(?:WIKO-)?Pulp Build'
|
5891
|
+
model: 'Pulp'
|
5892
|
+
|
5893
|
+
# Wileyfox
|
5894
|
+
Wileyfox:
|
5895
|
+
regex: '(?:Wileyfox [^/]+)|Swift([^/]+) Build'
|
5896
|
+
device: 'smartphone'
|
5897
|
+
models:
|
5898
|
+
- regex: 'Wileyfox ([^/]+) Build'
|
5899
|
+
model: '$1'
|
5900
|
+
- regex: 'Swift ([^/]+) Build'
|
5901
|
+
model: 'Swift $1'
|
4387
5902
|
|
4388
5903
|
# Wolder
|
4389
5904
|
Wolder:
|
@@ -4396,6 +5911,12 @@ Wolder:
|
|
4396
5911
|
device: 'tablet'
|
4397
5912
|
model: 'miTab $1'
|
4398
5913
|
|
5914
|
+
# Wolfgang
|
5915
|
+
Wolfgang:
|
5916
|
+
regex: 'AT[ _-]AS([0-9A-Z]+)[);/ ]'
|
5917
|
+
device: 'smartphone'
|
5918
|
+
model: 'AT-AS$1'
|
5919
|
+
|
4399
5920
|
# Wonu
|
4400
5921
|
Wonu:
|
4401
5922
|
regex: 'Wonu ([a-z0-9]+)'
|
@@ -4404,13 +5925,13 @@ Wonu:
|
|
4404
5925
|
|
4405
5926
|
# Woxter
|
4406
5927
|
Woxter:
|
4407
|
-
regex: 'Woxter ([^/;]+) Build'
|
5928
|
+
regex: 'Woxter[ _]([^/;]+) Build'
|
4408
5929
|
device: 'tablet'
|
4409
5930
|
model: '$1'
|
4410
5931
|
|
4411
5932
|
#Xiaomi
|
4412
5933
|
Xiaomi:
|
4413
|
-
regex: 'Xiaomi|(MI [a-z0-9]+|MI-One[ _]?[a-z0-9]+)[);/ ]|HM ([^/;]+) Build|(2014501|2014011|201481[13]|201302[23]|2013061) Build|Redmi'
|
5934
|
+
regex: 'Xiaomi|(MI [a-z0-9]+|Mi-4c|MI-One[ _]?[a-z0-9]+)[);/ ]|HM ([^/;]+) (?:Build|MIUI)|(2014501|2014011|201481[13]|201302[23]|2013061) Build|Redmi'
|
4414
5935
|
device: 'smartphone'
|
4415
5936
|
models:
|
4416
5937
|
# specific smartphone models
|
@@ -4424,23 +5945,25 @@ Xiaomi:
|
|
4424
5945
|
model: 'Hongmi'
|
4425
5946
|
- regex: 'Xiaomi_2013061|2013061 Build'
|
4426
5947
|
model: 'MI 3'
|
5948
|
+
- regex: 'Mi-4c[);/ ]'
|
5949
|
+
model: 'MI 4C'
|
4427
5950
|
|
4428
|
-
- regex: 'Redmi Note ([^;/]+)?
|
5951
|
+
- regex: 'Redmi Note ([^;/]+)? .+?\)'
|
4429
5952
|
model: 'Redmi Note $1'
|
4430
5953
|
device: 'phablet'
|
4431
|
-
- regex: 'Redmi ([^;/]+)?
|
5954
|
+
- regex: 'Redmi ([^;/]+)? .+?\)'
|
4432
5955
|
model: 'Redmi $1'
|
4433
|
-
- regex: 'MI Note ([^;/]+)?
|
5956
|
+
- regex: 'MI Note ([^;/]+)? .+?\)'
|
4434
5957
|
model: 'MI Note $1'
|
4435
5958
|
device: 'phablet'
|
4436
5959
|
- regex: '(MI(?:-One)?[ _](?:[^;/]*))Build'
|
4437
5960
|
model: '$1'
|
4438
5961
|
- regex: '(MI [a-z0-9]+|MI-One[ _]?[a-z0-9]+)[);/ ]'
|
4439
5962
|
model: '$1'
|
4440
|
-
- regex: 'HM Note ([^/;]+) Build'
|
5963
|
+
- regex: 'HM Note ([^/;]+) (?:Build|MIUI)'
|
4441
5964
|
device: 'phablet'
|
4442
5965
|
model: 'HM Note $1'
|
4443
|
-
- regex: 'HM ([^/;]+) Build'
|
5966
|
+
- regex: 'HM ([^/;]+) (?:Build|MIUI)'
|
4444
5967
|
model: 'HM $1'
|
4445
5968
|
|
4446
5969
|
# Xolo
|
@@ -4532,7 +6055,7 @@ Zonda:
|
|
4532
6055
|
|
4533
6056
|
# Toshiba
|
4534
6057
|
Toshiba:
|
4535
|
-
regex: 'Toshiba|TSBNetTV/|portalmmm/[12].0 TS|T-01C|T-0[12]D|IS04|IS11T|AT1S0|AT300SE|AT(100|200|270|300|330|374|400|470|500|503|570|703|830)'
|
6058
|
+
regex: 'Toshiba|TSBNetTV/|portalmmm/[12].0 TS|T-01C|T-0[12]D|IS04|IS11T|AT1S0|AT300SE|AT(10-A|10[PL]E-A|100|200|270|300|330|374|400|470|500|503|570|703|830)'
|
4536
6059
|
device: 'smartphone'
|
4537
6060
|
models:
|
4538
6061
|
# explicit smartphone models
|
@@ -4560,6 +6083,12 @@ Toshiba:
|
|
4560
6083
|
- regex: 'AT(100|200|270|300|330|374|400|470|500|503|570|703|830)'
|
4561
6084
|
model: 'Regza AT$1'
|
4562
6085
|
device: 'tablet'
|
6086
|
+
- regex: 'AT10([PL])E-A'
|
6087
|
+
model: 'Excite AT10$1-A'
|
6088
|
+
device: 'tablet'
|
6089
|
+
- regex: 'AT10-A'
|
6090
|
+
model: 'Excite AT10-A'
|
6091
|
+
device: 'tablet'
|
4563
6092
|
|
4564
6093
|
- regex: 'TSBNetTV/'
|
4565
6094
|
device: 'tv'
|
@@ -4573,7 +6102,7 @@ Toshiba:
|
|
4573
6102
|
|
4574
6103
|
# Fly
|
4575
6104
|
Fly:
|
4576
|
-
regex: 'Fly(?!Flow|touch)|MERIDIAN-|(?:IQ[0-9]{3,})[ _]?(?:Quad|Firebird|Quattro|Turbo|Magic)?(?: Build|[;/\)])'
|
6105
|
+
regex: 'Fly(?!Flow|touch)|FS50[1-9]|FS511|FS551|FS40[1-7]|FS452|FS451|FS454|4FS06|MERIDIAN-|(?:IQ[0-9]{3,})[ _]?(?:Quad|Firebird|Quattro|Turbo|Magic)?(?: Build|[;/\)])'
|
4577
6106
|
device: 'smartphone'
|
4578
6107
|
models:
|
4579
6108
|
- regex: '(?:Fly_)?IQ310(?: Build|[;/\)])'
|
@@ -4582,6 +6111,44 @@ Fly:
|
|
4582
6111
|
|
4583
6112
|
- regex: '(?:Fly_)?IQ236(?: Build|[;/\)])'
|
4584
6113
|
model: 'Victory'
|
6114
|
+
- regex: 'FS506'
|
6115
|
+
model: 'Cirrus 3'
|
6116
|
+
- regex: 'FS403'
|
6117
|
+
model: 'Cumulus 1'
|
6118
|
+
- regex: 'FS508'
|
6119
|
+
model: 'Cirrus 6'
|
6120
|
+
- regex: 'FS511'
|
6121
|
+
model: 'Cirrus 7'
|
6122
|
+
- regex: 'FS509'
|
6123
|
+
model: 'Nimbus 9'
|
6124
|
+
- regex: 'FS406'
|
6125
|
+
model: 'Stratus 5'
|
6126
|
+
- regex: 'FS404'
|
6127
|
+
model: 'Stratus 3'
|
6128
|
+
- regex: 'FS504'
|
6129
|
+
model: 'Cirrus 2'
|
6130
|
+
- regex: 'FS407'
|
6131
|
+
model: 'Stratus 6'
|
6132
|
+
- regex: 'FS401'
|
6133
|
+
model: 'Stratus 1'
|
6134
|
+
- regex: 'FS402'
|
6135
|
+
model: 'Stratus 2'
|
6136
|
+
- regex: 'FS501'
|
6137
|
+
model: 'Nimbus 3'
|
6138
|
+
- regex: 'FS502'
|
6139
|
+
model: 'Cirrus 1'
|
6140
|
+
- regex: 'FS505'
|
6141
|
+
model: 'Nimbus 7'
|
6142
|
+
- regex: 'FS551'
|
6143
|
+
model: 'Nimbus 4'
|
6144
|
+
- regex: 'FS454'
|
6145
|
+
model: 'Nimbus 8'
|
6146
|
+
- regex: 'FS452'
|
6147
|
+
model: 'Nimbus 2'
|
6148
|
+
- regex: 'FS451'
|
6149
|
+
model: 'Nimbus 1'
|
6150
|
+
- regex: 'FS405'
|
6151
|
+
model: 'Stratus 4'
|
4585
6152
|
- regex: '(?:Fly_)?IQ237(?: Build|[;/\)])'
|
4586
6153
|
model: 'Dynamic'
|
4587
6154
|
- regex: '(?:Fly_)?IQ238(?: Build|[;/\)])'
|
@@ -4652,6 +6219,8 @@ Fly:
|
|
4652
6219
|
model: 'Energy 2'
|
4653
6220
|
- regex: '(?:Fly_)?IQ4412 Quad(?: Build|[;/\)])'
|
4654
6221
|
model: 'Coral'
|
6222
|
+
- regex: '(?:Fly_)?IQ4413[ _]Quad(?: Build|[;/\)])'
|
6223
|
+
model: 'Evo Chic 3'
|
4655
6224
|
- regex: '(?:Fly_)?IQ4414 Quad(?: Build|[;/\)])'
|
4656
6225
|
model: 'Evo Tech 3'
|
4657
6226
|
- regex: '(?:Fly_)?IQ4415 Quad(?: Build|[;/\)])'
|
@@ -4673,11 +6242,31 @@ Fly:
|
|
4673
6242
|
- regex: 'MERIDIAN-([a-z0-9]+)'
|
4674
6243
|
model: '$1'
|
4675
6244
|
|
4676
|
-
#
|
4677
|
-
|
4678
|
-
regex: '
|
4679
|
-
device: '
|
4680
|
-
|
6245
|
+
# Freetel
|
6246
|
+
Freetel:
|
6247
|
+
regex: '(FTJ152[ABCD]|FT141B|FT142D_LTEXM|FT142A?|FTJ161B|FTJ152E|FTJ162D) Build'
|
6248
|
+
device: 'smartphone'
|
6249
|
+
models:
|
6250
|
+
- regex: 'FTJ152C'
|
6251
|
+
model: 'Samurai Miyabi'
|
6252
|
+
- regex: 'FT141B'
|
6253
|
+
model: 'Nico'
|
6254
|
+
- regex: 'FT142D_LTEXM'
|
6255
|
+
model: 'XM'
|
6256
|
+
- regex: 'FT142A?'
|
6257
|
+
model: 'Priori 2'
|
6258
|
+
- regex: 'FTJ152A'
|
6259
|
+
model: 'Priori 3'
|
6260
|
+
- regex: 'FTJ162D'
|
6261
|
+
model: 'Priori 4'
|
6262
|
+
- regex: 'FTJ152B'
|
6263
|
+
model: 'Priori 3S LTE'
|
6264
|
+
- regex: 'FTJ152D'
|
6265
|
+
model: 'Samurai Kiwami'
|
6266
|
+
- regex: 'FTJ161B'
|
6267
|
+
model: 'Samurai Rei'
|
6268
|
+
- regex: 'FTJ152E'
|
6269
|
+
model: 'Katana 1'
|
4681
6270
|
|
4682
6271
|
# Zeemi
|
4683
6272
|
Zeemi:
|
@@ -4697,7 +6286,7 @@ Zopo:
|
|
4697
6286
|
|
4698
6287
|
# ZTE
|
4699
6288
|
ZTE:
|
4700
|
-
regex: 'ZTE|AxonPhone|([a-z0-9]+)_USA_Cricket|(?:Blade S6|N9[15]8St|NX(?:403A|40[X2]|507J|503A|505J|506J|508J|510J|511J|513J|601J)|Z331|N9510|N9180|N9101|N9515|N952[01]|N9810|N799D|[UV]9180|[UV]9815|Z768G)[);/ ]'
|
6289
|
+
regex: 'ZTE|AxonPhone|([a-z0-9]+)_USA_Cricket|(?:Blade (?:L[2357]|S6|V[678]|X7|A520)|N9[15]8St|NX(?:403A|40[X2]|507J|503A|505J|506J|508J|510J|511J|513J|529J|531J|549J|601J)|Z331|N9510|N9180|N9101|NX406E|N9515|N952[01]|N9810|N799D|[UV]9180|[UV]9815|Z768G|Z820|Z981|A460)[);/ ]'
|
4701
6290
|
device: 'smartphone'
|
4702
6291
|
models:
|
4703
6292
|
# explicit smartphone models
|
@@ -4739,6 +6328,12 @@ ZTE:
|
|
4739
6328
|
model: 'Nubia Z9 mini'
|
4740
6329
|
- regex: 'NX510J[);/ ]'
|
4741
6330
|
model: 'Nubia Z9 max'
|
6331
|
+
- regex: 'NX531J[);/ ]'
|
6332
|
+
model: 'Nubia Z11'
|
6333
|
+
- regex: 'NX529J[);/ ]'
|
6334
|
+
model: 'Nubia Z11 mini'
|
6335
|
+
- regex: 'NX549J[);/ ]'
|
6336
|
+
model: 'Nubia Z11 mini S'
|
4742
6337
|
- regex: 'NX513J[);/ ]'
|
4743
6338
|
model: 'Nubia My Prague'
|
4744
6339
|
- regex: 'NX601J[);/ ]'
|
@@ -4749,10 +6344,44 @@ ZTE:
|
|
4749
6344
|
model: 'Grand Memo'
|
4750
6345
|
- regex: 'Z331[);/ ]'
|
4751
6346
|
model: 'Z331'
|
6347
|
+
- regex: 'Blade A520[);/ ]'
|
6348
|
+
model: 'Blade A520'
|
6349
|
+
- regex: 'Blade L2 Plus[);/ ]'
|
6350
|
+
model: 'Blade L2 Plus'
|
6351
|
+
- regex: 'Blade L2[);/ ]'
|
6352
|
+
model: 'Blade L2'
|
6353
|
+
- regex: 'Blade L3 Plus[);/ ]'
|
6354
|
+
model: 'Blade L3 Plus'
|
6355
|
+
- regex: 'Blade L3[);/ ]'
|
6356
|
+
model: 'Blade L3'
|
6357
|
+
- regex: 'Blade L5[);/ ]'
|
6358
|
+
model: 'Blade L5'
|
4752
6359
|
- regex: 'Blade S6[);/ ]'
|
4753
6360
|
model: 'Blade S6'
|
6361
|
+
- regex: 'Blade V6 MAX[);/ ]'
|
6362
|
+
model: 'Blade V6 Max'
|
6363
|
+
- regex: 'Blade V6 Plus[);/ ]'
|
6364
|
+
model: 'Blade V6 Plus'
|
6365
|
+
- regex: 'Blade V6[);/ ]'
|
6366
|
+
model: 'Blade V6'
|
6367
|
+
- regex: 'Blade L7[);/ ]'
|
6368
|
+
model: 'Blade L7'
|
6369
|
+
- regex: 'Blade V7[);/ ]'
|
6370
|
+
model: 'Blade V7'
|
6371
|
+
- regex: 'Blade X7[);/ ]'
|
6372
|
+
model: 'Blade X7'
|
6373
|
+
- regex: 'Blade V8 SE[);/ ]'
|
6374
|
+
model: 'Blade V8 SE'
|
4754
6375
|
- regex: 'Z768G[);/ ]'
|
4755
6376
|
model: 'Midnight'
|
6377
|
+
- regex: 'Z820[);/ ]'
|
6378
|
+
model: 'Obsidian'
|
6379
|
+
- regex: 'Z981[);/ ]'
|
6380
|
+
model: 'ZMAX Pro'
|
6381
|
+
- regex: 'Blade (A460)'
|
6382
|
+
model: 'Blade $1'
|
6383
|
+
- regex: 'NX406E[);/ ]'
|
6384
|
+
model: 'Nubia Z5S'
|
4756
6385
|
|
4757
6386
|
- regex: 'AxonPhone ([^;/]+) Build'
|
4758
6387
|
model: 'AxonPhone $1'
|
@@ -4767,21 +6396,15 @@ ZTE:
|
|
4767
6396
|
model: '$1'
|
4768
6397
|
- regex: 'ZTE[ _]([a-z0-9]+)'
|
4769
6398
|
model: '$1'
|
6399
|
+
# Zen'
|
6400
|
+
Zen:
|
6401
|
+
regex: '(Admire[_ ][^/;]+|Cinemax[^/;)]+)(?:Build|\) U)'
|
6402
|
+
device: 'smartphone'
|
6403
|
+
model: '$1'
|
4770
6404
|
|
4771
|
-
#
|
4772
|
-
|
4773
|
-
|
4774
|
-
|
4775
|
-
|
6405
|
+
# Devices with undectable brand, but detectable model
|
6406
|
+
Unknown:
|
6407
|
+
regex: 'WebTV/(\d+\.\d+)'
|
6408
|
+
device: 'tv'
|
6409
|
+
model: 'Web TV'
|
4776
6410
|
|
4777
|
-
# OnePlus
|
4778
|
-
OnePlus:
|
4779
|
-
regex: '(?:A0001|A2005|E1003) Build'
|
4780
|
-
device: 'smartphone'
|
4781
|
-
models:
|
4782
|
-
- regex: 'A0001'
|
4783
|
-
model: 'One'
|
4784
|
-
- regex: 'A2005'
|
4785
|
-
model: 'Two'
|
4786
|
-
- regex: 'E1003'
|
4787
|
-
model: 'X'
|