device_detector 0.8.2 → 0.9.0
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 +11 -3
- data/CHANGELOG.md +10 -5
- data/README.md +4 -4
- data/Rakefile +24 -19
- data/device_detector.gemspec +1 -1
- data/lib/device_detector.rb +25 -3
- data/lib/device_detector/device.rb +1 -1
- data/lib/device_detector/model_extractor.rb +4 -0
- data/lib/device_detector/os.rb +8 -3
- data/lib/device_detector/parser.rb +1 -1
- data/lib/device_detector/version.rb +1 -1
- data/regexes/bots.yml +211 -27
- data/regexes/client/browsers.yml +192 -58
- data/regexes/client/feed_readers.yml +6 -0
- data/regexes/client/libraries.yml +4 -0
- data/regexes/client/mediaplayers.yml +8 -4
- data/regexes/client/mobile_apps.yml +39 -4
- data/regexes/client/pim.yml +4 -0
- data/regexes/device/mobiles.yml +1803 -242
- data/regexes/device/televisions.yml +53 -11
- data/regexes/oss.yml +180 -12
- data/regexes/vendorfragments.yml +1 -0
- data/spec/device_detector/concrete_user_agent_spec.rb +36 -0
- data/spec/device_detector/detector_fixtures_spec.rb +1 -1
- data/spec/fixtures/client/browser.yml +313 -2
- data/spec/fixtures/client/feed_reader.yml +8 -1
- data/spec/fixtures/client/library.yml +7 -1
- data/spec/fixtures/client/mediaplayer.yml +6 -1
- data/spec/fixtures/client/mobile_app.yml +6 -0
- data/spec/fixtures/client/pim.yml +6 -0
- data/spec/fixtures/detector/bots.yml +2307 -612
- data/spec/fixtures/detector/camera.yml +6 -0
- data/spec/fixtures/detector/car_browser.yml +1 -0
- data/spec/fixtures/detector/console.yml +14 -0
- data/spec/fixtures/detector/desktop.yml +308 -48
- data/spec/fixtures/detector/feature_phone.yml +63 -0
- data/spec/fixtures/detector/feed_reader.yml +50 -26
- data/spec/fixtures/detector/mediaplayer.yml +28 -6
- data/spec/fixtures/detector/mobile_apps.yml +117 -0
- data/spec/fixtures/detector/phablet.yml +1066 -183
- data/spec/fixtures/detector/portable_media_player.yml +8 -0
- data/spec/fixtures/detector/smart_display.yml +39 -0
- data/spec/fixtures/detector/smartphone-1.yml +9469 -0
- data/spec/fixtures/detector/smartphone-2.yml +9414 -0
- data/spec/fixtures/detector/smartphone-3.yml +9396 -0
- data/spec/fixtures/detector/smartphone-4.yml +5742 -0
- data/spec/fixtures/detector/smartphone.yml +3446 -23680
- data/spec/fixtures/detector/tablet-1.yml +9495 -0
- data/spec/fixtures/detector/tablet-2.yml +248 -0
- data/spec/fixtures/detector/tablet.yml +2786 -7961
- data/spec/fixtures/detector/tv.yml +1376 -210
- data/spec/fixtures/detector/unknown.yml +205 -509
- data/spec/fixtures/device/console.yml +6 -0
- data/spec/fixtures/parser/oss.yml +194 -1
- data/spec/fixtures/parser/vendorfragments.yml +6 -0
- metadata +16 -6
- data/spec/fixtures/parser/bots.yml +0 -2055
@@ -9,6 +9,10 @@
|
|
9
9
|
name: 'Banshee'
|
10
10
|
version: '$1'
|
11
11
|
|
12
|
+
- regex: 'Boxee(?:[ /]([\d\.]+))?'
|
13
|
+
name: 'Boxee'
|
14
|
+
version: '$1'
|
15
|
+
|
12
16
|
- regex: 'Clementine(?:[ /]([\d\.]+))?'
|
13
17
|
name: 'Clementine'
|
14
18
|
version: '$1'
|
@@ -49,7 +53,7 @@
|
|
49
53
|
name: 'SubStream'
|
50
54
|
version: '$1'
|
51
55
|
|
52
|
-
- regex: 'VLC(?:/([\d\.]+))?'
|
56
|
+
- regex: '(?:Lib)?VLC(?:/([\d\.]+))?'
|
53
57
|
name: 'VLC'
|
54
58
|
version: '$1'
|
55
59
|
|
@@ -57,7 +61,7 @@
|
|
57
61
|
name: 'Winamp'
|
58
62
|
version: '$1'
|
59
63
|
|
60
|
-
- regex: 'Windows-Media-Player(?:/(\d+[\.\d]+))?'
|
64
|
+
- regex: '(?:Windows-Media-Player|NSPlayer)(?:/(\d+[\.\d]+))?'
|
61
65
|
name: 'Windows Media Player'
|
62
66
|
version: '$1'
|
63
67
|
|
@@ -73,6 +77,6 @@
|
|
73
77
|
name: 'Stagefright'
|
74
78
|
version: '$1'
|
75
79
|
|
76
|
-
- regex: 'Instacast
|
80
|
+
- regex: 'Instacast(?:/([\d\.]+))? CFNetwork/([\d\.]+)'
|
77
81
|
name: 'Instacast'
|
78
|
-
version: '$1'
|
82
|
+
version: '$1'
|
@@ -10,16 +10,26 @@
|
|
10
10
|
name: 'AndroidDownloadManager'
|
11
11
|
version: '$1'
|
12
12
|
|
13
|
-
#
|
14
|
-
- regex: '(
|
15
|
-
name: '
|
16
|
-
version: '$
|
13
|
+
# Facebook
|
14
|
+
- regex: '(?:FBAV|com.facebook.katana)(?:[ /]([\d\.]+))?'
|
15
|
+
name: 'Facebook'
|
16
|
+
version: '$1'
|
17
17
|
|
18
18
|
# FeedR
|
19
19
|
- regex: 'FeedR(?:/([\d\.]+))?'
|
20
20
|
name: 'FeedR'
|
21
21
|
version: '$1'
|
22
22
|
|
23
|
+
# Google Play Kiosk
|
24
|
+
- regex: 'com.google.android.apps.magazines'
|
25
|
+
name: 'Google Play Newsstand'
|
26
|
+
version: ''
|
27
|
+
|
28
|
+
# Google Plus
|
29
|
+
- regex: 'com.google.GooglePlus'
|
30
|
+
name: 'Google Plus'
|
31
|
+
version: ''
|
32
|
+
|
23
33
|
# WeChat
|
24
34
|
- regex: 'MicroMessenger/([^ ]+)'
|
25
35
|
name: 'WeChat'
|
@@ -29,3 +39,28 @@
|
|
29
39
|
- regex: '.*__weibo__([0-9\.]+)__'
|
30
40
|
name: 'Sina Weibo'
|
31
41
|
version: '$1'
|
42
|
+
|
43
|
+
# Pinterest
|
44
|
+
- regex: 'Pinterest(?:/([\d\.]+))?'
|
45
|
+
name: 'Pinterest'
|
46
|
+
version: '$1'
|
47
|
+
|
48
|
+
# YouTube
|
49
|
+
- regex: 'com.google.android.youtube(?:/([\d\.]+))?'
|
50
|
+
name: 'YouTube'
|
51
|
+
version: '$1'
|
52
|
+
|
53
|
+
# AFNetworking generic
|
54
|
+
- regex: '([^/]+)/(\d+(?:\.\d+)+) \((?:iPhone|iPad); iOS [0-9\.]+; Scale/[0-9\.]+\)'
|
55
|
+
name: '$1'
|
56
|
+
version: '$2'
|
57
|
+
|
58
|
+
# WhatsApp
|
59
|
+
- regex: 'WhatsApp(?:[ /]([\d\.]+))?'
|
60
|
+
name: 'WhatsApp'
|
61
|
+
version: '$1'
|
62
|
+
|
63
|
+
# Line
|
64
|
+
- regex: 'Line(?:[ /]([\d\.]+))'
|
65
|
+
name: 'Line'
|
66
|
+
version: '$1'
|
data/regexes/client/pim.yml
CHANGED
data/regexes/device/mobiles.yml
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
###############
|
7
7
|
|
8
8
|
'Tunisie Telecom':
|
9
|
-
regex: 'StarTrail TT
|
9
|
+
regex: 'StarTrail TT[);/ ]'
|
10
10
|
device: 'smartphone'
|
11
11
|
model: 'StarTrail'
|
12
12
|
|
@@ -15,36 +15,36 @@ SFR:
|
|
15
15
|
regex: 'StarShine|StarTrail|STARADDICT|StarText|StarNaute|StarXtrem|StarTab'
|
16
16
|
device: 'smartphone'
|
17
17
|
models:
|
18
|
-
- regex: 'StarXtrem
|
18
|
+
- regex: 'StarXtrem[);/ ]'
|
19
19
|
model: 'StarXtrem' # ZTE
|
20
|
-
- regex: 'StarTrail
|
21
|
-
model: 'StarTrail' # ZTE
|
22
|
-
- regex: 'StarTrail II Build'
|
23
|
-
model: 'StarTrail 2' # Huawei Ascend Y200
|
24
|
-
- regex: 'StarTrail III Build'
|
25
|
-
model: 'StarTrail 3' # ZTE
|
26
|
-
- regex: 'StarTrail ?4 Build'
|
20
|
+
- regex: 'StarTrail ?4[);/ ]'
|
27
21
|
model: 'StarTrail 4' # ZTE Blade Q
|
28
|
-
- regex: '
|
29
|
-
model: '
|
30
|
-
- regex: '
|
22
|
+
- regex: 'StarTrail III[);/ ]'
|
23
|
+
model: 'StarTrail 3' # ZTE
|
24
|
+
- regex: 'StarTrail II[);/ ]'
|
25
|
+
model: 'StarTrail 2' # Huawei Ascend Y200
|
26
|
+
- regex: 'StarTrail[);/ ]'
|
27
|
+
model: 'StarTrail' # ZTE
|
28
|
+
- regex: 'StarShine II[);/ ]'
|
31
29
|
model: 'StarShine 2' # ZTE
|
32
|
-
- regex: '
|
33
|
-
model: '
|
34
|
-
- regex: 'STARADDICT
|
35
|
-
model: 'Staraddict 2' # Alcatel One Touch 995
|
36
|
-
- regex: 'STARADDICT II Plus Build'
|
37
|
-
model: 'Staraddict 2 Plus' # ZTE Grand X
|
38
|
-
- regex: 'STARADDICT III Build'
|
30
|
+
- regex: 'StarShine[);/ ]'
|
31
|
+
model: 'StarShine' # Huawei U8180
|
32
|
+
- regex: 'STARADDICT III[);/ ]'
|
39
33
|
model: 'Staraddict 3' # Coolpad 8861U
|
40
|
-
- regex: '
|
41
|
-
model: '
|
42
|
-
- regex: '
|
34
|
+
- regex: 'STARADDICT II Plus[);/ ]'
|
35
|
+
model: 'Staraddict 2 Plus' # ZTE Grand X
|
36
|
+
- regex: 'STARADDICT II[);/ ]'
|
37
|
+
model: 'Staraddict 2' # Alcatel One Touch 995
|
38
|
+
- regex: 'STARADDICT[);/ ]'
|
39
|
+
model: 'Staraddict' # ZTE
|
40
|
+
- regex: 'StarText II[);/ ]'
|
43
41
|
model: 'StarText 2' # ZTE
|
44
|
-
- regex: '
|
45
|
-
model: '
|
46
|
-
- regex: 'StarNaute II
|
42
|
+
- regex: 'StarText[);/ ]'
|
43
|
+
model: 'StarText' # ZTE
|
44
|
+
- regex: 'StarNaute II[);/ ]'
|
47
45
|
model: 'StarNaute 2' # ZTE
|
46
|
+
- regex: 'StarNaute[);/ ]'
|
47
|
+
model: 'StarNaute' # ZTE Amigo
|
48
48
|
- regex: 'StarTab'
|
49
49
|
model: 'StarTab'
|
50
50
|
device: 'tablet'
|
@@ -54,10 +54,18 @@ SFR:
|
|
54
54
|
|
55
55
|
# HTC
|
56
56
|
HTC:
|
57
|
-
regex: 'HTC|Sprint (?:APA|ATP)|ADR(?!910L)[a-z0-9]+|NexusHD2|Amaze[ _]4G
|
57
|
+
regex: 'HTC|Sprint (?:APA|ATP)|ADR(?!910L)[a-z0-9]+|NexusHD2|Amaze[ _]4G[);/ ]|(Desire|Sensation|Evo ?3D|IncredibleS|Wildfire|Butterfly)[ _]?([^;/]+) Build|(Amaze[ _]4G|One ?[XELSV\+]+)[);/ ]|SPV E6[05]0|One M8|X525a|PG86100|PC36100|XV6975|PJ83100[);/ ]'
|
58
58
|
device: 'smartphone'
|
59
59
|
models:
|
60
60
|
# explicit smartphone models
|
61
|
+
- regex: 'XV6975[);/ ]'
|
62
|
+
model: 'Imagio'
|
63
|
+
- regex: 'PG86100[);/ ]'
|
64
|
+
model: 'Evo 3G'
|
65
|
+
- regex: 'PC36100[);/ ]'
|
66
|
+
model: 'Evo 4G'
|
67
|
+
- regex: 'PJ83100[);/ ]'
|
68
|
+
model: 'One X'
|
61
69
|
- regex: 'ADR6300'
|
62
70
|
model: 'Droid Incredible'
|
63
71
|
- regex: 'ADR6400L'
|
@@ -68,13 +76,15 @@ HTC:
|
|
68
76
|
model: 'Excalibur'
|
69
77
|
- regex: 'SPV E650'
|
70
78
|
model: 'Vox'
|
79
|
+
- regex: 'X525a'
|
80
|
+
model: 'One X+'
|
71
81
|
|
72
82
|
- regex: 'NexusHD2' # custom rom for hd2
|
73
83
|
model: 'HD2'
|
74
84
|
- regex: 'HTC[ _\-]((?:Flyer|P715a).*) Build'
|
75
85
|
device: 'tablet'
|
76
86
|
model: '$1'
|
77
|
-
- regex: 'HTC[ _\-]One[ _\-]max
|
87
|
+
- regex: 'HTC[ _\-]One[ _\-]max[);/ ]'
|
78
88
|
device: 'phablet'
|
79
89
|
model: 'One max'
|
80
90
|
- regex: 'HTC[ _]([^/;]+) [0-9]+(?:\.[0-9]+)+ Build'
|
@@ -94,25 +104,30 @@ HTC:
|
|
94
104
|
model: '$1'
|
95
105
|
- regex: 'HTC;(?: )?([a-z0-9 ]+)'
|
96
106
|
model: '$1'
|
97
|
-
- regex: '(Desire|Sensation|Evo ?3D)[ _]?([^;/]+) Build'
|
107
|
+
- regex: '(Desire|Sensation|Evo ?3D|IncredibleS|Wildfire|Butterfly)[ _]?([^;/]+) Build'
|
98
108
|
model: '$1 $2'
|
99
109
|
- regex: '(Amaze[ _]4G|One ?[XELSV\+]*) Build'
|
100
110
|
model: '$1'
|
101
|
-
- regex: '(ADR
|
111
|
+
- regex: '(ADR[^;/]+) Build'
|
102
112
|
model: '$1'
|
103
113
|
- regex: '(ADR[a-z0-9]+)'
|
104
114
|
model: '$1'
|
115
|
+
- regex: '(One M8)'
|
116
|
+
model: '$1'
|
105
117
|
|
106
118
|
# NOKIA
|
107
119
|
Nokia:
|
108
|
-
regex: 'Nokia|Lumia|Maemo RX|portalmmm/2\.0 N7|portalmmm/2\.0 NK|nok[0-9]+|Symbian.*\s([a-z0-9]+)
|
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'
|
109
121
|
device: 'smartphone'
|
110
122
|
models:
|
123
|
+
- regex: 'RX-51 N900'
|
124
|
+
model: 'N900'
|
125
|
+
device: 'tablet'
|
111
126
|
- regex: 'Nokia(N[0-9]+)'
|
112
127
|
model: '$1'
|
113
128
|
- regex: 'Nokia-([a-z0-9]+)'
|
114
129
|
model: 'N$1'
|
115
|
-
- regex: 'NOKIA; ([a-z0-9\- ]+)'
|
130
|
+
- regex: 'NOKIA; (?!Qt;)([a-z0-9\- ]+)'
|
116
131
|
model: '$1'
|
117
132
|
- regex: 'NOKIA[ _]?([a-z0-9\-]+)'
|
118
133
|
model: '$1'
|
@@ -169,23 +184,26 @@ Palm:
|
|
169
184
|
models:
|
170
185
|
- regex: '((?:Pre|Pixi))/(\d+\.\d+)'
|
171
186
|
model: '$1 $2'
|
172
|
-
- regex: 'Palm(?:[ \-])?((?!OS|Source)[a-z0-9]+)'
|
187
|
+
- regex: 'Palm(?:[ \-])?((?!OS|Source|scape)[a-z0-9]+)'
|
173
188
|
model: '$1'
|
174
189
|
- regex: 'Treo([a-z0-9]+)'
|
175
190
|
model: 'Treo $1'
|
176
191
|
- regex: 'Tungsten'
|
177
192
|
model: 'Tungsten'
|
178
|
-
- regex: 'Xiino' # Browser for Palm OS only
|
193
|
+
- regex: 'Xiino|Palmscape' # Browser for Palm OS only
|
179
194
|
model: ''
|
180
195
|
|
181
196
|
# HP
|
182
197
|
HP:
|
183
|
-
regex: 'TouchPad/\d+\.\d+|hp-tablet|HP ?iPAQ|webOS.*P160U|HP Slate|HP [78]'
|
198
|
+
regex: 'TouchPad/\d+\.\d+|hp-tablet|HP ?iPAQ|webOS.*P160U|HP Slate|HP [78]|Compaq [7|8]'
|
184
199
|
device: 'smartphone'
|
185
200
|
models:
|
186
201
|
- regex: 'HP ([78][^/;]*) Build'
|
187
202
|
model: 'Slate $1'
|
188
203
|
device: 'tablet'
|
204
|
+
- regex: 'Compaq ([78][^/;]*) Build'
|
205
|
+
model: 'Compaq $1'
|
206
|
+
device: 'tablet'
|
189
207
|
- regex: 'HP Slate ?(.+) Build'
|
190
208
|
model: 'Slate $1'
|
191
209
|
device: 'tablet'
|
@@ -208,37 +226,37 @@ TiPhone:
|
|
208
226
|
|
209
227
|
# Apple
|
210
228
|
Apple:
|
211
|
-
regex: 'AppleTV|(?:Apple-)?(?:iPad|iPhone)'
|
229
|
+
regex: '(?:iTunes-)?AppleTV|(?:Apple-)?(?:iPad|iPhone)|iPh[0-9],[0-9]|CFNetwork'
|
212
230
|
models:
|
213
231
|
# specific smartphone devices
|
214
|
-
- regex: '(?:Apple-)?
|
232
|
+
- regex: '(?:Apple-)?iPh(?:one)?1[C,]1'
|
215
233
|
model: 'iPhone'
|
216
234
|
device: 'smartphone'
|
217
|
-
- regex: '(?:Apple-)?
|
235
|
+
- regex: '(?:Apple-)?iPh(?:one)?1[C,]2'
|
218
236
|
model: 'iPhone 3G'
|
219
237
|
device: 'smartphone'
|
220
|
-
- regex: '(?:Apple-)?
|
238
|
+
- regex: '(?:Apple-)?iPh(?:one)?2[C,]1'
|
221
239
|
model: 'iPhone 3GS'
|
222
240
|
device: 'smartphone'
|
223
|
-
- regex: '(?:Apple-)?
|
241
|
+
- regex: '(?:Apple-)?iPh(?:one)?3[C,][123]'
|
224
242
|
model: 'iPhone 4'
|
225
243
|
device: 'smartphone'
|
226
|
-
- regex: '(?:Apple-)?
|
244
|
+
- regex: '(?:Apple-)?iPh(?:one)?4[C,]1'
|
227
245
|
model: 'iPhone 4S'
|
228
246
|
device: 'smartphone'
|
229
|
-
- regex: '(?:Apple-)?
|
247
|
+
- regex: '(?:Apple-)?iPh(?:one)?5[C,][12]'
|
230
248
|
model: 'iPhone 5'
|
231
249
|
device: 'smartphone'
|
232
|
-
- regex: '(?:Apple-)?
|
250
|
+
- regex: '(?:Apple-)?iPh(?:one)?5[C,][34]'
|
233
251
|
model: 'iPhone 5C'
|
234
252
|
device: 'smartphone'
|
235
|
-
- regex: '(?:Apple-)?
|
253
|
+
- regex: '(?:Apple-)?iPh(?:one)?6[C,][12]'
|
236
254
|
model: 'iPhone 5S'
|
237
255
|
device: 'smartphone'
|
238
|
-
- regex: '(?:Apple-)?
|
256
|
+
- regex: '(?:Apple-)?iPh(?:one)?7[C,]1'
|
239
257
|
model: 'iPhone 6 Plus'
|
240
258
|
device: 'phablet'
|
241
|
-
- regex: '(?:Apple-)?
|
259
|
+
- regex: '(?:Apple-)?iPh(?:one)?7[C,]2'
|
242
260
|
model: 'iPhone 6'
|
243
261
|
device: 'smartphone'
|
244
262
|
|
@@ -271,7 +289,7 @@ Apple:
|
|
271
289
|
model: 'iPad Air 2'
|
272
290
|
device: 'tablet'
|
273
291
|
|
274
|
-
- regex: 'AppleTV'
|
292
|
+
- regex: '(?:iTunes-)?AppleTV'
|
275
293
|
model: 'Apple TV'
|
276
294
|
device: 'tv'
|
277
295
|
- regex: '(?:Apple-)?iPad'
|
@@ -300,9 +318,20 @@ MicroMax:
|
|
300
318
|
|
301
319
|
# Acer
|
302
320
|
Acer:
|
303
|
-
regex: 'acer|a(?:101|110|200|210|211|500|501|510|511|700|701)
|
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.*Z500 Build|A1-830|A1-81[01]|A3-A[12][01]|B1-7[1235][01]|B1-810|B1-A71|E39 Build|S5[12]0 Build|DA[0-9]+HQ?L[);/ ]'
|
304
322
|
device: 'smartphone'
|
305
323
|
models:
|
324
|
+
# smart displays
|
325
|
+
- regex: 'DA220HQL[);/ ]'
|
326
|
+
model: 'DA220HQL'
|
327
|
+
device: 'smart display'
|
328
|
+
- regex: 'DA241HL[);/ ]'
|
329
|
+
model: 'DA241HL'
|
330
|
+
device: 'smart display'
|
331
|
+
- regex: '(DA[0-9]+HQ?L)[);/ ]'
|
332
|
+
model: '$1'
|
333
|
+
device: 'smart display'
|
334
|
+
|
306
335
|
# explicit tablet models
|
307
336
|
- regex: 'A1-81[01]'
|
308
337
|
model: 'Iconia A'
|
@@ -320,9 +349,9 @@ Acer:
|
|
320
349
|
# explicit smartphone models
|
321
350
|
- regex: 'E39 Build'
|
322
351
|
model: 'Liquid E700'
|
323
|
-
- regex: 'Android.*V360
|
352
|
+
- regex: 'Android.*V360[);/ ]'
|
324
353
|
model: 'Liquid E1'
|
325
|
-
- regex: 'Android.*V370
|
354
|
+
- regex: 'Android.*V370[);/ ]'
|
326
355
|
model: 'Liquid E2'
|
327
356
|
- regex: 'S510 Build'
|
328
357
|
model: 'Liquid S1'
|
@@ -340,19 +369,19 @@ Acer:
|
|
340
369
|
model: '$1'
|
341
370
|
- regex: 'acer[\-_]([a-z0-9]+)'
|
342
371
|
model: '$1'
|
343
|
-
- regex: 'a(101|110|200|210|211|500|501|510|511|700|701)
|
372
|
+
- regex: 'a(101|110|200|210|211|500|501|510|511|700|701)[);/ ]'
|
344
373
|
model: 'Iconia Tab A$1'
|
345
374
|
device: 'tablet'
|
346
375
|
|
347
376
|
# Airness
|
348
377
|
Airness:
|
349
|
-
regex: 'AIRNESS-([\
|
378
|
+
regex: 'AIRNESS-([\w]+)'
|
350
379
|
device: 'feature phone'
|
351
380
|
model: '$1'
|
352
381
|
|
353
382
|
# Alcatel
|
354
383
|
Alcatel:
|
355
|
-
regex: 'Alcatel|Alc[a-z0-9]+|One ?Touch'
|
384
|
+
regex: 'Alcatel|Alc[a-z0-9]+|One[ _]?Touch'
|
356
385
|
device: 'smartphone'
|
357
386
|
models:
|
358
387
|
- regex: '(?:Alcatel[ _])?One[ _]?Touch[ _]((?:T[0-9]+|TAB[^/;]+|EVO[78](?:HD)?)) Build'
|
@@ -360,6 +389,8 @@ Alcatel:
|
|
360
389
|
model: 'One Touch $1'
|
361
390
|
- regex: '(?:Alcatel[ _])?One[ _]?Touch([^/;]*) Build'
|
362
391
|
model: 'One Touch$1'
|
392
|
+
- regex: '(?:Alcatel[ _])?One[ _]?Touch([^/;\)]*)\)'
|
393
|
+
model: 'One Touch$1'
|
363
394
|
- regex: 'Alcatel UP'
|
364
395
|
model: ''
|
365
396
|
- regex: 'ALCATEL([^/;]+) Build'
|
@@ -371,6 +402,16 @@ Alcatel:
|
|
371
402
|
- regex: 'Alc([a-z0-9]+)'
|
372
403
|
model: '$1'
|
373
404
|
|
405
|
+
# Allview
|
406
|
+
Allview:
|
407
|
+
regex: 'Allview'
|
408
|
+
device: 'smartphone'
|
409
|
+
models:
|
410
|
+
- regex: 'Allview[ _-]([^;/]+) Build'
|
411
|
+
model: '$1'
|
412
|
+
- regex: 'Allview[ _-]([^;/]+)[;/)]'
|
413
|
+
model: '$1'
|
414
|
+
|
374
415
|
# Amoi
|
375
416
|
Amoi:
|
376
417
|
regex: 'Amoi|A862W'
|
@@ -385,12 +426,22 @@ Amoi:
|
|
385
426
|
- regex: 'Amoisonic-([a-z0-9]+)'
|
386
427
|
model: '$1'
|
387
428
|
|
429
|
+
# Ainol
|
430
|
+
'Ainol':
|
431
|
+
regex: 'Numy|novo[0-9]'
|
432
|
+
device: 'tablet'
|
433
|
+
models:
|
434
|
+
- regex: 'Numy[ _]([^;/]+) Build'
|
435
|
+
model: 'Numy $1'
|
436
|
+
- regex: 'Novo([0-9]+)[ \-]([^;/]+) Build'
|
437
|
+
model: 'Novo $1 $2'
|
438
|
+
|
388
439
|
# Archos
|
389
440
|
Archos:
|
390
441
|
regex: 'Archos'
|
391
442
|
device: 'smartphone'
|
392
443
|
models:
|
393
|
-
- regex: 'Archos ?5
|
444
|
+
- regex: 'Archos ?5[);/ ]'
|
394
445
|
device: 'tablet'
|
395
446
|
model: '5'
|
396
447
|
- regex: 'Archos ([^/;]*(?:PAD)[^/;]*) Build'
|
@@ -406,10 +457,10 @@ Archos:
|
|
406
457
|
|
407
458
|
# Axxion
|
408
459
|
Axxion:
|
409
|
-
regex: 'Axxion ATAB-[0-9]+
|
460
|
+
regex: 'Axxion ATAB-[0-9]+[);/ ]'
|
410
461
|
device: 'tablet'
|
411
462
|
models:
|
412
|
-
- regex: 'Axxion ATAB-([0-9]+)
|
463
|
+
- regex: 'Axxion ATAB-([0-9]+)[);/ ]'
|
413
464
|
model: 'ATAB-$1'
|
414
465
|
|
415
466
|
# Meu
|
@@ -484,11 +535,21 @@ Arnova:
|
|
484
535
|
- regex: 'Arnova ([^/;]*) Build'
|
485
536
|
model: '$1'
|
486
537
|
|
538
|
+
# ARRIS
|
539
|
+
ARRIS:
|
540
|
+
regex: 'ARRIS'
|
541
|
+
device: 'tv'
|
542
|
+
models:
|
543
|
+
- regex: 'ARRIS[,;] ([^),;/]+)'
|
544
|
+
model: '$1'
|
545
|
+
|
487
546
|
# Garmin-Asus
|
488
547
|
Garmin-Asus:
|
489
|
-
regex: 'Garmin-Asus'
|
548
|
+
regex: 'Garmin-Asus|Garminfone'
|
490
549
|
device: 'smartphone'
|
491
550
|
models:
|
551
|
+
- regex: 'Garminfone[ \-_]([^;/]*)Build'
|
552
|
+
model: 'Garminfone $1'
|
492
553
|
- regex: 'Garmin-Asus[ \-_]([^;/]+)Build'
|
493
554
|
model: '$1'
|
494
555
|
- regex: 'Garmin-Asus[ \-_]([^;/]+)[\)/]'
|
@@ -496,83 +557,98 @@ Garmin-Asus:
|
|
496
557
|
|
497
558
|
# Asus
|
498
559
|
Asus:
|
499
|
-
regex: 'Asus|Transformer|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|K0[01][0-9a-z]
|
560
|
+
regex: 'Asus|Transformer|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|Z00D)[);/ ]'
|
500
561
|
device: 'smartphone'
|
501
562
|
models:
|
502
563
|
# explicit tablet models
|
503
|
-
- regex: 'ME171
|
564
|
+
- regex: 'ME171[);/ ]'
|
504
565
|
model: 'Eee Pad MeMO 171'
|
505
566
|
device: 'tablet'
|
506
567
|
- regex: 'ME172V'
|
507
568
|
model: 'MeMO Pad'
|
508
569
|
device: 'tablet'
|
509
|
-
- regex: 'ME302C
|
570
|
+
- regex: 'ME302C[);/ ]'
|
510
571
|
model: 'MeMO Pad FHD 10'
|
511
572
|
device: 'tablet'
|
512
|
-
- regex: 'ME302KL
|
573
|
+
- regex: 'ME302KL[);/ ]'
|
513
574
|
model: 'MeMO Pad FHD 10 LTE'
|
514
575
|
device: 'tablet'
|
515
|
-
- regex: 'ME301T
|
576
|
+
- regex: 'ME301T[);/ ]'
|
516
577
|
model: 'MeMO Pad Smart 10'
|
517
578
|
device: 'tablet'
|
518
|
-
- regex: 'K01[3A]
|
579
|
+
- regex: 'K01[3A][);/ ]'
|
519
580
|
model: 'MeMO Pad 7'
|
520
581
|
device: 'tablet'
|
521
|
-
- regex: 'K01E
|
582
|
+
- regex: 'K01E[);/ ]'
|
522
583
|
model: 'MeMO Pad 10 ME103K'
|
523
584
|
device: 'tablet'
|
524
|
-
- regex: 'K00U|ME173X
|
585
|
+
- regex: 'K00U|ME173X[);/ ]'
|
525
586
|
model: 'MeMO Pad HD 7'
|
526
587
|
device: 'tablet'
|
527
|
-
- regex: '(?:K011|K00L)
|
588
|
+
- regex: '(?:K011|K00L)[);/ ]'
|
528
589
|
model: 'MeMO Pad 8'
|
529
590
|
device: 'tablet'
|
530
|
-
- regex: 'K014
|
591
|
+
- regex: 'K014[);/ ]'
|
531
592
|
model: 'MeMO Pad 8.9'
|
532
593
|
device: 'tablet'
|
533
|
-
- regex: 'K00S
|
594
|
+
- regex: 'K00S[);/ ]'
|
534
595
|
model: 'MeMO Pad HD 7 Dual SIM'
|
535
596
|
device: 'tablet'
|
536
|
-
- regex: 'K00F
|
597
|
+
- regex: 'K00F[);/ ]'
|
537
598
|
model: 'MeMO Pad 10'
|
538
599
|
device: 'tablet'
|
539
|
-
- regex: 'K00C
|
600
|
+
- regex: 'K00C[);/ ]'
|
540
601
|
model: 'Transformer Pad TF701T'
|
541
602
|
device: 'tablet'
|
542
|
-
- regex: 'K010
|
603
|
+
- regex: 'K010[);/ ]'
|
543
604
|
model: 'Transformer Pad TF103C'
|
544
605
|
device: 'tablet'
|
545
|
-
- regex: 'K018
|
606
|
+
- regex: 'K018[);/ ]'
|
546
607
|
model: 'Transformer Pad TF103CG'
|
547
608
|
device: 'tablet'
|
548
|
-
- regex: 'TF300T
|
609
|
+
- regex: 'TF300T[);/ ]'
|
549
610
|
model: 'Transformer Pad TF300T'
|
550
611
|
device: 'tablet'
|
612
|
+
- regex: 'K01B[);/ ]'
|
613
|
+
model: 'Transformer Pad TF303K'
|
614
|
+
device: 'tablet'
|
551
615
|
- regex: 'Slider SL101'
|
552
616
|
model: 'Eee Pad Slider SL101'
|
553
617
|
device: 'tablet'
|
554
618
|
|
555
619
|
# explicit phablet models
|
556
|
-
- regex: 'ME371MG
|
620
|
+
- regex: 'ME371MG[);/ ]'
|
557
621
|
model: 'Fonepad'
|
558
622
|
device: 'phablet'
|
559
|
-
- regex: 'K00G
|
623
|
+
- regex: 'K00G[);/ ]'
|
560
624
|
model: 'Fonepad Note 6'
|
561
625
|
device: 'phablet'
|
562
|
-
- regex: '(?:K012|K00E)
|
626
|
+
- regex: '(?:K012|K00E)[);/ ]'
|
563
627
|
model: 'Fonepad 7'
|
564
628
|
device: 'phablet'
|
565
|
-
- regex: 'K00Z
|
629
|
+
- regex: 'K00Z[);/ ]'
|
566
630
|
model: 'Fonepad 7 Dual SIM'
|
567
631
|
device: 'phablet'
|
568
|
-
- regex: 'K016
|
632
|
+
- regex: 'K016[);/ ]'
|
569
633
|
model: 'Fonepad 8'
|
570
634
|
device: 'phablet'
|
571
635
|
|
572
636
|
|
573
637
|
# explicit smartphone models
|
638
|
+
- regex: '(?:ASUS_)?Z007'
|
639
|
+
model: 'ZenFone C'
|
640
|
+
- regex: '(?:ASUS_)?(?:Z00D|Z008D|Z00AD[AB]?)'
|
641
|
+
model: 'ZenFone 2'
|
574
642
|
- regex: '(?:ASUS_)?T00[IQ]'
|
575
643
|
model: 'ZenFone 4'
|
644
|
+
- regex: '(?:ASUS_)?T00[JF]'
|
645
|
+
model: 'ZenFone 5'
|
646
|
+
- regex: '(?:ASUS_)?T00P'
|
647
|
+
model: 'ZenFone 5 LTE'
|
648
|
+
- regex: '(?:ASUS_)?T00K'
|
649
|
+
model: 'ZenFone 5 Lite'
|
650
|
+
- regex: '(?:ASUS_)?(?:T00G|Z002)'
|
651
|
+
model: 'ZenFone 6'
|
576
652
|
|
577
653
|
# general detections
|
578
654
|
- regex: 'Asus(?:-|;)?([a-z0-9]+)'
|
@@ -628,14 +704,51 @@ Blu:
|
|
628
704
|
device: 'smartphone'
|
629
705
|
model: '$1'
|
630
706
|
|
707
|
+
# Boway
|
708
|
+
Boway:
|
709
|
+
regex: 'BOWAY'
|
710
|
+
device: 'smartphone'
|
711
|
+
models:
|
712
|
+
- regex: 'BOWAY[ _-]([^/;]+)[ _]Build'
|
713
|
+
model: '$1'
|
714
|
+
- regex: '([^/;]+) Build/BOWAY'
|
715
|
+
model: '$1'
|
716
|
+
- regex: '.*BOWAY[ _-]([^/;]+)/'
|
717
|
+
model: '$1'
|
718
|
+
|
719
|
+
# Brondi
|
720
|
+
Brondi:
|
721
|
+
regex: '(?:CENTURION|GLADIATOR| GLORY|LUXURY|SENSUELLE|VICTORY)(?:[ _-]?[2-6])?[);/ ]|Surfing Tab'
|
722
|
+
device: 'smartphone'
|
723
|
+
models:
|
724
|
+
- regex: 'CENTURION(?:[ _-]?([2-6]))?[);/ ]'
|
725
|
+
model: 'CENTURION $1'
|
726
|
+
- regex: 'GLADIATOR(?:[ _-]?([2-6]))?[);/ ]'
|
727
|
+
model: 'GLADIATOR $1'
|
728
|
+
- regex: 'GLORY(?:[ _-]?([2-6]))?[);/ ]'
|
729
|
+
model: 'GLORY $1'
|
730
|
+
- regex: 'LUXURY(?:[ _-]?([2-6]))?[);/ ]'
|
731
|
+
model: 'LUXURY $1'
|
732
|
+
- regex: 'SENSUELLE(?:[ _-]?([2-6]))?[);/ ]'
|
733
|
+
model: 'SENSUELLE $1'
|
734
|
+
- regex: 'VICTORY(?:[ _-]?([2-6]))?[);/ ]'
|
735
|
+
model: 'VICTORY $1'
|
736
|
+
|
737
|
+
- regex: 'Surfing Tab ([^;/]+) Build'
|
738
|
+
model: 'SURFING TAB $1'
|
739
|
+
device: 'tablet'
|
740
|
+
- regex: 'Surfing Tab ([^;/]+)[);/ ]'
|
741
|
+
model: 'SURFING TAB $1'
|
742
|
+
device: 'tablet'
|
743
|
+
|
631
744
|
# Vivo
|
632
745
|
Vivo:
|
633
|
-
regex: 'vivo'
|
746
|
+
regex: '(?:VIV-|BBG-)?vivo'
|
634
747
|
device: 'smartphone'
|
635
748
|
models:
|
636
|
-
- regex: 'vivo ([^/;]+) Build'
|
749
|
+
- regex: '(?:VIV-|BBG-)?vivo[ _]([^/;]+) Build'
|
637
750
|
model: 'Vivo $1'
|
638
|
-
- regex: '
|
751
|
+
- regex: '(?:VIV-|BBG-)?vivo[ _]([^);/]+)[);/]+'
|
639
752
|
model: 'Vivo $1'
|
640
753
|
|
641
754
|
# Bird
|
@@ -645,8 +758,6 @@ Bird:
|
|
645
758
|
models:
|
646
759
|
- regex: 'BIRD[\-. _]([^;/]+) Build'
|
647
760
|
model: '$1'
|
648
|
-
- regex: 'BIRD[\-. _]([^;/]+)_TD'
|
649
|
-
model: '$1'
|
650
761
|
- regex: 'BIRD[\-. _]([^;/]+)'
|
651
762
|
model: '$1'
|
652
763
|
|
@@ -682,31 +793,52 @@ Bmobile:
|
|
682
793
|
|
683
794
|
# bq
|
684
795
|
bq:
|
685
|
-
regex: 'Aquaris|bq [^/;]+ Build'
|
796
|
+
regex: 'Aquaris|bq [^/;]+ Build|BQS-4007'
|
686
797
|
device: 'tablet'
|
687
798
|
models:
|
799
|
+
- regex: 'BQS-4007'
|
800
|
+
device: 'smartphone'
|
801
|
+
model: 'Valencia'
|
802
|
+
|
688
803
|
- regex: '(?:bq )?(Aquaris[^/;]*) Build'
|
689
804
|
model: '$1'
|
690
805
|
device: 'smartphone'
|
691
806
|
- regex: 'bq ([^/;]+) Build'
|
692
807
|
model: '$1'
|
693
808
|
|
809
|
+
# Bush
|
810
|
+
Bush:
|
811
|
+
regex: 'Bush[ _-]'
|
812
|
+
device: 'smartphone'
|
813
|
+
models:
|
814
|
+
- regex: 'BUSH ([^;/]+)Tablet Build'
|
815
|
+
model: '$1Tablet'
|
816
|
+
device: 'tablet'
|
817
|
+
- regex: 'BUSH ([^;/]+) Build'
|
818
|
+
model: '$1'
|
819
|
+
|
694
820
|
# Capitel
|
695
821
|
Capitel:
|
696
822
|
regex: 'Capitel-([a-z0-9]+)'
|
697
823
|
device: 'feature phone'
|
698
824
|
model: '$1'
|
699
825
|
|
826
|
+
# Captiva
|
827
|
+
Captiva:
|
828
|
+
regex: 'Captiva[ _-]([^;/]+) Build'
|
829
|
+
device: 'tablet'
|
830
|
+
model: 'Pad $1'
|
831
|
+
|
700
832
|
# Casio
|
701
833
|
Casio:
|
702
|
-
regex: '(C811|C7[57]1)(?: 4G)?
|
834
|
+
regex: '(C811|C7[57]1)(?: 4G)?[);/ ]'
|
703
835
|
device: 'smartphone'
|
704
836
|
models:
|
705
|
-
- regex: 'C751
|
837
|
+
- regex: 'C751[);/ ]'
|
706
838
|
model: "G'zOne Ravine"
|
707
|
-
- regex: 'C771
|
839
|
+
- regex: 'C771[);/ ]'
|
708
840
|
model: "G'zOne Commando"
|
709
|
-
- regex: 'C811 4G
|
841
|
+
- regex: 'C811 4G[);/ ]'
|
710
842
|
model: "G'zOne Commando 4G LTE"
|
711
843
|
|
712
844
|
# Cat
|
@@ -719,6 +851,18 @@ Cat:
|
|
719
851
|
- regex: 'Cat ?tablet'
|
720
852
|
model: 'Nova'
|
721
853
|
|
854
|
+
# Carrefour
|
855
|
+
Carrefour:
|
856
|
+
regex: 'CT(?:10[0123]0|7[12]0|820)(?:W|FR)?[);/ ]'
|
857
|
+
device: 'tablet'
|
858
|
+
models:
|
859
|
+
- regex: 'CT820'
|
860
|
+
model: 'Touch Tablet Neo2'
|
861
|
+
- regex: 'CT(10[0123]0(?:W|FR)?)'
|
862
|
+
model: 'CT$1'
|
863
|
+
- regex: 'CT(7[12]0(?:W|FR)?)'
|
864
|
+
model: 'CT$1'
|
865
|
+
|
722
866
|
# Celkon
|
723
867
|
Celkon:
|
724
868
|
regex: 'Celkon'
|
@@ -735,6 +879,14 @@ Celkon:
|
|
735
879
|
- regex: 'Celkon[\. _*]([^;/\)]+)[\)/]'
|
736
880
|
model: '$1'
|
737
881
|
|
882
|
+
# Changhong
|
883
|
+
Changhong:
|
884
|
+
regex: 'Changhong'
|
885
|
+
device: 'tv'
|
886
|
+
models:
|
887
|
+
- regex: 'Changhong-([^);/]+)'
|
888
|
+
model: '$1'
|
889
|
+
|
738
890
|
# Cherry Mobile
|
739
891
|
'Cherry Mobile':
|
740
892
|
regex: 'Cherry|Flare2X|Fusion Bolt'
|
@@ -770,9 +922,13 @@ ConCorde:
|
|
770
922
|
|
771
923
|
# Coolpad
|
772
924
|
Coolpad:
|
773
|
-
regex: '(?:YL-)?Coolpad'
|
925
|
+
regex: '(?:YL-)?Coolpad|8190Q[ ;/\)]|8295 Build'
|
774
926
|
device: 'smartphone'
|
775
927
|
models:
|
928
|
+
- regex: '8190Q[ ;/\)]'
|
929
|
+
model: '8190Q'
|
930
|
+
- regex: '8295 Build'
|
931
|
+
model: '8295'
|
776
932
|
- regex: '(?:YL-)?Coolpad[ _\-]?([^/;]+) Build'
|
777
933
|
model: '$1'
|
778
934
|
- regex: '(?:YL-)?Coolpad[ _\-]?([a-z0-9\-]+)'
|
@@ -786,20 +942,57 @@ Cricket:
|
|
786
942
|
|
787
943
|
# Crius
|
788
944
|
'Crius Mea':
|
789
|
-
regex: '(Q7A\+?)
|
945
|
+
regex: '(Q7A\+?)[);/ ]'
|
790
946
|
device: 'tablet'
|
791
947
|
model: '$1'
|
792
948
|
|
949
|
+
# Crosscall
|
950
|
+
Crosscall:
|
951
|
+
regex: 'Crosscall'
|
952
|
+
device: 'smartphone'
|
953
|
+
models:
|
954
|
+
- regex: 'Crosscall ([^;/]+) Build'
|
955
|
+
model: '$1'
|
956
|
+
|
793
957
|
# Cube
|
794
958
|
Cube:
|
795
|
-
regex: 'Cube|(U[0-9]+GT
|
959
|
+
regex: 'Cube|(U[0-9]+GT|K8GT)'
|
796
960
|
device: 'tablet'
|
797
961
|
models:
|
798
|
-
- regex: '
|
962
|
+
- regex: 'U27GT'
|
963
|
+
model: 'Talk 8'
|
964
|
+
- regex: 'U55GT'
|
965
|
+
model: 'Talk 79'
|
966
|
+
- regex: 'U65GT'
|
967
|
+
model: 'Talk 9X'
|
968
|
+
|
969
|
+
- regex: '(U[0-9]+GT[^;/]*) Build'
|
970
|
+
model: '$1'
|
971
|
+
- regex: '(U[0-9]+GT(?:[0-9]|[\-_][a-z]+)?)'
|
799
972
|
model: '$1'
|
800
973
|
- regex: '(K8GT)'
|
801
974
|
model: '$1'
|
802
975
|
|
976
|
+
# CUBOT
|
977
|
+
CUBOT:
|
978
|
+
regex: 'CUBOT'
|
979
|
+
device: 'smartphone'
|
980
|
+
models:
|
981
|
+
- regex: 'CUBOT ([^;/]+) Build'
|
982
|
+
model: '$1'
|
983
|
+
- regex: '([^;/]+) Build/CUBOT'
|
984
|
+
model: '$1'
|
985
|
+
|
986
|
+
# Datang
|
987
|
+
Datang:
|
988
|
+
regex: 'DATANG'
|
989
|
+
device: 'smartphone'
|
990
|
+
models:
|
991
|
+
- regex: '(?:DATANG[ _-])+([^;/]+) Build'
|
992
|
+
model: '$1'
|
993
|
+
- regex: '(?:DATANG[ _-])+([^;/)]+)[;/)]'
|
994
|
+
model: '$1'
|
995
|
+
|
803
996
|
# Danew
|
804
997
|
Danew:
|
805
998
|
regex: 'Dslide ?([^;/]+) Build'
|
@@ -814,9 +1007,11 @@ Denver:
|
|
814
1007
|
|
815
1008
|
# Dell
|
816
1009
|
Dell:
|
817
|
-
regex: 'Dell|Venue'
|
1010
|
+
regex: 'Dell|Venue|XCD35'
|
818
1011
|
device: 'smartphone'
|
819
1012
|
models:
|
1013
|
+
- regex: 'XCD35'
|
1014
|
+
model: 'XCD35'
|
820
1015
|
- regex: '(?:Dell )?(Streak|Venue) ?([^/;]*) Build'
|
821
1016
|
model: '$1 $2'
|
822
1017
|
device: 'tablet'
|
@@ -828,6 +1023,16 @@ Dell:
|
|
828
1023
|
- regex: 'Dell[ _\-]([^/;]+) Build'
|
829
1024
|
model: '$1'
|
830
1025
|
|
1026
|
+
# Desay
|
1027
|
+
Desay:
|
1028
|
+
regex: 'Desay'
|
1029
|
+
device: 'smartphone'
|
1030
|
+
models:
|
1031
|
+
- regex: 'Desay[ _-]?([^;/)]+) Build'
|
1032
|
+
model: '$1'
|
1033
|
+
- regex: 'Desay[ _-]?([^;/)]+)[);/ ]'
|
1034
|
+
model: '$1'
|
1035
|
+
|
831
1036
|
# Dbtel
|
832
1037
|
Dbtel:
|
833
1038
|
regex: 'DBTEL(?:[\-/])?([a-z0-9]+)'
|
@@ -854,9 +1059,25 @@ DoCoMo:
|
|
854
1059
|
|
855
1060
|
# Doogee
|
856
1061
|
Doogee:
|
857
|
-
regex: '((?:BIGBOY|COLLO[23]?|DAGGER|
|
1062
|
+
regex: 'DOOGEE[ _-]|((?:BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|TITANS))[ -](DG[0-9]+C?)[);/ ]'
|
858
1063
|
device: 'smartphone'
|
859
|
-
|
1064
|
+
models:
|
1065
|
+
- regex: '(?:DOOGEE[ _-])?((?:BIGBOY|COLLO[23]?|DAGGER|DISCOVERY2?|FIND|HOTWIND|LATTE|MAX|MINT|MOON|PIXELS|RAINBOX|TURBO|VALENCIA|VOYAGER2?|TITANS))[ -](DG[0-9]+C?)[);/ ]'
|
1066
|
+
model: '$1 $2'
|
1067
|
+
- regex: 'DOOGEE[ _-]([^);/]+) Build'
|
1068
|
+
model: '$1'
|
1069
|
+
- regex: 'DOOGEE[ _-]([^);/]+)[);/ ]'
|
1070
|
+
model: '$1'
|
1071
|
+
|
1072
|
+
# Doov
|
1073
|
+
Doov:
|
1074
|
+
regex: '(?:Doov-)?Doov[ _]'
|
1075
|
+
device: 'smartphone'
|
1076
|
+
models:
|
1077
|
+
- regex: '(?:Doov-)?Doov[ _]([^;/]+) Build'
|
1078
|
+
model: '$1'
|
1079
|
+
- regex: '(?:Doov-)?Doov[ _]([^);/]+)[);/ ]'
|
1080
|
+
model: '$1'
|
860
1081
|
|
861
1082
|
# Dopod
|
862
1083
|
Dopod:
|
@@ -864,6 +1085,29 @@ Dopod:
|
|
864
1085
|
device: 'feature phone'
|
865
1086
|
model: '$1'
|
866
1087
|
|
1088
|
+
# Dune HD
|
1089
|
+
'Dune HD':
|
1090
|
+
regex: 'DuneHD'
|
1091
|
+
device: 'tv'
|
1092
|
+
models:
|
1093
|
+
- regex: 'DuneHD/\d.\d \([a-z]+__([a-z0-9_-]+);'
|
1094
|
+
model: '$1'
|
1095
|
+
- regex: 'DuneHD/\d.\d \(([a-z0-9_-]+);'
|
1096
|
+
model: '$1'
|
1097
|
+
|
1098
|
+
# DNS
|
1099
|
+
DNS:
|
1100
|
+
regex: '(?:DNS|AirTab)[ _\-]([^;/]+)Build|S4505M[);/ ]'
|
1101
|
+
device: 'smartphone'
|
1102
|
+
models:
|
1103
|
+
- regex: 'S4505M[);/ ]'
|
1104
|
+
model: 'S4505M'
|
1105
|
+
- regex: 'AirTab[ _\-]([^;/]+)Build'
|
1106
|
+
model: 'AirTab $1'
|
1107
|
+
device: 'tablet'
|
1108
|
+
- regex: 'DNS[ _\-]([^;/]+)Build'
|
1109
|
+
model: '$1'
|
1110
|
+
|
867
1111
|
# E-Boda
|
868
1112
|
E-Boda:
|
869
1113
|
regex: 'E-Boda'
|
@@ -886,18 +1130,28 @@ Easypix:
|
|
886
1130
|
model: '$1'
|
887
1131
|
device: 'tablet'
|
888
1132
|
|
1133
|
+
# Ebest
|
1134
|
+
EBEST:
|
1135
|
+
regex: 'EBEST'
|
1136
|
+
device: 'smartphone'
|
1137
|
+
models:
|
1138
|
+
- regex: 'EBEST[ _-]?([^;/)]+) Build'
|
1139
|
+
model: '$1'
|
1140
|
+
- regex: 'EBEST[ _-]?([^;/)]+)[);/ ]'
|
1141
|
+
model: '$1'
|
1142
|
+
|
889
1143
|
# ECS
|
890
1144
|
ECS:
|
891
|
-
regex: '(?:TA10CA3|TM105A?|TR10CS1)
|
1145
|
+
regex: '(?:TA10CA3|TM105A?|TR10CS1)[);/ ]'
|
892
1146
|
device: 'tablet'
|
893
1147
|
models:
|
894
|
-
- regex: 'TA10CA3
|
1148
|
+
- regex: 'TA10CA3[);/ ]'
|
895
1149
|
model: 'TA10CA3'
|
896
|
-
- regex: 'TR10CS1
|
1150
|
+
- regex: 'TR10CS1[);/ ]'
|
897
1151
|
model: 'TR10CS1'
|
898
|
-
- regex: 'TM105A
|
1152
|
+
- regex: 'TM105A[);/ ]'
|
899
1153
|
model: 'TM105A'
|
900
|
-
- regex: 'TM105
|
1154
|
+
- regex: 'TM105[);/ ]'
|
901
1155
|
model: 'TM105'
|
902
1156
|
|
903
1157
|
# Elephone
|
@@ -906,12 +1160,28 @@ Elephone:
|
|
906
1160
|
device: 'smartphone'
|
907
1161
|
model: '$1'
|
908
1162
|
|
1163
|
+
# Energy Sistem
|
1164
|
+
'Energy Sistem':
|
1165
|
+
regex: 'ENERGY[ _-]?([^;/]+) Build'
|
1166
|
+
device: 'tablet'
|
1167
|
+
model: '$1'
|
1168
|
+
|
909
1169
|
# Ericy
|
910
1170
|
Ericy:
|
911
1171
|
regex: 'Ericy-([a-z0-9]+)'
|
912
1172
|
device: 'feature phone'
|
913
1173
|
model: '$1'
|
914
1174
|
|
1175
|
+
# Eton
|
1176
|
+
Eton:
|
1177
|
+
regex: 'Eton'
|
1178
|
+
device: 'smartphone'
|
1179
|
+
models:
|
1180
|
+
- regex: 'Eton[ _-]?([^;/)]+) Build'
|
1181
|
+
model: '$1'
|
1182
|
+
- regex: 'Eton[ _-]?([^;/)]+)[);/ ]'
|
1183
|
+
model: '$1'
|
1184
|
+
|
915
1185
|
# Rikomagic
|
916
1186
|
Rikomagic:
|
917
1187
|
regex: 'MK(80[28][^/;]*) Build'
|
@@ -920,7 +1190,7 @@ Rikomagic:
|
|
920
1190
|
|
921
1191
|
# Sony & Sony Ericsson (combined as they are mixed up)
|
922
1192
|
Sony:
|
923
|
-
regex: 'Sony(?: ?Ericsson)?|SGP|Xperia|C1[569]0[45]|C2[01]0[45]|C2305|C530[236]|
|
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[05]3|E2303|E58[02]3|E6553|(?: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'
|
924
1194
|
device: 'smartphone'
|
925
1195
|
models:
|
926
1196
|
# SONY ERICSSON: explicit smartphone models
|
@@ -966,13 +1236,13 @@ Sony:
|
|
966
1236
|
- regex: '(?:Sony(?:Ericsson)?)?X10[ai]v?'
|
967
1237
|
model: 'Xperia X10'
|
968
1238
|
brand: 'Sony Ericsson'
|
969
|
-
- regex: '(?:Sony(?:Ericsson)?)
|
1239
|
+
- regex: '(?:Sony(?:Ericsson)?)M1'
|
970
1240
|
model: 'Aspen'
|
971
1241
|
brand: 'Sony Ericsson'
|
972
1242
|
- regex: '(?:Sony(?:Ericsson)?)?R800'
|
973
1243
|
model: 'Xperia PLAY'
|
974
1244
|
brand: 'Sony Ericsson'
|
975
|
-
- regex: '(?:Sony(?:Ericsson)?)?WT19'
|
1245
|
+
- regex: '(?:Sony(?:Ericsson)?)?WT19|LiveWithWalkman'
|
976
1246
|
model: 'Live with Walkman'
|
977
1247
|
brand: 'Sony Ericsson'
|
978
1248
|
|
@@ -1037,6 +1307,10 @@ Sony:
|
|
1037
1307
|
model: 'Yendo'
|
1038
1308
|
brand: 'Sony Ericsson'
|
1039
1309
|
device: 'feature phone'
|
1310
|
+
- regex: '(?:Sony(?:Ericsson)?)?W960'
|
1311
|
+
model: 'W960'
|
1312
|
+
brand: 'Sony Ericsson'
|
1313
|
+
device: 'feature phone'
|
1040
1314
|
- regex: '(?:Sony(?:Ericsson)?)?WT13'
|
1041
1315
|
model: 'Mix Walkman'
|
1042
1316
|
brand: 'Sony Ericsson'
|
@@ -1085,13 +1359,13 @@ Sony:
|
|
1085
1359
|
model: 'Xperia M'
|
1086
1360
|
- regex: '(?:Sony(?:Ericsson)?)?C200[45]'
|
1087
1361
|
model: 'Xperia M Dual'
|
1088
|
-
- regex: '(?:Sony(?:Ericsson)?)?C210[45]'
|
1362
|
+
- regex: '(?:Sony(?:Ericsson)?)?C210[45]|S36h'
|
1089
1363
|
model: 'Xperia L'
|
1090
|
-
- regex: '(?:Sony(?:Ericsson)?)?C2305'
|
1364
|
+
- regex: '(?:Sony(?:Ericsson)?)?C2305|S39h'
|
1091
1365
|
model: 'Xperia C'
|
1092
1366
|
- regex: '(?:Sony(?:Ericsson)?)?C530[236]'
|
1093
1367
|
model: 'Xperia SP'
|
1094
|
-
- regex: '(?:Sony(?:Ericsson)?)?
|
1368
|
+
- regex: '(?:Sony(?:Ericsson)?)?C550[23]'
|
1095
1369
|
model: 'Xperia ZR'
|
1096
1370
|
- regex: '(?:Sony(?:Ericsson)?)?C650[236]'
|
1097
1371
|
model: 'Xperia ZL'
|
@@ -1116,16 +1390,20 @@ Sony:
|
|
1116
1390
|
model: 'Xperia M2'
|
1117
1391
|
- regex: '(?:Sony(?:Ericsson)?)?D240[36]'
|
1118
1392
|
model: 'Xperia M2 Aqua'
|
1393
|
+
- regex: '(?:Sony(?:Ericsson)?)?E2303'
|
1394
|
+
model: 'Xperia M4 Aqua'
|
1119
1395
|
- regex: '(?:Sony(?:Ericsson)?)?D2502'
|
1120
1396
|
model: 'Xperia C3 Dual'
|
1121
1397
|
- regex: '(?:Sony(?:Ericsson)?)?D2533'
|
1122
1398
|
model: 'Xperia C3'
|
1123
1399
|
- regex: '(?:Sony(?:Ericsson)?)?D510[236]'
|
1124
1400
|
model: 'Xperia T3'
|
1125
|
-
- regex: '(?:Sony(?:Ericsson)?)?D530[36]'
|
1401
|
+
- regex: '(?:Sony(?:Ericsson)?)?D530[36]|XM50[ht]'
|
1126
1402
|
model: 'Xperia T2 Ultra'
|
1403
|
+
device: 'phablet'
|
1127
1404
|
- regex: '(?:Sony(?:Ericsson)?)?D5322'
|
1128
1405
|
model: 'Xperia T2 Ultra Dual'
|
1406
|
+
device: 'phablet'
|
1129
1407
|
- regex: '(?:Sony(?:Ericsson)?)?D5503'
|
1130
1408
|
model: 'Xperia Z1 Compact'
|
1131
1409
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D58[03]3|SO-02G)'
|
@@ -1134,6 +1412,10 @@ Sony:
|
|
1134
1412
|
model: 'Xperia Z2'
|
1135
1413
|
- regex: '(?:Sony(?:Ericsson)?)?(?:D66[05]3|SO-01G)'
|
1136
1414
|
model: 'Xperia Z3'
|
1415
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:E6553)'
|
1416
|
+
model: 'Xperia Z3+'
|
1417
|
+
- regex: '(?:Sony(?:Ericsson)?)?(?:E58[02]3)'
|
1418
|
+
model: 'Xperia Z5 Compact'
|
1137
1419
|
- regex: '(?:Sony(?:Ericsson)?)?SO-04E'
|
1138
1420
|
model: 'Xperia A'
|
1139
1421
|
- regex: '(?:Sony(?:Ericsson)?)?SO-04D'
|
@@ -1142,24 +1424,33 @@ Sony:
|
|
1142
1424
|
model: 'Xperia SX'
|
1143
1425
|
|
1144
1426
|
# SONY: explicit tablet models
|
1145
|
-
- regex: 'SGP(?:311|312|321)
|
1427
|
+
- regex: 'SGP(?:311|312|321)[);/ ]|SO-03E'
|
1146
1428
|
model: 'Xperia Tablet Z'
|
1147
1429
|
device: 'tablet'
|
1148
|
-
- regex: 'SGP(?:511|512|521)
|
1430
|
+
- regex: 'SGP(?:511|512|521)[);/ ]|SO-05F'
|
1149
1431
|
model: 'Xperia Tablet Z2'
|
1150
1432
|
device: 'tablet'
|
1151
|
-
- regex: 'SGP(?:6[24]1)
|
1433
|
+
- regex: 'SGP(?:6[24]1)[);/ ]'
|
1152
1434
|
model: 'Xperia Tablet Z3 Compact'
|
1153
1435
|
device: 'tablet'
|
1154
|
-
- regex: 'SGPT(?:12|121|122|123|13|131|132|133)
|
1436
|
+
- regex: 'SGPT(?:12|121|122|123|13|131|132|133)[);/ ]'
|
1155
1437
|
model: 'Xperia Tablet S'
|
1156
1438
|
device: 'tablet'
|
1157
1439
|
|
1158
1440
|
# general detections
|
1441
|
+
- regex: 'SonyBDP|SonyDBV'
|
1442
|
+
model: 'Blu-ray Player'
|
1443
|
+
device: 'tv'
|
1444
|
+
- regex: '(?:Sony-)?(KDL?-?[0-9a-z]+)'
|
1445
|
+
model: '$1'
|
1446
|
+
device: 'tv'
|
1447
|
+
- regex: 'Opera TV Store.*(?:Sony-)([0-9a-z-_]+)'
|
1448
|
+
model: '$1'
|
1449
|
+
device: 'tv'
|
1159
1450
|
- regex: '((?:WT|SO|ST|SK|MK)[0-9]+[a-z]*[0-9]*)(?: Build|\))'
|
1160
1451
|
model: '$1'
|
1161
1452
|
brand: 'Sony Ericsson'
|
1162
|
-
- regex: '(MT[0-9]{2}[a-z]?)
|
1453
|
+
- regex: '(MT[0-9]{2}[a-z]?)[);/ ]'
|
1163
1454
|
model: '$1'
|
1164
1455
|
brand: 'Sony Ericsson'
|
1165
1456
|
- regex: 'portalmmm/2.0 K([a-z0-9]+)'
|
@@ -1187,9 +1478,9 @@ Sony:
|
|
1187
1478
|
device: 'tablet'
|
1188
1479
|
- regex: 'Xperia ([^;/]+) Build'
|
1189
1480
|
model: 'Xperia $1'
|
1190
|
-
- regex: 'Sony[ ]?([^/;]*) Build'
|
1481
|
+
- regex: 'Sony[ -]?([^/;]*) Build'
|
1191
1482
|
model: '$1'
|
1192
|
-
- regex: 'Sony[ ]?([a-z0-9\-]+)'
|
1483
|
+
- regex: 'Sony[ -]?([a-z0-9\-]+)'
|
1193
1484
|
model: '$1'
|
1194
1485
|
|
1195
1486
|
# Ericsson
|
@@ -1221,9 +1512,14 @@ Storex:
|
|
1221
1512
|
|
1222
1513
|
# Evertek
|
1223
1514
|
Evertek:
|
1224
|
-
regex: '(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy)[^/;]*) Build'
|
1515
|
+
regex: '(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build|E70[25]0HD|E805[01]HD|E9054HD|E8050HG|E7914HG'
|
1225
1516
|
device: 'smartphone'
|
1226
|
-
|
1517
|
+
models:
|
1518
|
+
- regex: '(E70[25]0HD|E805[01]HD|E9054HD|E8050HG|E7914HG)'
|
1519
|
+
device: 'tablet'
|
1520
|
+
model: 'Everpad $1'
|
1521
|
+
- regex: '(Ever(?:Glory|Shine|Miracle|Mellow|Classic|Trendy|Fancy|Vivid|Slim|Glow|Magic|Smart|Star)[^/;]*) Build'
|
1522
|
+
model: '$1'
|
1227
1523
|
|
1228
1524
|
# Ezze
|
1229
1525
|
Ezze:
|
@@ -1241,6 +1537,21 @@ Ezio:
|
|
1241
1537
|
device: 'feature phone'
|
1242
1538
|
model: '$1'
|
1243
1539
|
|
1540
|
+
# Foxconn
|
1541
|
+
Foxconn:
|
1542
|
+
regex: 'InFocus M[0-9]+[a-z]?'
|
1543
|
+
device: 'smartphone'
|
1544
|
+
models:
|
1545
|
+
- regex: 'InFocus M([0-9]+[a-z]?)'
|
1546
|
+
model: 'InFocus M$1'
|
1547
|
+
|
1548
|
+
# Fairphone
|
1549
|
+
Fairphone:
|
1550
|
+
regex: '(FP1U?)[);/ ]'
|
1551
|
+
device: 'smartphone'
|
1552
|
+
model: '$1'
|
1553
|
+
|
1554
|
+
|
1244
1555
|
# Fujitsu
|
1245
1556
|
Fujitsu:
|
1246
1557
|
regex: 'F-01F|F-02[EF]|F-05[DE]|F-06E|F-08D|F-09E'
|
@@ -1292,34 +1603,92 @@ Gigaset:
|
|
1292
1603
|
|
1293
1604
|
# Gionee
|
1294
1605
|
Gionee:
|
1295
|
-
regex: 'GIONEE-[a-z0-9]
|
1606
|
+
regex: '(?:GIO-)?GIONEE[ _-]?[a-z0-9]+|(?:Dream_D1|V188S?|GN[0-9]{3,4}[a-z]?)[);/ ]'
|
1296
1607
|
device: 'smartphone'
|
1297
1608
|
models:
|
1298
|
-
- regex: '
|
1609
|
+
- regex: 'GN810[);/ ]'
|
1610
|
+
model: 'GN810'
|
1611
|
+
device: 'phablet'
|
1612
|
+
- regex: 'GN([0-9]{3,4}[a-z]?)[);/ ]'
|
1613
|
+
model: 'GN$1'
|
1614
|
+
- regex: 'V188S[);/ ]'
|
1615
|
+
model: 'V188S'
|
1616
|
+
- regex: 'V188[);/ ]'
|
1617
|
+
model: 'V188'
|
1618
|
+
- regex: '(?:(?:GIO-)?GIONEE[ _-])?Dream_D1[);/ ]'
|
1619
|
+
model: 'Dream D1'
|
1620
|
+
- regex: '(?:GIO-)?GIONEE[ _-]([a-z0-9_-]+).*Android'
|
1299
1621
|
model: '$1'
|
1300
|
-
- regex: 'Android.*GIONEE-([a-z0-
|
1622
|
+
- regex: 'Android.*(?:GIO-)?GIONEE[ _-]([a-z0-9_-]+)'
|
1301
1623
|
model: '$1'
|
1302
|
-
- regex: 'GIONEE-([a-z0-9]+)'
|
1624
|
+
- regex: '(?:GIO-)?GIONEE[ _-]?([a-z0-9]+)'
|
1303
1625
|
model: '$1'
|
1304
1626
|
device: 'feature phone'
|
1305
1627
|
|
1628
|
+
# Vizio
|
1629
|
+
Vizio:
|
1630
|
+
regex: 'Vizio|VAP430|VTAB1008'
|
1631
|
+
device: 'tv'
|
1632
|
+
models:
|
1633
|
+
- regex: 'VAP430'
|
1634
|
+
model: 'VAP430'
|
1635
|
+
- regex: 'VTAB1008'
|
1636
|
+
device: 'tablet'
|
1637
|
+
model: 'VTAB1008'
|
1638
|
+
|
1639
|
+
# GOCLEVER
|
1640
|
+
GOCLEVER:
|
1641
|
+
regex: 'GOCLEVER|QUANTUM|ARIES|INSIGNIA'
|
1642
|
+
device: 'smartphone'
|
1643
|
+
models:
|
1644
|
+
- regex: '((?:QUANTUM|ARIES|INSIGNIA)[ _-]?[^;/]+) Build'
|
1645
|
+
model: '$1'
|
1646
|
+
- regex: 'GOCLEVER[ _-]TAB[ _-]?([^;/]+) Build'
|
1647
|
+
model: 'TAB $1'
|
1648
|
+
device: 'tablet'
|
1649
|
+
- regex: 'GOCLEVER[ _-]?([^;/]+) Build'
|
1650
|
+
model: '$1'
|
1651
|
+
- regex: 'TAB ([^;/)]+) Build/GOCLEVER'
|
1652
|
+
model: 'TAB $1'
|
1653
|
+
device: 'tablet'
|
1654
|
+
- regex: '([^;/)]+) Build/GOCLEVER'
|
1655
|
+
model: '$1'
|
1656
|
+
- regex: 'GOCLEVER[ _-]?TAB[ _-]([^;/)]+)[;/)]'
|
1657
|
+
model: 'TAB $1'
|
1658
|
+
device: 'tablet'
|
1659
|
+
- regex: 'GOCLEVER[ _-]?([^;/)]+)[;/)]'
|
1660
|
+
model: '$1'
|
1661
|
+
|
1662
|
+
# Goly
|
1663
|
+
Goly:
|
1664
|
+
regex: 'Goly[ _-]'
|
1665
|
+
device: 'smartphone'
|
1666
|
+
models:
|
1667
|
+
- regex: 'Goly[ _-]([^;/]+) Build'
|
1668
|
+
model: '$1'
|
1669
|
+
- regex: 'Goly[ _-]([^;/)]+)[;/)]'
|
1670
|
+
model: '$1'
|
1671
|
+
|
1306
1672
|
# Google
|
1307
1673
|
Google:
|
1308
|
-
regex: 'Nexus|GoogleTV|Glass'
|
1674
|
+
regex: 'Nexus|GoogleTV|Glass|CrKey[^a-z0-9]'
|
1309
1675
|
device: 'smartphone'
|
1310
1676
|
models:
|
1311
1677
|
- regex: 'Glass'
|
1312
1678
|
model: 'Glass'
|
1313
1679
|
- regex: 'Galaxy Nexus'
|
1314
1680
|
model: 'Galaxy Nexus'
|
1315
|
-
- regex: '(Nexus (?:S|4|
|
1681
|
+
- regex: '(Nexus (?:S|4|5X?|One))'
|
1316
1682
|
model: '$1'
|
1317
|
-
- regex: '(Nexus (?:
|
1683
|
+
- regex: '(Nexus (?:6P?))'
|
1318
1684
|
device: 'phablet'
|
1319
1685
|
model: '$1'
|
1320
1686
|
- regex: '(Nexus (?:7|9|10))'
|
1321
1687
|
device: 'tablet'
|
1322
1688
|
model: '$1'
|
1689
|
+
- regex: 'CrKey[^a-z0-9]'
|
1690
|
+
model: 'Chromecast'
|
1691
|
+
device: 'tv'
|
1323
1692
|
- regex: 'GoogleTV'
|
1324
1693
|
device: 'tv'
|
1325
1694
|
model: 'GoogleTV'
|
@@ -1349,9 +1718,11 @@ Grundig:
|
|
1349
1718
|
|
1350
1719
|
# Haier
|
1351
1720
|
Haier:
|
1352
|
-
regex: 'Haier'
|
1721
|
+
regex: 'Haier|(?:HW-)?W(?:716|757|860|970)[);/ ]'
|
1353
1722
|
device: 'smartphone'
|
1354
1723
|
models:
|
1724
|
+
- regex: '(?:HW-)?W(716|757|860|970)[);/ ]'
|
1725
|
+
model: 'W$1'
|
1355
1726
|
- regex: 'Haier[ _\-](H[WT]-[^/;]+) Build'
|
1356
1727
|
model: '$1'
|
1357
1728
|
- regex: 'Haier[ _\-](H[WT]-[a-z0-9_\-]+)'
|
@@ -1362,9 +1733,19 @@ Haier:
|
|
1362
1733
|
model: '$1'
|
1363
1734
|
device: 'feature phone'
|
1364
1735
|
|
1736
|
+
# Hasee
|
1737
|
+
Hasee:
|
1738
|
+
regex: 'Hasee'
|
1739
|
+
device: 'smartphone'
|
1740
|
+
models:
|
1741
|
+
- regex: 'Hasee ([^;/]+) Build'
|
1742
|
+
model: '$1'
|
1743
|
+
- regex: 'Hasee ([^;/)]+)[);/ ]'
|
1744
|
+
model: '$1'
|
1745
|
+
|
1365
1746
|
# Hisense
|
1366
1747
|
Hisense:
|
1367
|
-
regex: '(?:HS-)?Hisense ([^;/]+) Build|HS-(?:U|EG
|
1748
|
+
regex: '(?:HS-)?Hisense ([^;/]+) Build|Hisense [^);/]+|HS-(?:U|EG?|I|T|X)[0-9]+[a-z0-9\-]*|E270BSA|M470BS[AE]|E2281'
|
1368
1749
|
device: 'smartphone'
|
1369
1750
|
models:
|
1370
1751
|
# explicit tablet models
|
@@ -1378,10 +1759,12 @@ Hisense:
|
|
1378
1759
|
device: 'tablet'
|
1379
1760
|
model: 'Sero 8'
|
1380
1761
|
|
1381
|
-
- regex: '(HS-(?:U|EG
|
1762
|
+
- regex: '(HS-(?:U|EG?|I|T|X)[0-9]+[a-z0-9\-]*)'
|
1382
1763
|
model: '$1'
|
1383
1764
|
- regex: '(?:HS-)?Hisense ([^;/]+) Build'
|
1384
1765
|
model: '$1'
|
1766
|
+
- regex: 'Hisense ([^);/]+)'
|
1767
|
+
model: '$1'
|
1385
1768
|
|
1386
1769
|
# Hi-Level
|
1387
1770
|
Hi-Level:
|
@@ -1389,11 +1772,55 @@ Hi-Level:
|
|
1389
1772
|
device: 'tablet'
|
1390
1773
|
model: 'HLV-T$1'
|
1391
1774
|
|
1775
|
+
# Hosin
|
1776
|
+
Hosin:
|
1777
|
+
regex: 'HOSIN[ _-]'
|
1778
|
+
device: 'smartphone'
|
1779
|
+
models:
|
1780
|
+
- regex: 'HOSIN[ _-]([^;/]+) Build'
|
1781
|
+
model: '$1'
|
1782
|
+
- regex: 'HOSIN[ _-]([^;/]+)[;/)]'
|
1783
|
+
model: '$1'
|
1784
|
+
|
1392
1785
|
# Huawei
|
1393
1786
|
Huawei:
|
1394
|
-
regex: '(HW-)?Huawei|Ideos|
|
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?)|CH(?:E2?|M)-[CUT]L00[HM]?|CHE1-CL[12]0|CHE2-L11|U(?:8230|8500|8661|8665|8667|8800|8818|8860|9200|9508))[);/ ])'
|
1395
1788
|
device: 'smartphone'
|
1396
1789
|
models:
|
1790
|
+
- regex: 'U(8230|8661|8667)[);/ ]'
|
1791
|
+
model: 'U$1'
|
1792
|
+
- regex: 'U8500[);/ ]'
|
1793
|
+
model: 'Ideos X2'
|
1794
|
+
- regex: 'U8510[);/ ]'
|
1795
|
+
model: 'Ideos X3'
|
1796
|
+
- regex: 'U8665[);/ ]'
|
1797
|
+
model: 'Fusion 2'
|
1798
|
+
- regex: 'U8800[);/ ]'
|
1799
|
+
model: 'Ideos X5'
|
1800
|
+
- regex: 'U8818[);/ ]'
|
1801
|
+
model: 'Ascend G300'
|
1802
|
+
- regex: 'U8860[);/ ]'
|
1803
|
+
model: 'Honor'
|
1804
|
+
- regex: 'U9200[);/ ]'
|
1805
|
+
model: 'Ascend P1'
|
1806
|
+
- regex: 'U9500[);/ ]'
|
1807
|
+
model: 'Ascend D1'
|
1808
|
+
- regex: 'U9508[);/ ]'
|
1809
|
+
model: 'Honor 2'
|
1810
|
+
- regex: 'CHE2?-[UT]L00[HM]?|CHE1-CL[12]0|CHE2-L11'
|
1811
|
+
model: 'Honor 4X'
|
1812
|
+
- regex: 'CHM-[CUT]L00[HM]?'
|
1813
|
+
model: 'Honor Play 4C'
|
1814
|
+
- regex: '(?:Honor_|HW-)?G621-TL00M?[);/ ]'
|
1815
|
+
model: 'G621'
|
1816
|
+
- regex: '(?:Honor_|HW-)?H30-(?:C00|L01M?|L02|U10|T00|T10)(?:_TD)?[);/ ]'
|
1817
|
+
model: 'Honor 3C'
|
1818
|
+
- regex: '(?:Honor_|HW-)?SCL-(?:AL00|CL00|TL00H?)(?:_TD)?[);/ ]'
|
1819
|
+
model: 'Honor 4A'
|
1820
|
+
- regex: '(?:Honor_|HW-)?H60-L(?:01|02|03|04|11|12)(?:_TD)?[);/ ]'
|
1821
|
+
model: 'Honor 6'
|
1822
|
+
- regex: '(?:Honor_|HW-)?PLK-(?:AL10|CL00|TL00|TL01H?|UL00|L01)[);/ ]'
|
1823
|
+
model: 'Honor 7'
|
1397
1824
|
- regex: '(MediaPad[^/;]*) Build'
|
1398
1825
|
device: 'tablet'
|
1399
1826
|
model: '$1'
|
@@ -1408,8 +1835,6 @@ Huawei:
|
|
1408
1835
|
model: '$1'
|
1409
1836
|
- regex: 'Huawei; ([a-z0-9 \-]+)'
|
1410
1837
|
model: '$1'
|
1411
|
-
- regex: 'vodafone([a-z0-9]+)'
|
1412
|
-
model: 'Vodafone $1'
|
1413
1838
|
|
1414
1839
|
# Hyundai
|
1415
1840
|
Hyundai:
|
@@ -1419,6 +1844,38 @@ Hyundai:
|
|
1419
1844
|
- regex: 'Hyundai ([^;/]+) Build'
|
1420
1845
|
model: '$1'
|
1421
1846
|
|
1847
|
+
#i-Joy
|
1848
|
+
'i-Joy':
|
1849
|
+
regex: 'i-Joy|i-Call|(?:Neon[79]|Sygnus|Deox|Elektra (?:M|L|XL|XXL))[);/ ]'
|
1850
|
+
device: 'smartphone'
|
1851
|
+
models:
|
1852
|
+
# explicit smartphone models
|
1853
|
+
- regex: 'Elektra M[);/ ]'
|
1854
|
+
model: 'Elektra M'
|
1855
|
+
- regex: 'Elektra L[);/ ]'
|
1856
|
+
model: 'Elektra L'
|
1857
|
+
- regex: 'Elektra XL[);/ ]'
|
1858
|
+
model: 'Elektra XL'
|
1859
|
+
- regex: 'Elektra XXL[);/ ]'
|
1860
|
+
model: 'Elektra XXL'
|
1861
|
+
device: 'phablet'
|
1862
|
+
|
1863
|
+
# explicit tablet models
|
1864
|
+
- regex: 'Neon([79])[);/ ]'
|
1865
|
+
model: 'Neon $1'
|
1866
|
+
device: 'tablet'
|
1867
|
+
- regex: 'Sygnus[);/ ]'
|
1868
|
+
model: 'Sygnus'
|
1869
|
+
device: 'tablet'
|
1870
|
+
- regex: 'Deox[);/ ]'
|
1871
|
+
model: 'Deox'
|
1872
|
+
device: 'tablet'
|
1873
|
+
|
1874
|
+
- regex: 'i-Call ([^;/]+) Build'
|
1875
|
+
model: 'i-Call $1'
|
1876
|
+
- regex: 'i-Joy ([^;/]+) Build'
|
1877
|
+
model: '$1'
|
1878
|
+
|
1422
1879
|
# iBall
|
1423
1880
|
iBall:
|
1424
1881
|
regex: 'iBall[ _]([^/;]*)[ _]Build'
|
@@ -1435,6 +1892,22 @@ iBerry:
|
|
1435
1892
|
- regex: 'AUXUS ([^/;]+) Build'
|
1436
1893
|
model: '$1'
|
1437
1894
|
|
1895
|
+
# iNew
|
1896
|
+
iNew:
|
1897
|
+
regex: 'iNew|(?:V7A|V3 Plus|V3-?E|V3C)(?: Build|[;/\)])'
|
1898
|
+
device: 'smartphone'
|
1899
|
+
models:
|
1900
|
+
- regex: 'V3C(?: Build|[;/\)])'
|
1901
|
+
model: 'V3C'
|
1902
|
+
- regex: 'V3-?E(?: Build|[;/\)])'
|
1903
|
+
model: 'V3-E'
|
1904
|
+
- regex: 'V3 Plus(?: Build|[;/\)])'
|
1905
|
+
model: 'V3 Plus'
|
1906
|
+
- regex: 'V7A(?: Build|[;/\)])'
|
1907
|
+
model: 'V7A'
|
1908
|
+
- regex: 'iNew[ -_]([^;/]+) Build'
|
1909
|
+
model: '$1'
|
1910
|
+
|
1438
1911
|
# Infinix
|
1439
1912
|
Infinix:
|
1440
1913
|
regex: 'Infinix'
|
@@ -1491,13 +1964,19 @@ i-mate:
|
|
1491
1964
|
|
1492
1965
|
# i-mobile
|
1493
1966
|
i-mobile:
|
1494
|
-
regex: 'i-mobile ?[a-z0-9]
|
1967
|
+
regex: 'i-mobile ?[a-z0-9]+|i-Style|IQ ?(9\.1|5\.5|5\.6A?)'
|
1495
1968
|
device: 'feature phone'
|
1496
1969
|
models:
|
1497
1970
|
- regex: 'i-mobile (i-note[^/;]*) Build'
|
1498
1971
|
model: '$1'
|
1499
1972
|
device: 'tablet'
|
1500
|
-
- regex: 'i-
|
1973
|
+
- regex: 'i-Style ?([^;/]+) Build'
|
1974
|
+
model: 'i-Style $1'
|
1975
|
+
device: 'smartphone'
|
1976
|
+
- regex: 'IQ ?(9\.1|5\.5|5\.6A?)'
|
1977
|
+
model: 'IQ $1'
|
1978
|
+
device: 'smartphone'
|
1979
|
+
- regex: 'i-mobile (IQ[^/;]*) Build'
|
1501
1980
|
model: '$1'
|
1502
1981
|
device: 'smartphone'
|
1503
1982
|
- regex: 'i-mobile(?: )?([a-z0-9\- ]+) Build'
|
@@ -1511,6 +1990,16 @@ iKoMo:
|
|
1511
1990
|
device: 'feature phone'
|
1512
1991
|
model: '$1'
|
1513
1992
|
|
1993
|
+
# iOcean
|
1994
|
+
iOcean:
|
1995
|
+
regex: 'iOCEAN'
|
1996
|
+
device: 'smartphone'
|
1997
|
+
models:
|
1998
|
+
- regex: 'iOCEAN[ _\-]?([^/;]+) Build'
|
1999
|
+
model: '$1'
|
2000
|
+
- regex: 'iOCEAN[ _\-]?([^);/ ]+)'
|
2001
|
+
model: '$1'
|
2002
|
+
|
1514
2003
|
# iTel
|
1515
2004
|
iTel:
|
1516
2005
|
regex: 'itel|iNote'
|
@@ -1527,7 +2016,7 @@ iTel:
|
|
1527
2016
|
|
1528
2017
|
#Jiayu
|
1529
2018
|
Jiayu:
|
1530
|
-
regex: '(JY-[a-z0-9]+)
|
2019
|
+
regex: '(JY-[a-z0-9]+)[);/ ]'
|
1531
2020
|
device: 'smartphone'
|
1532
2021
|
model: '$1'
|
1533
2022
|
|
@@ -1539,17 +2028,59 @@ Jolla:
|
|
1539
2028
|
|
1540
2029
|
# Kazam
|
1541
2030
|
Kazam:
|
1542
|
-
regex: 'Kazam ([^;/]+) Build|Trooper_X[0-9][0-9]
|
2031
|
+
regex: 'Kazam ([^;/]+) Build|Trooper_X[0-9][0-9][);/ ]|Tornado 348'
|
1543
2032
|
device: 'smartphone'
|
1544
2033
|
models:
|
1545
|
-
- regex: '
|
2034
|
+
- regex: 'Tornado 348'
|
2035
|
+
model: 'Tornado 348'
|
2036
|
+
- regex: 'Trooper_X([0-9])([0-9])[);/ ]'
|
1546
2037
|
model: 'Trooper X$1.$2'
|
1547
2038
|
- regex: 'Kazam ([^;/]+) Build'
|
1548
2039
|
model: '$1'
|
1549
2040
|
|
2041
|
+
# Kingsun
|
2042
|
+
Kingsun:
|
2043
|
+
regex: 'Kingsun[ _-]'
|
2044
|
+
device: 'smartphone'
|
2045
|
+
models:
|
2046
|
+
- regex: 'Kingsun[ _-]([^;/]+) Build'
|
2047
|
+
model: '$1'
|
2048
|
+
- regex: 'Kingsun[ -]((?!Build)[a-z0-9_-]+)'
|
2049
|
+
model: '$1'
|
2050
|
+
|
2051
|
+
# Komu
|
2052
|
+
Komu:
|
2053
|
+
regex: 'Komu[ -]'
|
2054
|
+
device: 'smartphone'
|
2055
|
+
models:
|
2056
|
+
- regex: 'Komu[ -]([^;/]+) Build'
|
2057
|
+
model: '$1'
|
2058
|
+
- regex: 'Komu[ -]([a-z0-9_-]+)'
|
2059
|
+
model: '$1'
|
2060
|
+
|
2061
|
+
# Koobee
|
2062
|
+
Koobee:
|
2063
|
+
regex: 'Koobee'
|
2064
|
+
device: 'smartphone'
|
2065
|
+
models:
|
2066
|
+
- regex: 'Koobee[ _\-]?([^;/]+) Build'
|
2067
|
+
model: '$1'
|
2068
|
+
- regex: 'Koobee[ _\-]?([a-z0-9_-]+)'
|
2069
|
+
model: '$1'
|
2070
|
+
|
2071
|
+
# Kumai
|
2072
|
+
Kumai:
|
2073
|
+
regex: '(?:KM-)?Kumai'
|
2074
|
+
device: 'smartphone'
|
2075
|
+
models:
|
2076
|
+
- regex: '(?:KM-)?Kumai[ _\-]?([^;/]+) Build'
|
2077
|
+
model: '$1'
|
2078
|
+
- regex: '(?:KM-)?Kumai[ _\-]?([a-z0-9_-]+)'
|
2079
|
+
model: '$1'
|
2080
|
+
|
1550
2081
|
# KT-Tech
|
1551
2082
|
KT-Tech:
|
1552
|
-
regex: '(KM-[a-z0-9]+|EV-[a-z0-9]+)
|
2083
|
+
regex: '(KM-[a-z0-9]+|EV-[a-z0-9]+)[);/ ]'
|
1553
2084
|
device: 'smartphone'
|
1554
2085
|
model: '$1'
|
1555
2086
|
|
@@ -1559,22 +2090,40 @@ KDDI:
|
|
1559
2090
|
device: 'feature phone'
|
1560
2091
|
model: '$1'
|
1561
2092
|
|
2093
|
+
# KOPO
|
2094
|
+
KOPO:
|
2095
|
+
regex: 'KOPO[ _-]'
|
2096
|
+
device: 'smartphone'
|
2097
|
+
models:
|
2098
|
+
- regex: 'KOPO[ _\-]?([^/;]+) Build'
|
2099
|
+
model: '$1'
|
2100
|
+
- regex: 'KOPO[ _\-]?([^);/ ]+)'
|
2101
|
+
model: '$1'
|
2102
|
+
|
2103
|
+
# Koridy
|
2104
|
+
Koridy:
|
2105
|
+
regex: 'KORIDY[ _-]([^/;]+) Build'
|
2106
|
+
device: 'smartphone'
|
2107
|
+
model: '$1'
|
2108
|
+
|
1562
2109
|
#k-touch
|
1563
2110
|
K-Touch:
|
1564
|
-
regex: 'K
|
2111
|
+
regex: 'K-?Touch[ _][a-z0-9]+'
|
1565
2112
|
device: 'smartphone'
|
1566
2113
|
models:
|
1567
|
-
- regex: 'K
|
2114
|
+
- regex: 'K-?Touch[ _]([^/;]*)[ _]Build'
|
1568
2115
|
model: '$1'
|
1569
|
-
- regex: 'K
|
2116
|
+
- regex: 'K-?Touch[ _]([a-z0-9]+)'
|
1570
2117
|
model: '$1'
|
1571
2118
|
|
1572
2119
|
# kyocera
|
1573
2120
|
Kyocera:
|
1574
|
-
regex: 'Kyocera|KWC-|QC-|C5170|C5155|C5215|C6750|C6522N?|S2151'
|
2121
|
+
regex: 'Kyocera|KWC-|QC-|C5120|C5170|C5155|C5215|C6750|C6522N?|S2151'
|
1575
2122
|
device: 'smartphone'
|
1576
2123
|
models:
|
1577
2124
|
# explicit smartphone models
|
2125
|
+
- regex: 'C5120'
|
2126
|
+
model: 'Milano'
|
1578
2127
|
- regex: 'C5155'
|
1579
2128
|
model: 'Rise'
|
1580
2129
|
- regex: 'C5170'
|
@@ -1627,7 +2176,7 @@ LCT:
|
|
1627
2176
|
model: 'Le Pan Mini'
|
1628
2177
|
- regex: 'TC970 ([^;/]+)Build'
|
1629
2178
|
model: 'TC970 $1'
|
1630
|
-
- regex: 'Le ?Pan ?(II|S)
|
2179
|
+
- regex: 'Le ?Pan ?(II|S)[);/ ]'
|
1631
2180
|
model: 'Le Pan $1'
|
1632
2181
|
- regex: 'Le ?Pan ?([^;/]+) Build'
|
1633
2182
|
model: '$1'
|
@@ -1657,14 +2206,14 @@ Lenovo:
|
|
1657
2206
|
device: 'tablet'
|
1658
2207
|
- regex: 'Lenovo ([^/;]*) Build'
|
1659
2208
|
model: '$1'
|
1660
|
-
- regex: '(?:LNV-|Lenovo-)?Lenovo[ \-_]([a-z0-9_+\-]+)'
|
1661
|
-
model: '$1'
|
1662
2209
|
- regex: 'IdeaTab[ \-_]?([a-z0-9]+)'
|
1663
2210
|
model: 'IdeaTab $1'
|
1664
2211
|
device: 'tablet'
|
1665
2212
|
- regex: 'Yoga Tablet([^;/]+) Build'
|
1666
2213
|
model: 'Yoga Tablet$1'
|
1667
2214
|
device: 'tablet'
|
2215
|
+
- regex: '(?:LNV-|Lenovo-)?Lenovo[ \-_]([a-z0-9_+\-]+)'
|
2216
|
+
model: '$1'
|
1668
2217
|
|
1669
2218
|
# lexibook
|
1670
2219
|
Lexibook:
|
@@ -1722,14 +2271,21 @@ Lexibook:
|
|
1722
2271
|
|
1723
2272
|
# lg
|
1724
2273
|
LG:
|
1725
|
-
regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|VX[0-9]+|L-
|
2274
|
+
regex: 'LG|portalmmm/2\.0 (?:KE|KG|KP|L3)|(?:VX[0-9]+|L-0[12]D|L-07C|P713)[);/ ]|NetCast'
|
1726
2275
|
device: 'smartphone'
|
1727
2276
|
models:
|
2277
|
+
- regex: 'P713'
|
2278
|
+
model: 'Optimus L7II'
|
1728
2279
|
- regex: 'L-01D'
|
1729
2280
|
model: 'Optimus LTE L-01D'
|
2281
|
+
- regex: 'L-02D'
|
2282
|
+
model: 'PRADA phone L-02D'
|
1730
2283
|
- regex: 'L-07C'
|
1731
2284
|
model: 'Optimus Bright L-07C'
|
1732
2285
|
|
2286
|
+
- regex: 'webOS.TV'
|
2287
|
+
device: 'tv'
|
2288
|
+
model: 'WebOS TV'
|
1733
2289
|
- regex: 'LGE_DLNA_SDK|NetCast'
|
1734
2290
|
device: 'tv'
|
1735
2291
|
model: 'NetCast'
|
@@ -1751,9 +2307,19 @@ LG:
|
|
1751
2307
|
- regex: '(VX[0-9]+)'
|
1752
2308
|
model: '$1'
|
1753
2309
|
|
2310
|
+
# Lingwin
|
2311
|
+
Lingwin:
|
2312
|
+
regex: 'Lingwin[ _\-]'
|
2313
|
+
device: 'smartphone'
|
2314
|
+
models:
|
2315
|
+
- regex: 'Lingwin[ _\-]?([^/;]+) Build'
|
2316
|
+
model: '$1'
|
2317
|
+
- regex: 'Lingwin[ _\-]?([^);/ ]+)'
|
2318
|
+
model: '$1'
|
2319
|
+
|
1754
2320
|
# Logicom
|
1755
2321
|
Logicom:
|
1756
|
-
regex: '(TAB950|TAB1062|E731|E812|E912|E1031)
|
2322
|
+
regex: '(TAB950|TAB1062|E731|E812|E912|E1031)[);/ ]'
|
1757
2323
|
device: 'tablet'
|
1758
2324
|
model: '$1'
|
1759
2325
|
|
@@ -1817,31 +2383,150 @@ Sagem:
|
|
1817
2383
|
|
1818
2384
|
# Coby Kyros
|
1819
2385
|
Coby Kyros:
|
1820
|
-
regex: '(MID(?:1024|1125|1126|1045|1048|1060|1065|4331|7012|7015A?|7016|7022|7032|7035|7036|7042|7047|7048|7052|7065|7120|8024|8042|8048|8065|8125|8127|8128|9724|9740|9742))
|
2386
|
+
regex: '(MID(?:1024|1125|1126|1045|1048|1060|1065|4331|7012|7015A?|7016|7022|7032|7035|7036|7042|7047|7048|7052|7065|7120|8024|8042|8048|8065|8125|8127|8128|9724|9740|9742))[);/ ]'
|
1821
2387
|
device: 'tablet'
|
1822
2388
|
model: '$1'
|
1823
2389
|
|
1824
2390
|
# Mpman
|
1825
2391
|
Mpman:
|
1826
|
-
regex: '(?:MPQC|MPDC)[0-9]+|PH(?:150|340|350|360|451|500|520)|(?:MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)
|
2392
|
+
regex: '(?:MPQC|MPDC)[0-9]+|PH(?:150|340|350|360|451|500|520)|(?:MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)[);/ ]'
|
1827
2393
|
device: 'tablet'
|
1828
2394
|
models:
|
1829
2395
|
- regex: '((?:MPQC|MPDC)[0-9]+[^/;]+) Build'
|
1830
2396
|
model: '$1'
|
1831
|
-
- regex: '(MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)
|
2397
|
+
- regex: '(MID(?:7C|74C|82C|84C|801|811|701|711|170|77C|43C|102C|103C|104C|114C)|MP(?:843|717|718|1010|7007|7008|843|888|959|969)|MGP7)[);/ ]'
|
1832
2398
|
model: '$1'
|
1833
2399
|
- regex: '(PH(?:150|340|350|360|451|500|520))'
|
1834
2400
|
model: '$1'
|
1835
2401
|
device: 'smartphone'
|
1836
2402
|
|
2403
|
+
# Majestic
|
2404
|
+
Majestic:
|
2405
|
+
regex: 'MAJESTIC[ _-]|CRONO ?[0-9]+'
|
2406
|
+
device: 'smartphone'
|
2407
|
+
models:
|
2408
|
+
- regex: 'MAJESTIC[ _]Tab([^;/]+)Build'
|
2409
|
+
model: 'Tab$1'
|
2410
|
+
device: 'tablet'
|
2411
|
+
- regex: 'MAJESTIC[ _]Tab([^);/]+)[);/]'
|
2412
|
+
model: 'Tab$1'
|
2413
|
+
device: 'tablet'
|
2414
|
+
- regex: 'MAJESTIC[ _]([^;/]+)Build'
|
2415
|
+
model: '$1'
|
2416
|
+
- regex: 'MAJESTIC[ _]([^);/]+)[);/]'
|
2417
|
+
model: '$1'
|
2418
|
+
- regex: 'CRONO ?([0-9]+) Build'
|
2419
|
+
model: 'Crono $1'
|
2420
|
+
- regex: 'CRONO ?([0-9]+)[);/]'
|
2421
|
+
model: 'Crono $1'
|
1837
2422
|
|
1838
2423
|
# Manta Multimedia
|
1839
2424
|
Manta Multimedia:
|
1840
|
-
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))
|
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))[);/ ]'
|
1841
2426
|
device: 'tablet'
|
1842
2427
|
model: '$1'
|
1843
2428
|
|
1844
|
-
#
|
2429
|
+
# Mediacom
|
2430
|
+
Mediacom:
|
2431
|
+
regex: '(?:SmartPad7503G|SmartPad970s2(?:3G)?|M[_-][MP]P[0-9a-z]+|M-IPRO[0-9a-z]+)[);/ ]'
|
2432
|
+
device: 'tablet'
|
2433
|
+
models:
|
2434
|
+
- regex: 'SmartPad7503G[);/ ]'
|
2435
|
+
model: 'SmartPad 750 3G'
|
2436
|
+
- regex: 'SmartPad970s23G[);/ ]'
|
2437
|
+
model: 'SmartPad 970 S2 3G'
|
2438
|
+
- regex: 'SmartPad970s2[);/ ]'
|
2439
|
+
model: 'SmartPad 970 S2'
|
2440
|
+
- regex: 'M-MP84[02]M[);/ ]'
|
2441
|
+
model: 'SmartPad 8.0 Mobile'
|
2442
|
+
- regex: 'M-MP940M[);/ ]'
|
2443
|
+
model: 'SmartPad 9.7 Mobile'
|
2444
|
+
- regex: 'M-MP(?:710|720|725|726|740)GOx?[);/ ]'
|
2445
|
+
model: 'SmartPad 7.0 Go'
|
2446
|
+
- regex: 'M-MP876S2[);/ ]'
|
2447
|
+
model: 'SmartPad 8.0 S2'
|
2448
|
+
- regex: 'M-MP8S2[AB]?3G[);/ ]'
|
2449
|
+
model: 'SmartPad 8.0 S2 3G'
|
2450
|
+
- regex: 'M-MP(101|102|860|875)S2[BW]?[);/ ]'
|
2451
|
+
model: 'SmartPad $1 S2'
|
2452
|
+
- regex: 'M-MP85S23G[);/ ]'
|
2453
|
+
model: 'SmartPad 875 S2 3G'
|
2454
|
+
- regex: 'M-MP10[45][01]S2[);/ ]'
|
2455
|
+
model: 'SmartPad 10.1 S2'
|
2456
|
+
- regex: 'M-MP1S2[AB]3G[);/ ]'
|
2457
|
+
model: 'SmartPad 10.1 S2 3G'
|
2458
|
+
- regex: 'M-MP8[24]S4[);/ ]'
|
2459
|
+
model: 'SmartPad 8.0 S4'
|
2460
|
+
- regex: 'M-MP8S4[AB]3G[);/ ]'
|
2461
|
+
model: 'SmartPad 8.0 S4 3G'
|
2462
|
+
- regex: 'M-MP9S4A3G[);/ ]'
|
2463
|
+
model: 'SmartPad 9.7 S4 3G'
|
2464
|
+
- regex: 'M-MP1[02]S4[);/ ]'
|
2465
|
+
model: 'SmartPad 10.1 S4'
|
2466
|
+
- regex: 'M-MP1040MC?[);/ ]'
|
2467
|
+
model: 'SmartPad 10.1 HD S4 3G'
|
2468
|
+
- regex: 'M-MP1S4[AB]3G[);/ ]'
|
2469
|
+
model: 'SmartPad 10.1 S4 3G'
|
2470
|
+
- regex: 'M-MP8PA3G[);/ ]'
|
2471
|
+
model: 'SmartPad 8.0 HD Pro 3G'
|
2472
|
+
- regex: 'M-MP10PA[);/ ]'
|
2473
|
+
model: 'SmartPad 10.1 HD Pro'
|
2474
|
+
- regex: 'M-MP10PA3G[);/ ]'
|
2475
|
+
model: 'SmartPad 10.1 HD Pro 3G'
|
2476
|
+
- regex: 'M-IPRO([18][01]0)[BW][);/ ]'
|
2477
|
+
model: 'SmartPad 8.0 HD iPro$1 3G'
|
2478
|
+
|
2479
|
+
- regex: '(?:M-MP75S23G|M-MP72[01]M)[);/ ]'
|
2480
|
+
model: 'SmartPad 7.0 Mobile'
|
2481
|
+
device: 'phablet'
|
2482
|
+
- regex: 'M-MP7S2[ABDK]3G[);/ ]'
|
2483
|
+
model: 'SmartPad 7.0 S2 3G'
|
2484
|
+
device: 'phablet'
|
2485
|
+
- regex: 'M-MP5303G[);/ ]'
|
2486
|
+
model: 'SmartPad Mini Mobile'
|
2487
|
+
device: 'phablet'
|
2488
|
+
- regex: 'M-PPAG550[);/ ]'
|
2489
|
+
model: 'PhonePad Duo G550'
|
2490
|
+
device: 'phablet'
|
2491
|
+
- regex: 'M-PP2G530[);/ ]'
|
2492
|
+
model: 'PhonePad Duo G530'
|
2493
|
+
device: 'phablet'
|
2494
|
+
- regex: 'M-PPG700[);/ ]'
|
2495
|
+
model: 'PhonePad Duo G700'
|
2496
|
+
device: 'phablet'
|
2497
|
+
- regex: 'M-PPxS531[);/ ]'
|
2498
|
+
model: 'PhonePad Duo S531'
|
2499
|
+
device: 'phablet'
|
2500
|
+
- regex: 'M-PP2S550[);/ ]'
|
2501
|
+
model: 'PhonePad Duo S550'
|
2502
|
+
device: 'phablet'
|
2503
|
+
- regex: 'M-PP2S650C?[);/ ]'
|
2504
|
+
model: 'PhonePad Duo S650'
|
2505
|
+
device: 'phablet'
|
2506
|
+
- regex: 'M-PPxS551U[);/ ]'
|
2507
|
+
model: 'PhonePad Duo S551U'
|
2508
|
+
device: 'phablet'
|
2509
|
+
|
2510
|
+
- regex: 'M-PP[ABC]G500[);/ ]'
|
2511
|
+
model: 'PhonePad Duo G500'
|
2512
|
+
device: 'smartphone'
|
2513
|
+
- regex: 'M-PP2S500[BC]?[);/ ]'
|
2514
|
+
model: 'PhonePad Duo S500'
|
2515
|
+
device: 'smartphone'
|
2516
|
+
- regex: 'M[_-]PP[Ax]X(470|510|520)U[);/ ]'
|
2517
|
+
model: 'PhonePad Duo X$1U'
|
2518
|
+
device: 'smartphone'
|
2519
|
+
- regex: 'M-PPxG(400|501)[);/ ]'
|
2520
|
+
model: 'PhonePad Duo G$1'
|
2521
|
+
device: 'smartphone'
|
2522
|
+
- regex: 'M-PPxS(470|501)[);/ ]'
|
2523
|
+
model: 'PhonePad Duo S$1'
|
2524
|
+
device: 'smartphone'
|
2525
|
+
|
2526
|
+
- regex: 'M-MP([0-9a-z]+)'
|
2527
|
+
model: 'SmartPad $1'
|
2528
|
+
|
2529
|
+
# Medion
|
1845
2530
|
Medion:
|
1846
2531
|
regex: 'Medion|(?:MD_)?LIFETAB'
|
1847
2532
|
device: 'smartphone'
|
@@ -1852,28 +2537,65 @@ Medion:
|
|
1852
2537
|
- regex: 'Medion(?: Smartphone)? ([^/;]+) Build'
|
1853
2538
|
model: '$1'
|
1854
2539
|
|
1855
|
-
#
|
1856
|
-
|
1857
|
-
regex: '
|
2540
|
+
# MEEG
|
2541
|
+
MEEG:
|
2542
|
+
regex: 'MEEG[ _-]'
|
1858
2543
|
device: 'smartphone'
|
1859
2544
|
models:
|
1860
|
-
- regex: '
|
1861
|
-
|
1862
|
-
|
1863
|
-
|
2545
|
+
- regex: 'MEEG[ _\-]?([^/;]+) Build'
|
2546
|
+
model: '$1'
|
2547
|
+
- regex: 'MEEG[ _\-]?([^);/ ]+)'
|
2548
|
+
model: '$1'
|
2549
|
+
|
2550
|
+
# Meizu
|
2551
|
+
Meizu:
|
2552
|
+
regex: '(M04[05]|M35[1356]|MX[ -]?[234](?: Pro)?|(?:MZ-)?m[12] note|(?:MZ-)?M57[18]C)[);/ ]'
|
2553
|
+
device: 'smartphone'
|
2554
|
+
models:
|
2555
|
+
- regex: '(?:MZ-)?M571C'
|
2556
|
+
device: 'phablet'
|
2557
|
+
model: 'M2 Note'
|
2558
|
+
- regex: '(?:MZ-)?m(1|2) note[);/ ]'
|
2559
|
+
device: 'phablet'
|
2560
|
+
model: 'M$1 Note'
|
2561
|
+
- regex: '(?:MZ-)?M578C'
|
2562
|
+
model: 'M2'
|
2563
|
+
- regex: '(M04[05]|MX[ -]?2)[);/ ]'
|
1864
2564
|
model: 'MX2'
|
1865
|
-
- regex: '(M35[1356]|MX[ -]?3)
|
2565
|
+
- regex: '(M35[1356]|MX[ -]?3)[);/ ]'
|
1866
2566
|
model: 'MX3'
|
1867
|
-
- regex: 'MX[ -]?4
|
1868
|
-
model: 'MX4'
|
1869
|
-
- regex: 'MX[ -]?4 Pro Build'
|
2567
|
+
- regex: 'MX[ -]?4 Pro[);/ ]'
|
1870
2568
|
model: 'MX4 Pro'
|
2569
|
+
- regex: 'MX[ -]?4[);/ ]'
|
2570
|
+
model: 'MX4'
|
1871
2571
|
|
1872
2572
|
# Memup
|
1873
2573
|
Memup:
|
1874
|
-
regex: 'SlidePad ?([^;/]*) Build'
|
2574
|
+
regex: 'SlidePad ?([^;/]*) Build|SPNG?[0-9]{2,4}[a-z]{0,2}[ ;/)]|SP704CE?'
|
1875
2575
|
device: 'tablet'
|
1876
|
-
|
2576
|
+
models:
|
2577
|
+
- regex: 'SlidePad ?([^;/]*) Build'
|
2578
|
+
model: 'SlidePad $1'
|
2579
|
+
- regex: 'SPNG([0-9]{2,4}[a-z]{0,2})[ ;/)]'
|
2580
|
+
model: 'SlidePad NG$1'
|
2581
|
+
- regex: 'SP704(CE?)'
|
2582
|
+
model: 'SlidePad 704$1'
|
2583
|
+
|
2584
|
+
# Mecer
|
2585
|
+
Mecer:
|
2586
|
+
regex: '(M785|800P3[12]C|101P51C|X1010)[);/ ]'
|
2587
|
+
device: 'tablet'
|
2588
|
+
models:
|
2589
|
+
- regex: 'M785[);/ ]'
|
2590
|
+
model: 'Xpress Smartlife M785'
|
2591
|
+
- regex: 'X1010[);/ ]'
|
2592
|
+
model: 'X1010'
|
2593
|
+
- regex: '800P31C[);/ ]'
|
2594
|
+
model: 'Xpress Smartlife 800P31C'
|
2595
|
+
- regex: '800P32C[);/ ]'
|
2596
|
+
model: 'Xpress Smartlife 800P32C'
|
2597
|
+
- regex: '101P51C[);/ ]'
|
2598
|
+
model: 'Xpress Smartlife 101P51C'
|
1877
2599
|
|
1878
2600
|
# mio
|
1879
2601
|
Mio:
|
@@ -1893,12 +2615,46 @@ Mitsubishi:
|
|
1893
2615
|
- regex: 'portalmmm/[12]\.0 (M[a-z0-9]+)'
|
1894
2616
|
model: '$1'
|
1895
2617
|
|
2618
|
+
# MSI
|
2619
|
+
MSI:
|
2620
|
+
regex: 'Primo ?(?:91|76)|Enjoy 7 Plus'
|
2621
|
+
device: 'tablet'
|
2622
|
+
models:
|
2623
|
+
# explicit tablet models
|
2624
|
+
- regex: 'Primo ?76'
|
2625
|
+
model: 'Primo 76'
|
2626
|
+
- regex: 'Primo ?91'
|
2627
|
+
model: 'Primo 91'
|
2628
|
+
- regex: 'Enjoy 7 Plus'
|
2629
|
+
model: 'Enjoy 7 Plus'
|
2630
|
+
|
2631
|
+
# MLLED
|
2632
|
+
MLLED:
|
2633
|
+
regex: 'MLLED[ _]'
|
2634
|
+
device: 'smartphone'
|
2635
|
+
models:
|
2636
|
+
- regex: 'MLLED[ _]([^;/]+)Build'
|
2637
|
+
model: '$1'
|
2638
|
+
- regex: 'MLLED[ _]([^);/]+)[);/]'
|
2639
|
+
model: '$1'
|
2640
|
+
|
1896
2641
|
# Mobistel
|
1897
2642
|
Mobistel:
|
1898
2643
|
regex: '(Cynus [^/;]+) Build'
|
1899
2644
|
device: 'smartphone'
|
1900
2645
|
model: '$1'
|
1901
2646
|
|
2647
|
+
|
2648
|
+
# Mofut
|
2649
|
+
Mofut:
|
2650
|
+
regex: 'Mofut'
|
2651
|
+
device: 'smartphone'
|
2652
|
+
models:
|
2653
|
+
- regex: 'Mofut[ _\-]?([^/;]+) Build'
|
2654
|
+
model: '$1'
|
2655
|
+
- regex: 'Mofut[ _\-]?((?!Build)[^);/ ]+)'
|
2656
|
+
model: '$1'
|
2657
|
+
|
1902
2658
|
# motorola
|
1903
2659
|
Motorola:
|
1904
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|\))'
|
@@ -1991,7 +2747,7 @@ Motorola:
|
|
1991
2747
|
model: 'RAZR $1'
|
1992
2748
|
- regex: 'MOTORIZR[ _\-]([a-z0-9]+)'
|
1993
2749
|
model: 'RIZR $1'
|
1994
|
-
- regex: 'MOT[O]?[_\-]?([a-z0-9.]+)'
|
2750
|
+
- regex: 'MOT(?!OROLA)[O]?[_\-]?([a-z0-9.]+)'
|
1995
2751
|
model: '$1'
|
1996
2752
|
- regex: '(?<!AN)DROID ?([a-z0-9 ]*) Build'
|
1997
2753
|
model: 'DROID $1'
|
@@ -2002,21 +2758,21 @@ Motorola:
|
|
2002
2758
|
- regex: '(XOOM [^;/]*)Build'
|
2003
2759
|
device: 'tablet'
|
2004
2760
|
model: '$1'
|
2005
|
-
- regex: '(MZ[0-9]{3})
|
2761
|
+
- regex: '(MZ[0-9]{3})[);/ ]'
|
2006
2762
|
device: 'tablet'
|
2007
2763
|
model: '$1'
|
2008
|
-
- regex: '((?:ME|MB|XT)[0-9]{3,4}(?:\(Defy\))?)
|
2764
|
+
- regex: '((?:ME|MB|XT)[0-9]{3,4}(?:\(Defy\))?)[);/ ]'
|
2009
2765
|
model: '$1'
|
2010
2766
|
|
2011
2767
|
# myphone
|
2012
2768
|
MyPhone:
|
2013
|
-
regex: '(?:MyPhone|MyPad)
|
2769
|
+
regex: '(?:MyPhone|MyPad) [^;/]+ Build'
|
2014
2770
|
device: 'smartphone'
|
2015
2771
|
models:
|
2016
|
-
- regex: 'MyPad (
|
2772
|
+
- regex: 'MyPad ([^;/]+) Build'
|
2017
2773
|
model: 'MyPad $1'
|
2018
2774
|
device: 'tablet'
|
2019
|
-
- regex: 'MyPhone (
|
2775
|
+
- regex: 'MyPhone ([^;/]+) Build'
|
2020
2776
|
model: '$1'
|
2021
2777
|
|
2022
2778
|
# M.T.T.
|
@@ -2048,15 +2804,44 @@ Newgen:
|
|
2048
2804
|
device: 'feature phone'
|
2049
2805
|
model: '$1'
|
2050
2806
|
|
2807
|
+
# Netgear
|
2808
|
+
Netgear:
|
2809
|
+
regex: 'GTV100'
|
2810
|
+
device: 'tv'
|
2811
|
+
models:
|
2812
|
+
- regex: 'GTV100'
|
2813
|
+
model: 'NeoTV Prime'
|
2814
|
+
|
2815
|
+
# NextBook
|
2816
|
+
NextBook:
|
2817
|
+
regex: 'Next[0-9]|NX785QC8G|NXM900MC|NX008HD8G|NX010HI8G|NXM908HC|NXM726'
|
2818
|
+
device: 'tablet'
|
2819
|
+
models:
|
2820
|
+
- regex: 'NX008HD8G'
|
2821
|
+
model: 'Premium 8 HD'
|
2822
|
+
- regex: 'NXM908HC'
|
2823
|
+
model: 'Premium 9'
|
2824
|
+
- regex: 'NX010HI8G'
|
2825
|
+
model: 'Premium 10 Hi'
|
2826
|
+
- regex: 'NX785QC8G'
|
2827
|
+
model: '8'
|
2828
|
+
- regex: 'NXM900MC'
|
2829
|
+
model: '8 HD'
|
2830
|
+
- regex: 'NXM726'
|
2831
|
+
model: 'Premium 7'
|
2832
|
+
|
2833
|
+
- regex: 'Next([0-9]+[^;/]+) Build'
|
2834
|
+
model: 'Next $1'
|
2835
|
+
|
2051
2836
|
# ngm
|
2052
2837
|
NGM:
|
2053
|
-
regex: 'NGM[_ ][a-z0-9]+|(Forward|Dynamic)[ _][^/;]+(?:Build|/)'
|
2838
|
+
regex: 'NGM[_ ][a-z0-9]+|(Forward|Dynamic)[ _]?[^/;]+(?:Build|/)'
|
2054
2839
|
device: 'smartphone'
|
2055
2840
|
models:
|
2056
|
-
- regex: '(
|
2057
|
-
model: '$1'
|
2058
|
-
- regex: '(
|
2059
|
-
model: '$1'
|
2841
|
+
- regex: '(Forward|Dynamic)[ _]?([^/;]+) Build'
|
2842
|
+
model: '$1 $2'
|
2843
|
+
- regex: '(Forward|Dynamic)[ _]?([^/;]+)/'
|
2844
|
+
model: '$1 $2'
|
2060
2845
|
- regex: 'NGM ([^;/]+) Build'
|
2061
2846
|
model: '$1'
|
2062
2847
|
- regex: 'NGM_([a-z0-9]+)'
|
@@ -2072,6 +2857,26 @@ Nexian:
|
|
2072
2857
|
- regex: 'S?Nexian-([a-z0-9]+)'
|
2073
2858
|
model: '$1'
|
2074
2859
|
|
2860
|
+
# Noain
|
2861
|
+
Noain:
|
2862
|
+
regex: 'NOAIN'
|
2863
|
+
device: 'smartphone'
|
2864
|
+
models:
|
2865
|
+
- regex: 'NOAIN[ _-]([^;/]+) Build'
|
2866
|
+
model: '$1'
|
2867
|
+
- regex: 'NOAIN[ _-]([^;/)]+)[;/)]'
|
2868
|
+
model: '$1'
|
2869
|
+
|
2870
|
+
# Nomi
|
2871
|
+
Nomi:
|
2872
|
+
regex: 'Nomi[ _-]'
|
2873
|
+
device: 'smartphone'
|
2874
|
+
models:
|
2875
|
+
- regex: 'Nomi[ _-]([^;/]+) Build'
|
2876
|
+
model: '$1'
|
2877
|
+
- regex: 'Nomi[ _-]([^;/)]+)[;/)]'
|
2878
|
+
model: '$1'
|
2879
|
+
|
2075
2880
|
# o2
|
2076
2881
|
O2:
|
2077
2882
|
regex: 'Xda|O2[ \-]|COCOON'
|
@@ -2103,29 +2908,108 @@ Onda:
|
|
2103
2908
|
|
2104
2909
|
# oppo
|
2105
2910
|
OPPO:
|
2106
|
-
regex: 'OPPO[ _]?([a-z0-9]+)|
|
2911
|
+
regex: '(?:OB-)?OPPO[ _]?([a-z0-9]+)|N1T|(?:X90[07][067]|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[);/ ]'
|
2107
2912
|
device: 'smartphone'
|
2108
2913
|
models:
|
2109
|
-
- regex: 'OPPO[ _]?
|
2110
|
-
model: '
|
2111
|
-
- regex: '
|
2914
|
+
- regex: '(?:OPPO[ _]?)?U707T?[);/ ]'
|
2915
|
+
model: 'Find Way S'
|
2916
|
+
- regex: '(?:OPPO[ _]?)?X909T?[);/ ]'
|
2917
|
+
model: 'Find 5'
|
2918
|
+
- regex: '(?:OPPO[ _]?)?X907[067][);/ ]'
|
2919
|
+
model: 'Find 7'
|
2920
|
+
- regex: '(?:OPPO[ _]?)?X900[067][);/ ]'
|
2112
2921
|
model: 'Find 7a'
|
2922
|
+
- regex: '(?:OPPO[ _]?)?R8006[);/ ]'
|
2923
|
+
model: 'R1L'
|
2924
|
+
- regex: '(?:OPPO[ _]?)?R800[07][);/ ]'
|
2925
|
+
model: 'R1S'
|
2926
|
+
- regex: '(?:OPPO[ _]?)?R8015[);/ ]'
|
2927
|
+
model: 'Find Guitar'
|
2928
|
+
- regex: '(?:OPPO[ _]?)?R810[679][);/ ]'
|
2929
|
+
model: 'R5'
|
2930
|
+
- regex: '(?:OPPO[ _]?)?R8111[);/ ]'
|
2931
|
+
model: 'Find Melody'
|
2932
|
+
- regex: '(?:OPPO[ _]?)?R8113[);/ ]'
|
2933
|
+
model: 'Piano'
|
2934
|
+
- regex: '(?:OPPO[ _]?)?R815[TW]?[);/ ]'
|
2935
|
+
model: 'Find Clover'
|
2936
|
+
- regex: '(?:OPPO[ _]?)?R821T?[);/ ]'
|
2937
|
+
model: 'Find Muse'
|
2938
|
+
- regex: '(?:OPPO[ _]?)?R827T?[);/ ]'
|
2939
|
+
model: 'Find 5 Mini'
|
2940
|
+
- regex: '(?:OPPO[ _]?)?R831[SL][);/ ]'
|
2941
|
+
model: 'Neo 5'
|
2942
|
+
- regex: '(?:OPPO[ _]?)?R831K[);/ ]'
|
2943
|
+
model: 'Neo 3'
|
2944
|
+
- regex: '(?:OPPO[ _]?)?R831T?[);/ ]'
|
2945
|
+
model: 'Neo'
|
2946
|
+
- regex: '(?:OPPO[ _]?)?N520[79][);/ ]'
|
2947
|
+
model: 'N3'
|
2948
|
+
- regex: '(?:OPPO[ _]?)?N5117[);/ ]'
|
2949
|
+
model: 'N1 Mini'
|
2950
|
+
|
2951
|
+
- regex: 'N1T?[);/ ]'
|
2952
|
+
model: 'N1T'
|
2953
|
+
device: 'phablet'
|
2954
|
+
|
2955
|
+
- regex: 'R([0-9]{3,4}[KSTW]?)[);/ ]' # valid model numbers are filtered in main regex
|
2956
|
+
model: 'R$1'
|
2957
|
+
|
2958
|
+
- regex: '(?:OB-)?OPPO[ _]?([a-z0-9]+)'
|
2959
|
+
model: '$1'
|
2113
2960
|
|
2114
2961
|
# Opsson
|
2115
2962
|
Opsson:
|
2116
|
-
regex: 'Opsson
|
2963
|
+
regex: 'Opsson|IUSAI'
|
2117
2964
|
device: 'smartphone'
|
2118
|
-
|
2965
|
+
models:
|
2966
|
+
- regex: 'IUSAI[ _]([^/;]+) Build'
|
2967
|
+
model: 'Iusai $1'
|
2968
|
+
- regex: 'IUSAI[ _]([^/;\)]+)[/;\)]'
|
2969
|
+
model: 'Iusai $1'
|
2970
|
+
- regex: 'Opsson[ _]([^/;]+) Build'
|
2971
|
+
model: '$1'
|
2972
|
+
- regex: '(?:Opsson-)?Opsson[ -_]([^/;]+)/'
|
2973
|
+
model: '$1'
|
2119
2974
|
|
2120
2975
|
# orange
|
2121
2976
|
Orange:
|
2122
|
-
regex: 'SPV[ \-]?([a-z0-9]+)|Orange ([^/;]+) Build'
|
2977
|
+
regex: 'SPV[ \-]?([a-z0-9]+)|Orange ([^/;]+) Build|SC/IHD92'
|
2123
2978
|
device: 'smartphone'
|
2124
2979
|
models:
|
2125
2980
|
- regex: 'Orange ([^/;]+) Build'
|
2126
2981
|
model: '$1'
|
2127
2982
|
- regex: 'SPV[ \-]?([a-z0-9]+)'
|
2128
2983
|
model: 'SPV $1'
|
2984
|
+
- regex: 'SC/IHD92'
|
2985
|
+
model: 'Livebox Play'
|
2986
|
+
device: 'tv' # set top box
|
2987
|
+
|
2988
|
+
# Ouki
|
2989
|
+
Ouki:
|
2990
|
+
regex: 'OUKI|OK[AU][0-9]+[a-z]* Build'
|
2991
|
+
device: 'smartphone'
|
2992
|
+
models:
|
2993
|
+
- regex: 'OUKI[ _-]?([^;/]+) Build'
|
2994
|
+
model: '$1'
|
2995
|
+
- regex: '([^;/)]+) Build/OUKI'
|
2996
|
+
model: '$1'
|
2997
|
+
- regex: 'OUKI[ _-]?([^;/)]+)[;/)]'
|
2998
|
+
model: '$1'
|
2999
|
+
- regex: '(OK[AU][0-9]+[a-z]*) Build'
|
3000
|
+
model: '$1'
|
3001
|
+
|
3002
|
+
# Overmax
|
3003
|
+
Overmax:
|
3004
|
+
regex: 'OV-[a-z]+(?:[^;/]+)? Build'
|
3005
|
+
device: 'tablet'
|
3006
|
+
models:
|
3007
|
+
- regex: 'OV-Vertis-([^;/]+) Build'
|
3008
|
+
model: 'OV-Vertis-$1'
|
3009
|
+
device: 'smartphone'
|
3010
|
+
|
3011
|
+
- regex: '(OV-[a-z]+(?:[^;/]+)?) Build'
|
3012
|
+
model: '$1'
|
2129
3013
|
|
2130
3014
|
# Oysters
|
2131
3015
|
Oysters:
|
@@ -2140,12 +3024,18 @@ Oysters:
|
|
2140
3024
|
|
2141
3025
|
# panasonic
|
2142
3026
|
Panasonic:
|
2143
|
-
regex: 'Panasonic'
|
3027
|
+
regex: 'Panasonic|PANATV[0-9]+|Viera/|P902i[);/ ]'
|
2144
3028
|
device: 'smartphone'
|
2145
3029
|
models:
|
3030
|
+
- regex: 'P902i[);/ ]'
|
3031
|
+
device: 'feature phone'
|
3032
|
+
model: 'P902i'
|
2146
3033
|
- regex: 'Panasonic MIL DLNA'
|
2147
3034
|
device: 'tv'
|
2148
3035
|
model: 'Viera Cast'
|
3036
|
+
- regex: 'PANATV[0-9]+|Viera/'
|
3037
|
+
device: 'tv'
|
3038
|
+
model: 'Smart TV'
|
2149
3039
|
- regex: 'Panasonic[ \-]?([a-z0-9]+)'
|
2150
3040
|
model: '$1'
|
2151
3041
|
- regex: 'portalmmm/2.0 (P[a-z0-9]+)'
|
@@ -2153,9 +3043,18 @@ Panasonic:
|
|
2153
3043
|
|
2154
3044
|
# philips
|
2155
3045
|
Philips:
|
2156
|
-
regex: 'Philips'
|
3046
|
+
regex: 'Philips|AND1E[);/ ]|NETTV/'
|
2157
3047
|
device: 'smartphone'
|
2158
3048
|
models:
|
3049
|
+
- regex: 'AND1E(?: TV)?[);/ ]'
|
3050
|
+
model: 'Android TV'
|
3051
|
+
device: 'tv'
|
3052
|
+
- regex: 'Philips, BDP([0-9]{4})'
|
3053
|
+
model: 'Blu-ray Player (BDP$1)'
|
3054
|
+
device: 'tv'
|
3055
|
+
- regex: '(NETTV/[0-9\.]{5})'
|
3056
|
+
model: 'NetTV Series'
|
3057
|
+
device: 'tv'
|
2159
3058
|
- regex: 'Philips-FISIO ([a-z0-9]+)'
|
2160
3059
|
model: 'Fisio $1'
|
2161
3060
|
- regex: 'Philips[ ]?([a-z0-9]+)'
|
@@ -2169,6 +3068,104 @@ phoneOne:
|
|
2169
3068
|
device: 'smartphone'
|
2170
3069
|
model: '$1'
|
2171
3070
|
|
3071
|
+
# Pioneer
|
3072
|
+
Pioneer:
|
3073
|
+
regex: 'Pioneer|.*; R1 Build'
|
3074
|
+
device: 'smartphone'
|
3075
|
+
models:
|
3076
|
+
- regex: '.*; R1 Build'
|
3077
|
+
model: 'R1'
|
3078
|
+
device: 'tablet'
|
3079
|
+
- regex: 'Pioneer[ _-]?([^;/]+) Build'
|
3080
|
+
model: '$1'
|
3081
|
+
- regex: 'Pioneer[ _-]?([^;/)]+)[;/)]'
|
3082
|
+
model: '$1'
|
3083
|
+
|
3084
|
+
|
3085
|
+
# PULID
|
3086
|
+
PULID:
|
3087
|
+
regex: 'PULID[ _]|F1[01357]\+? Build'
|
3088
|
+
device: 'smartphone'
|
3089
|
+
models:
|
3090
|
+
- regex: 'F(1[01357]\+?) Build'
|
3091
|
+
model: 'F$1'
|
3092
|
+
- regex: 'PULID[ _]([^;/]+) Build'
|
3093
|
+
model: '$1'
|
3094
|
+
- regex: 'PULID[ _]([a-z0-9_]+)\)'
|
3095
|
+
model: '$1'
|
3096
|
+
|
3097
|
+
# Point of View
|
3098
|
+
'Point of View':
|
3099
|
+
regex: 'POV_TV|POV_TAB|MOB-5045'
|
3100
|
+
device: 'tablet'
|
3101
|
+
models:
|
3102
|
+
- regex: 'POV_TV-HDMI-KB-01'
|
3103
|
+
model: 'HDMI Smart TV Dongle'
|
3104
|
+
device: 'tv'
|
3105
|
+
- regex: 'POV_TV-HDMI-200BT'
|
3106
|
+
model: 'Mini PC HDMI Dongle'
|
3107
|
+
device: 'tv'
|
3108
|
+
- regex: 'MOB-5045'
|
3109
|
+
model: 'Mobii Phone 5045'
|
3110
|
+
device: 'smartphone'
|
3111
|
+
- regex: 'POV_TAB-P506'
|
3112
|
+
model: 'ONYX 506 Navi'
|
3113
|
+
- regex: 'POV_TAB[_-]NAVI7[_-]3G[_-]M'
|
3114
|
+
model: 'ONYX 507 Navi'
|
3115
|
+
- regex: 'POV_TAB-P527S'
|
3116
|
+
model: 'ONYX 527S'
|
3117
|
+
- regex: 'POV_TAB-P547'
|
3118
|
+
model: 'ONYX 547 Navi'
|
3119
|
+
- regex: 'POV_TAB-PROTAB26'
|
3120
|
+
model: 'ProTab 26 XXL IPS'
|
3121
|
+
- regex: 'POV_TAB-PROTAB25XXL8?'
|
3122
|
+
model: 'ProTab 25XXL'
|
3123
|
+
- regex: 'POV_TAB-PL1015'
|
3124
|
+
model: 'Mobii 1015'
|
3125
|
+
|
3126
|
+
- regex: 'POV_TAB-PROTAB([a-z0-9]+)'
|
3127
|
+
model: 'ProTab $1'
|
3128
|
+
- regex: 'POV_TAB-P?([a-z0-9]+)'
|
3129
|
+
model: 'Mobii $1'
|
3130
|
+
|
3131
|
+
# Pomp
|
3132
|
+
Pomp:
|
3133
|
+
regex: 'POMP[ _-]'
|
3134
|
+
device: 'smartphone'
|
3135
|
+
models:
|
3136
|
+
- regex: 'POMP[ _-]([^;/]+) Build'
|
3137
|
+
model: '$1'
|
3138
|
+
- regex: 'POMP[ _-]([^;/)]+)[;/)]'
|
3139
|
+
model: '$1'
|
3140
|
+
|
3141
|
+
# ProScan
|
3142
|
+
ProScan:
|
3143
|
+
regex: 'PLT([^;/]+) Build'
|
3144
|
+
device: 'tablet'
|
3145
|
+
model: 'PLT$1'
|
3146
|
+
|
3147
|
+
# RCA Tablets
|
3148
|
+
'RCA Tablets':
|
3149
|
+
regex: 'RCT([^;/]+) Build'
|
3150
|
+
device: 'tablet'
|
3151
|
+
model: 'RCT$1'
|
3152
|
+
|
3153
|
+
# Readboy
|
3154
|
+
Readboy:
|
3155
|
+
regex: 'Readboy[ _-]'
|
3156
|
+
device: 'tablet'
|
3157
|
+
models:
|
3158
|
+
- regex: 'Readboy[ _-]([^;/]+) Build'
|
3159
|
+
model: '$1'
|
3160
|
+
- regex: 'Readboy[ _-]([^;/]+)[;/)]'
|
3161
|
+
model: '$1'
|
3162
|
+
|
3163
|
+
# Roku
|
3164
|
+
Roku:
|
3165
|
+
regex: 'Roku/DVP'
|
3166
|
+
device: 'tv'
|
3167
|
+
model: 'Digital Video Player'
|
3168
|
+
|
2172
3169
|
# Rover
|
2173
3170
|
Rover:
|
2174
3171
|
regex: 'Rover ([0-9]+)'
|
@@ -2191,19 +3188,25 @@ Siemens:
|
|
2191
3188
|
|
2192
3189
|
# Samsung
|
2193
3190
|
Samsung:
|
2194
|
-
regex: 'SAMSUNG|SC-(?:02C|04E|01F)|
|
3191
|
+
regex: 'SAMSUNG|Maple |SC-(?:02C|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'
|
2195
3192
|
device: 'smartphone'
|
2196
3193
|
models:
|
2197
3194
|
# explicit tv models
|
2198
3195
|
- regex: 'GT-B9150'
|
2199
3196
|
device: 'tv'
|
2200
3197
|
model: 'Home Sync'
|
3198
|
+
- regex: '(?:OTV-)?SMT-E5015'
|
3199
|
+
device: 'tv'
|
3200
|
+
model: 'SMT-E5015' # set top box
|
3201
|
+
- regex: 'Maple '
|
3202
|
+
device: 'tv'
|
3203
|
+
model: ''
|
2201
3204
|
|
2202
3205
|
# explicit tablet models
|
2203
|
-
- regex: '(?:SAMSUNG-)?GT-N5100'
|
3206
|
+
- regex: '(?:SAMSUNG-)?(?:GT-)?N5100'
|
2204
3207
|
device: 'tablet'
|
2205
3208
|
model: 'GALAXY Note 8.0"'
|
2206
|
-
- regex: '(?:SAMSUNG-)?GT-N5110'
|
3209
|
+
- regex: '(?:SAMSUNG-)?(?:GT-)?N5110'
|
2207
3210
|
device: 'tablet'
|
2208
3211
|
model: 'GALAXY Note 8.0" WiFi'
|
2209
3212
|
- regex: '(?:SAMSUNG-)?GT-N5120'
|
@@ -2388,6 +3391,8 @@ Samsung:
|
|
2388
3391
|
model: 'GALAXY S Advance'
|
2389
3392
|
- regex: '(?:SAMSUNG-)?GT-I910[08]'
|
2390
3393
|
model: 'GALAXY S II'
|
3394
|
+
- regex: '(?:SAMSUNG-)?ISW11SC'
|
3395
|
+
model: 'GALAXY S II WiMAX'
|
2391
3396
|
- regex: '(?:SAMSUNG-)?GT-I9103'
|
2392
3397
|
model: 'GALAXY R'
|
2393
3398
|
- regex: '(?:SAMSUNG-)?GT-I9105'
|
@@ -2400,7 +3405,7 @@ Samsung:
|
|
2400
3405
|
model: 'GALAXY S III'
|
2401
3406
|
- regex: '(?:SAMSUNG-)?(?:GT-I9305|SCH-R530)'
|
2402
3407
|
model: 'GALAXY S III LTE'
|
2403
|
-
- regex: '(?:SAMSUNG-)?(?:GT-I9505|SCH-I545|SCH-I959|SCH-R970)'
|
3408
|
+
- regex: '(?:SAMSUNG-)?(?:GT-I9505|SCH-I545|SCH-I959|SCH-R970|GALAXY-S4)'
|
2404
3409
|
model: 'GALAXY S4'
|
2405
3410
|
- regex: '(?:SAMSUNG-)?GT-I9506'
|
2406
3411
|
model: 'GALAXY S4 with LTE+'
|
@@ -2450,7 +3455,7 @@ Samsung:
|
|
2450
3455
|
model: 'GALAXY S5 mini'
|
2451
3456
|
- regex: '(?:SAMSUNG-)?SM-G9009D'
|
2452
3457
|
model: 'GALAXY S5 Dual-SIM'
|
2453
|
-
- regex: '(?:SAMSUNG-)?SM-G900'
|
3458
|
+
- regex: '(?:SAMSUNG-)?SM-G900|GALAXY-S5'
|
2454
3459
|
model: 'GALAXY S5'
|
2455
3460
|
- regex: '(?:SAMSUNG-)?SCH-I200'
|
2456
3461
|
model: 'GALAXY Stellar'
|
@@ -2460,6 +3465,8 @@ Samsung:
|
|
2460
3465
|
model: 'GALAXY Discover'
|
2461
3466
|
- regex: '(?:SAMSUNG-)?SCH-S738'
|
2462
3467
|
model: 'GALAXY Centura'
|
3468
|
+
- regex: 'vollo Vi86[);/ ]'
|
3469
|
+
model: 'Vollo Vi86'
|
2463
3470
|
|
2464
3471
|
# explicit phablet models
|
2465
3472
|
- regex: '(?:SAMSUNG-)?GT-I9060'
|
@@ -2498,7 +3505,7 @@ Samsung:
|
|
2498
3505
|
- regex: '(?:SAMSUNG-)?SM-N900(?:[05689][VQ]?|[AKLPSTV]|W8)?'
|
2499
3506
|
model: 'GALAXY Note 3'
|
2500
3507
|
device: 'phablet'
|
2501
|
-
- regex: '(?:SAMSUNG-)?SM-N910'
|
3508
|
+
- regex: '(?:SAMSUNG-)?SM-N910|N9100'
|
2502
3509
|
model: 'GALAXY Note 4'
|
2503
3510
|
device: 'phablet'
|
2504
3511
|
- regex: '(?:SAMSUNG-)?SM-N915'
|
@@ -2532,11 +3539,18 @@ Samsung:
|
|
2532
3539
|
model: '$1'
|
2533
3540
|
- regex: '((?:SCH|SGH|SPH|SHV|SHW|GT|SM)-[a-z0-9_\-]+)'
|
2534
3541
|
model: '$1'
|
3542
|
+
- regex: 'SMART-TV'
|
3543
|
+
device: 'tv'
|
3544
|
+
model: 'Smart TV'
|
3545
|
+
- regex: 'Galaxy ([^/;]+) Build'
|
3546
|
+
model: 'GALAXY $1'
|
3547
|
+
- regex: 'Galaxy ([a-z0-9]+)'
|
3548
|
+
model: 'GALAXY $1'
|
2535
3549
|
- regex: 'SAMSUNG[\-][ ]?([a-z0-9]+[\-_][a-z0-9]+)'
|
2536
3550
|
model: '$1'
|
2537
3551
|
- regex: 'SAMSUNG;[ ]?([a-z0-9]+[\-_][a-z0-9]+)'
|
2538
3552
|
model: '$1'
|
2539
|
-
- regex: 'SAMSUNG[ _/\-]?([a-z0-9\-]+)'
|
3553
|
+
- regex: 'SAMSUNG(?!Browser)[ _/\-]?([a-z0-9\-]+)'
|
2540
3554
|
model: '$1'
|
2541
3555
|
- regex: 'SAMSUNG;[ ]?([a-z0-9 ]+)'
|
2542
3556
|
model: '$1'
|
@@ -2544,18 +3558,53 @@ Samsung:
|
|
2544
3558
|
model: '$1'
|
2545
3559
|
- regex: 'SAM-([a-z0-9]+)'
|
2546
3560
|
model: 'SCH-$1'
|
2547
|
-
- regex: 'SMART-TV'
|
2548
|
-
device: 'tv'
|
2549
|
-
model: 'Smart TV'
|
2550
|
-
- regex: 'Galaxy ([^/;]+) Build'
|
2551
|
-
model: 'GALAXY $1'
|
2552
|
-
- regex: 'Galaxy ([a-z0-9]+)'
|
2553
|
-
model: 'GALAXY $1'
|
2554
3561
|
- regex: '(?:portalmmm|o2imode)/2\.0 ([SZ][a-z0-9]+)'
|
2555
3562
|
model: '$1'
|
2556
3563
|
- regex: 'sam([rua][0-9]+)'
|
2557
3564
|
model: 'SCH-$1'
|
2558
3565
|
|
3566
|
+
# Sencor
|
3567
|
+
Sencor:
|
3568
|
+
regex: 'Sencor|ELEMENT[ _]?(?:7|8|9\.7|10[ _]1)(?:[ _]?V[23])?[);/ ]|ELEMENT[ _]?(?:P[0-9]+)[);/ ]'
|
3569
|
+
device: 'tablet'
|
3570
|
+
models:
|
3571
|
+
# explicit tablet models
|
3572
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V3'
|
3573
|
+
model: 'Element 7 V3'
|
3574
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V2[ _]BASIC'
|
3575
|
+
model: 'Element 7 V2 Basic'
|
3576
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?7[ _]?V2'
|
3577
|
+
model: 'Element 7 V2'
|
3578
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]8[ _]?V3'
|
3579
|
+
model: 'Element 8 V3'
|
3580
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]8[ _]?V2'
|
3581
|
+
model: 'Element 8 V2'
|
3582
|
+
- regex: '(?:SENCOR[ _])?ELEMENT8'
|
3583
|
+
model: 'Element 8'
|
3584
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]9\.7[ _]?V3'
|
3585
|
+
model: 'Element 9.7 V3'
|
3586
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]9\.7[ _]?V2'
|
3587
|
+
model: 'Element 9.7 V2'
|
3588
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]9\.7'
|
3589
|
+
model: 'Element 9.7'
|
3590
|
+
- regex: '(?:SENCOR[ _])?ELEMENT10[ _]1'
|
3591
|
+
model: 'Element 10.1'
|
3592
|
+
|
3593
|
+
- regex: '(?:SENCOR[ _])?ELEMENT[ _]?P([0-9]+)'
|
3594
|
+
model: 'Element P$1'
|
3595
|
+
device: 'smartphone'
|
3596
|
+
|
3597
|
+
- regex: 'Sencor[ _]([^;/]+) Build'
|
3598
|
+
model: '$1'
|
3599
|
+
|
3600
|
+
# Skyworth
|
3601
|
+
Skyworth:
|
3602
|
+
regex: 'Sky_?worth'
|
3603
|
+
device: 'tv'
|
3604
|
+
models:
|
3605
|
+
- regex: 'Sky_?worth ([^;/]+) Build'
|
3606
|
+
model: '$1'
|
3607
|
+
|
2559
3608
|
# Smartfren
|
2560
3609
|
Smartfren:
|
2561
3610
|
regex: 'Smartfren|Androtab|Andromax|PD6D1J|AD682J|AD68[89]G|AD6B1H|AD9A1H|AD682H|AD683G'
|
@@ -2590,12 +3639,22 @@ Smartfren:
|
|
2590
3639
|
model: 'Andromax $1'
|
2591
3640
|
- regex: 'Andromax[ _\-]([a-z0-9]+)'
|
2592
3641
|
model: 'Andromax $1'
|
2593
|
-
- regex: 'Smartfren[ _\-]([
|
3642
|
+
- regex: 'Smartfren[ _\-]([^/;\)]+)(?: Build|[/;\)])'
|
2594
3643
|
model: '$1'
|
2595
3644
|
- regex: '(Androtab[^/;]+) Build'
|
2596
3645
|
model: '$1'
|
2597
3646
|
device: 'tablet'
|
2598
3647
|
|
3648
|
+
# Stonex
|
3649
|
+
Stonex:
|
3650
|
+
regex: 'STX[ -]([^;/]+)'
|
3651
|
+
device: 'smartphone'
|
3652
|
+
models:
|
3653
|
+
- regex: 'STX[ -]([^;/]+) Build'
|
3654
|
+
model: '$1'
|
3655
|
+
- regex: 'STX[ -]([a-z0-9_-]+)'
|
3656
|
+
model: '$1'
|
3657
|
+
|
2599
3658
|
# SuperSonic
|
2600
3659
|
SuperSonic:
|
2601
3660
|
regex: '(SC-[0-9]+[a-z]+)'
|
@@ -2608,9 +3667,47 @@ Sumvision:
|
|
2608
3667
|
device: 'tablet'
|
2609
3668
|
model: '$1'
|
2610
3669
|
|
3670
|
+
# SunVan
|
3671
|
+
SunVan:
|
3672
|
+
regex: 'SUNVAN[ _\-]'
|
3673
|
+
device: 'smartphone'
|
3674
|
+
models:
|
3675
|
+
- regex: 'SUNVAN[ _\-]?([^/;]+) Build'
|
3676
|
+
model: '$1'
|
3677
|
+
- regex: 'SUNVAN[ _\-]?([^);/ ]+)'
|
3678
|
+
model: '$1'
|
3679
|
+
|
3680
|
+
# Thomson
|
3681
|
+
Thomson:
|
3682
|
+
regex: '(?:Primo(7|8)|QM73[45]-8G|QM734-2|QM736-8G\(HD\)|8950|MID1002)[);/ ]|(?:Tlink|Every)[0-9]+'
|
3683
|
+
device: 'tablet'
|
3684
|
+
models:
|
3685
|
+
# already detected as manta device
|
3686
|
+
#- regex: 'MID1002'
|
3687
|
+
# model: 'MID1002'
|
3688
|
+
- regex : 'Primo(7|8)'
|
3689
|
+
model: 'Primo $1'
|
3690
|
+
- regex: 'QM734-2'
|
3691
|
+
model: 'QM734-2'
|
3692
|
+
- regex: 'QM734-8G'
|
3693
|
+
model: 'QM734-8G'
|
3694
|
+
- regex: 'QM735-8G'
|
3695
|
+
model: 'QM735-8G'
|
3696
|
+
- regex: 'QM736-8G\(HD\)'
|
3697
|
+
model: 'QM736-8G (HD)'
|
3698
|
+
- regex: '8950 Build'
|
3699
|
+
model: '3G 8950'
|
3700
|
+
|
3701
|
+
- regex: 'Tlink([0-9]+)'
|
3702
|
+
device: 'smartphone'
|
3703
|
+
model: 'Tlink$1'
|
3704
|
+
- regex: 'Every([0-9]+)'
|
3705
|
+
device: 'smartphone'
|
3706
|
+
model: 'Every$1'
|
3707
|
+
|
2611
3708
|
# pantech
|
2612
3709
|
Pantech:
|
2613
|
-
regex: 'Pantech|P[GN]-|PT-[a-z0-9]{3,}|TX[T]?[0-9]+|IM-[a-z0-9]+
|
3710
|
+
regex: 'Pantech|P[GN]-|PT-[a-z0-9]{3,}|TX[T]?[0-9]+|IM-[a-z0-9]+[);/ ]|ADR910L'
|
2614
3711
|
device: 'smartphone'
|
2615
3712
|
models:
|
2616
3713
|
# explicit smartphone models
|
@@ -2625,12 +3722,24 @@ Pantech:
|
|
2625
3722
|
model: '$1'
|
2626
3723
|
- regex: '(TX[T]?[0-9]+)'
|
2627
3724
|
model: '$1'
|
2628
|
-
- regex: '(IM-[a-z0-9]+)
|
3725
|
+
- regex: '(IM-[a-z0-9]+)[);/ ]'
|
2629
3726
|
model: '$1'
|
2630
3727
|
|
2631
|
-
#
|
3728
|
+
# Ployer
|
3729
|
+
Ployer:
|
3730
|
+
regex: 'MOMO([0-9]|miniS)'
|
3731
|
+
device: 'tablet'
|
3732
|
+
models:
|
3733
|
+
- regex: 'MOMOminiS'
|
3734
|
+
model: 'MOMO mini S'
|
3735
|
+
- regex: 'MOMO([0-9][^);/]*) Build'
|
3736
|
+
model: 'MOMO $1'
|
3737
|
+
- regex: 'MOMO([0-9][^);/]*)[);/]'
|
3738
|
+
model: 'MOMO $1'
|
3739
|
+
|
3740
|
+
# Polaroid
|
2632
3741
|
Polaroid:
|
2633
|
-
regex: 'Polaroid|(?:PMID|MIDC)[0-9a-z]+
|
3742
|
+
regex: 'Polaroid|(?:PMID|MIDC)[0-9a-z]+[);/ ]|MID(?:1014|0714)|PRO[VG]?(?:[0-9]{3,}[a-z]*|[0-9]{2}[a-z])'
|
2634
3743
|
device: 'tablet'
|
2635
3744
|
models:
|
2636
3745
|
# explicit smartphone models
|
@@ -2649,7 +3758,7 @@ Polaroid:
|
|
2649
3758
|
device: 'smartphone'
|
2650
3759
|
- regex: '(MID(?:1014|0714))'
|
2651
3760
|
model: '$1'
|
2652
|
-
- regex: '((?:PMID|MIDC)[0-9a-z]+)
|
3761
|
+
- regex: '((?:PMID|MIDC)[0-9a-z]+)[);/ ]'
|
2653
3762
|
model: '$1'
|
2654
3763
|
- regex: 'Polaroid'
|
2655
3764
|
model: ''
|
@@ -2659,7 +3768,7 @@ PolyPad:
|
|
2659
3768
|
regex: 'POLY ?PAD'
|
2660
3769
|
device: 'tablet'
|
2661
3770
|
models:
|
2662
|
-
- regex: 'POLY ?PAD[_ \.]([a-z0-9]+)
|
3771
|
+
- regex: 'POLY ?PAD[_ \.]([a-z0-9]+)[);/ ]'
|
2663
3772
|
model: '$1'
|
2664
3773
|
- regex: 'POLY ?PAD[_\.]([a-z0-9]+)'
|
2665
3774
|
model: '$1'
|
@@ -2674,12 +3783,12 @@ Positivo:
|
|
2674
3783
|
|
2675
3784
|
# Prestigio
|
2676
3785
|
Prestigio:
|
2677
|
-
regex: '(?:PMP|PAP)[0-9]+[a-z0-9_]+
|
3786
|
+
regex: '(?:PMP|PAP)[0-9]+[a-z0-9_]+[);/ ]'
|
2678
3787
|
device: 'tablet'
|
2679
3788
|
models:
|
2680
|
-
- regex: '(PMP[0-9]+[a-z0-9_]+)
|
3789
|
+
- regex: '(PMP[0-9]+[a-z0-9_]+)[);/ ]'
|
2681
3790
|
model: '$1'
|
2682
|
-
- regex: '(PAP[0-9]+[a-z0-9_]+)
|
3791
|
+
- regex: '(PAP[0-9]+[a-z0-9_]+(?: DUO)?)[);/ ]'
|
2683
3792
|
model: '$1'
|
2684
3793
|
device: 'smartphone'
|
2685
3794
|
|
@@ -2717,6 +3826,22 @@ Qilive:
|
|
2717
3826
|
model: '$1'
|
2718
3827
|
device: 'tablet'
|
2719
3828
|
|
3829
|
+
# QMobile
|
3830
|
+
QMobile:
|
3831
|
+
regex: 'QMobile|QTab|Q-Smart'
|
3832
|
+
device: 'smartphone'
|
3833
|
+
models:
|
3834
|
+
- regex: 'QTab[ _-]([^;/]+) Build'
|
3835
|
+
model: '$1 Tab'
|
3836
|
+
device: 'tablet'
|
3837
|
+
- regex: 'QTab[ _-]([^;/)]+)[;/)]'
|
3838
|
+
model: '$1 Tab'
|
3839
|
+
device: 'tablet'
|
3840
|
+
- regex: '(?:QMobile|Q-Smart)[ _-]([^;/]+) Build'
|
3841
|
+
model: '$1'
|
3842
|
+
- regex: '(?:QMobile|Q-Smart)[ _-]([^;/)]+)[;/)]'
|
3843
|
+
model: '$1'
|
3844
|
+
|
2720
3845
|
# Quechua
|
2721
3846
|
Quechua:
|
2722
3847
|
regex: 'Quechua Phone 5'
|
@@ -2740,7 +3865,7 @@ Turbo-X:
|
|
2740
3865
|
regex: 'Turbo-X'
|
2741
3866
|
device: 'smartphone'
|
2742
3867
|
models:
|
2743
|
-
- regex: 'Turbo-X Ice
|
3868
|
+
- regex: 'Turbo-X Ice[);/ ]'
|
2744
3869
|
device: 'tablet'
|
2745
3870
|
model: 'Ice'
|
2746
3871
|
- regex: 'Turbo-X Tablet([^;/]+) Build'
|
@@ -2761,7 +3886,7 @@ Spice:
|
|
2761
3886
|
|
2762
3887
|
# Sharp
|
2763
3888
|
Sharp:
|
2764
|
-
regex: 'SHARP|SBM|SH
|
3889
|
+
regex: 'SHARP|SBM|SH-?[0-9]+[a-z]?[);/ ]|AQUOS'
|
2765
3890
|
device: 'smartphone'
|
2766
3891
|
models:
|
2767
3892
|
# explicit smartphone models
|
@@ -2775,6 +3900,9 @@ Sharp:
|
|
2775
3900
|
device: 'tablet'
|
2776
3901
|
model: 'Sharp Aquos Pad'
|
2777
3902
|
|
3903
|
+
- regex: '(LC-(?:[0-9]{2})[a-z0-9]+)(?:[);/ ]|$)'
|
3904
|
+
device: 'tv'
|
3905
|
+
model: '$1'
|
2778
3906
|
- regex: 'SHARP-AQUOS|AQUOSBrowser'
|
2779
3907
|
device: 'tv'
|
2780
3908
|
model: 'Aquos Net Plus'
|
@@ -2782,7 +3910,7 @@ Sharp:
|
|
2782
3910
|
model: '$1'
|
2783
3911
|
- regex: '(?:SHARP|SBM)([a-z0-9]+)'
|
2784
3912
|
model: '$1'
|
2785
|
-
- regex: '(SH
|
3913
|
+
- regex: '(SH-?[0-9]+[a-z]?)[);/ ]'
|
2786
3914
|
model: '$1'
|
2787
3915
|
|
2788
3916
|
# Softbank
|
@@ -2797,27 +3925,57 @@ Softbank:
|
|
2797
3925
|
- regex: 'J-PHONE/[0-9]\.[0-9]/([a-z0-9\-]+)'
|
2798
3926
|
model: '$1'
|
2799
3927
|
|
3928
|
+
# Star
|
3929
|
+
Star:
|
3930
|
+
regex: 'N(9[5678]00|8800|9000|9977)[);/ ]'
|
3931
|
+
device: 'smartphone'
|
3932
|
+
models:
|
3933
|
+
- regex: 'N9000'
|
3934
|
+
model: 'Note 3'
|
3935
|
+
|
3936
|
+
- regex: 'N(9[5678]00|8800|9977)[);/ ]'
|
3937
|
+
model: 'N$1'
|
3938
|
+
|
2800
3939
|
# Kindle
|
2801
|
-
|
2802
|
-
regex: 'KF(?:OT|TT|JWI|JWA|SOWI|
|
3940
|
+
Amazon:
|
3941
|
+
regex: 'KF(?:OT|TT|JWI|JWA|SOWI|A[PRS]WI|THWI|SAW[IA])[);/ ]|Kindle|Silk/\d+\.\d+|Amazon (?:Tate|Jem)|AFT[BM]|SD4930UR'
|
2803
3942
|
device: 'tablet'
|
2804
3943
|
models:
|
2805
|
-
- regex: '
|
3944
|
+
- regex: 'AFTB'
|
3945
|
+
model: 'Fire TV'
|
3946
|
+
device: 'tv'
|
3947
|
+
- regex: 'AFTM'
|
3948
|
+
model: 'Fire TV stick'
|
3949
|
+
device: 'tv'
|
3950
|
+
- regex: 'KFTT[);/ ]'
|
2806
3951
|
model: 'Kindle Fire HD'
|
2807
|
-
- regex: 'KFJWI
|
3952
|
+
- regex: 'KFJWI[);/ ]|Amazon Jem'
|
2808
3953
|
model: 'Kindle Fire HD 8.9" WiFi'
|
2809
|
-
- regex: 'KFJWA
|
3954
|
+
- regex: 'KFJWA[);/ ]'
|
2810
3955
|
model: 'Kindle Fire HD 8.9" 4G'
|
2811
|
-
- regex: 'KFSOWI
|
3956
|
+
- regex: 'KFSOWI[);/ ]|Amazon Tate'
|
2812
3957
|
model: 'Kindle Fire HD 7" WiFi'
|
2813
|
-
- regex: 'KFTHWI
|
3958
|
+
- regex: 'KFTHWI[);/ ]'
|
2814
3959
|
model: 'Kindle Fire HDX 7" WiFi'
|
2815
|
-
- regex: 'KFTHWA
|
3960
|
+
- regex: 'KFTHWA[);/ ]'
|
2816
3961
|
model: 'Kindle Fire HDX 7" 4G'
|
2817
|
-
- regex: 'KFAPWI
|
3962
|
+
- regex: 'KFAPWI[);/ ]'
|
2818
3963
|
model: 'Kindle Fire HDX 8.9" WiFi'
|
2819
|
-
- regex: 'KFAPWA
|
3964
|
+
- regex: 'KFAPWA[);/ ]'
|
2820
3965
|
model: 'Kindle Fire HDX 8.9" 4G'
|
3966
|
+
- regex: 'KFARWI[);/ ]'
|
3967
|
+
model: 'Fire HD 6'
|
3968
|
+
- regex: 'KFASWI[);/ ]'
|
3969
|
+
model: 'Fire HD 7'
|
3970
|
+
- regex: 'KFSAWI[);/ ]'
|
3971
|
+
model: 'Fire HDX 8.9'
|
3972
|
+
- regex: 'KFSAWA[);/ ]'
|
3973
|
+
model: 'Fire HDX 8.9 4G'
|
3974
|
+
- regex: 'SD4930UR'
|
3975
|
+
model: 'Fire Phone'
|
3976
|
+
device: 'smartphone'
|
3977
|
+
|
3978
|
+
|
2821
3979
|
- regex: 'KFOT|Kindle Fire|Silk/\d+\.\d+'
|
2822
3980
|
model: 'Kindle Fire'
|
2823
3981
|
- regex: 'Kindle'
|
@@ -2847,9 +4005,13 @@ T-Mobile:
|
|
2847
4005
|
|
2848
4006
|
# Tcl
|
2849
4007
|
TCL:
|
2850
|
-
regex: 'TCL-
|
4008
|
+
regex: 'TCL[ -][a-z0-9]+|TCL[_ -][^;/]+ Build'
|
2851
4009
|
device: 'smartphone'
|
2852
|
-
|
4010
|
+
models:
|
4011
|
+
- regex: 'TCL[_ -]([^;/]+) Build'
|
4012
|
+
model: '$1'
|
4013
|
+
- regex: 'TCL[ -]([a-z0-9]+)'
|
4014
|
+
model: '$1'
|
2853
4015
|
|
2854
4016
|
# Tecno Mobile
|
2855
4017
|
Tecno Mobile:
|
@@ -2873,6 +4035,16 @@ teXet:
|
|
2873
4035
|
device: 'tablet'
|
2874
4036
|
model: '$1'
|
2875
4037
|
|
4038
|
+
# Telenor
|
4039
|
+
Telenor:
|
4040
|
+
regex: 'Telenor'
|
4041
|
+
device: 'smartphone'
|
4042
|
+
models:
|
4043
|
+
- regex: 'Telenor[ _]([^;/]+) Build'
|
4044
|
+
model: '$1'
|
4045
|
+
- regex: 'Telenor[ _]([^a-z0-9_]+)\)'
|
4046
|
+
model: '$1'
|
4047
|
+
|
2876
4048
|
# Telit
|
2877
4049
|
Telit:
|
2878
4050
|
regex: 'Telit'
|
@@ -2883,6 +4055,16 @@ Telit:
|
|
2883
4055
|
- regex: 'Telit[\-_]?([a-z0-9]+)'
|
2884
4056
|
model: '$1'
|
2885
4057
|
|
4058
|
+
# ThL
|
4059
|
+
ThL:
|
4060
|
+
regex: 'ThL[ _-]'
|
4061
|
+
device: 'smartphone'
|
4062
|
+
models:
|
4063
|
+
- regex: 'ThL[ _-]*([^;/]+) Build'
|
4064
|
+
model: '$1'
|
4065
|
+
- regex: 'ThL[ _-]*([^ ;/)]+)[ ;/)]'
|
4066
|
+
model: '$1'
|
4067
|
+
|
2886
4068
|
# Tianyu
|
2887
4069
|
TIANYU:
|
2888
4070
|
regex: 'TIANYU'
|
@@ -2905,6 +4087,46 @@ Toplux:
|
|
2905
4087
|
device: 'feature phone'
|
2906
4088
|
model: '$1'
|
2907
4089
|
|
4090
|
+
# Trevi
|
4091
|
+
Trevi:
|
4092
|
+
regex: 'Trevi[ _]|TAB[ _]10[ _]3G[ _]V16|TAB[ _](7|8)[ _]3G[ _]V8|TAB9 3G|MINITAB 3GV|Phablet[ _](?:4|4\.5|5|5\,3|6)[ _]?[C|S|Q]|REVERSE[ _]5\.5[ _]?Q'
|
4093
|
+
device: 'tablet'
|
4094
|
+
models:
|
4095
|
+
- regex: 'TAB[ _]?(7|8)[ _]3G[ _]V8'
|
4096
|
+
model: 'TAB $1 3G V8'
|
4097
|
+
- regex: 'TAB[ _]?9[ _]3G[ _]V8'
|
4098
|
+
model: 'TAB 9 3G V8'
|
4099
|
+
- regex: 'TAB[ _]?9[ _]3G'
|
4100
|
+
model: 'TAB 9 3G'
|
4101
|
+
- regex: 'TAB[ _]10[ _]3G[ _]V16'
|
4102
|
+
model: 'TAB 10 3G V16'
|
4103
|
+
- regex: 'MINITAB 3GV'
|
4104
|
+
model: 'MINITAB 3G V'
|
4105
|
+
- regex: '(?:Trevi_)?Phablet[ _]4[ _]?C'
|
4106
|
+
model: 'Phablet 4 C'
|
4107
|
+
device: 'smartphone'
|
4108
|
+
- regex: '(?:Trevi_)?Phablet[ _]4[ _]?S'
|
4109
|
+
model: 'Phablet 4 S'
|
4110
|
+
device: 'smartphone'
|
4111
|
+
- regex: '(?:Trevi_)?Phablet[ _]4.5[ _]?Q'
|
4112
|
+
model: 'Phablet 4.5Q'
|
4113
|
+
device: 'smartphone'
|
4114
|
+
- regex: '(?:Trevi_)?PHABLET[ _]5[ _]?S'
|
4115
|
+
model: 'Phablet 5 S'
|
4116
|
+
device: 'smartphone'
|
4117
|
+
- regex: '(?:Trevi_)?PHABLET[ _]5,3[ _]?Q'
|
4118
|
+
model: 'Phablet 5.3 Q'
|
4119
|
+
device: 'phablet'
|
4120
|
+
- regex: '(?:Trevi_)?REVERSE[ _]5.5[ _]?Q'
|
4121
|
+
model: 'Phablet 5.5 Q REVERSE'
|
4122
|
+
device: 'phablet'
|
4123
|
+
- regex: '(?:Trevi_)?PHABLET[ _]6[ _]?S'
|
4124
|
+
model: 'Phablet 6 S'
|
4125
|
+
device: 'phablet'
|
4126
|
+
|
4127
|
+
- regex: 'Trevi[_]([^;/]+) Build'
|
4128
|
+
model: '$1'
|
4129
|
+
|
2908
4130
|
#TVC
|
2909
4131
|
TVC:
|
2910
4132
|
regex: '(NuclearSX-SP5)'
|
@@ -2924,15 +4146,36 @@ UTStarcom:
|
|
2924
4146
|
device: 'feature phone'
|
2925
4147
|
model: '$1'
|
2926
4148
|
|
4149
|
+
# Uniscope
|
4150
|
+
Uniscope:
|
4151
|
+
regex: 'Uniscope'
|
4152
|
+
device: 'smartphone'
|
4153
|
+
models:
|
4154
|
+
- regex: 'Uniscope[ _\-]?([^/;]+) Build'
|
4155
|
+
model: '$1'
|
4156
|
+
- regex: 'Uniscope[ _\-]?([^);/ ]+)'
|
4157
|
+
model: '$1'
|
4158
|
+
|
4159
|
+
# Vastking
|
4160
|
+
Vastking:
|
4161
|
+
regex: 'M910A[);/ ]'
|
4162
|
+
device: 'tablet'
|
4163
|
+
models:
|
4164
|
+
- regex: 'M910A[);/ ]'
|
4165
|
+
model: 'M910A'
|
4166
|
+
|
2927
4167
|
# ViewSonic
|
2928
4168
|
ViewSonic:
|
2929
|
-
regex: 'ViewSonic|VSD[0-9]+
|
4169
|
+
regex: 'ViewSonic|VSD[0-9]+[);/ ]|ViewPad|ViewPhone'
|
2930
4170
|
device: 'smart display'
|
2931
4171
|
models:
|
4172
|
+
- regex: '(?:ViewSonic-)?ViewPhone ?([^;/]+) Build'
|
4173
|
+
model: 'ViewPhone $1'
|
4174
|
+
device: 'smartphone'
|
2932
4175
|
- regex: '(?:ViewSonic-)?ViewPad ?([^;/]+) Build'
|
2933
4176
|
model: 'ViewPad $1'
|
2934
4177
|
device: 'tablet'
|
2935
|
-
- regex: '(VSD[0-9]+)
|
4178
|
+
- regex: '(VSD[0-9]+)[);/ ]'
|
2936
4179
|
model: '$1'
|
2937
4180
|
|
2938
4181
|
# Vitelcom
|
@@ -2949,7 +4192,7 @@ Vitelcom:
|
|
2949
4192
|
|
2950
4193
|
# VK Mobile
|
2951
4194
|
VK Mobile:
|
2952
|
-
regex: 'VK[\-]?([a-z0-9 ]+)'
|
4195
|
+
regex: 'VK[\-]?([a-z0-9 ]+)[ ;\)/]'
|
2953
4196
|
device: 'feature phone'
|
2954
4197
|
model: '$1'
|
2955
4198
|
|
@@ -2961,9 +4204,74 @@ Vertu:
|
|
2961
4204
|
|
2962
4205
|
# Videocon
|
2963
4206
|
Videocon:
|
2964
|
-
regex: 'Videocon[_ ]
|
4207
|
+
regex: 'Videocon[_ \-]|VT75C'
|
2965
4208
|
device: 'smartphone'
|
2966
|
-
|
4209
|
+
models:
|
4210
|
+
- regex: 'Videocon[_ \-]([a-z0-9]+)'
|
4211
|
+
model: '$1'
|
4212
|
+
- regex: 'VT75C[/;) ]'
|
4213
|
+
model: 'VT75C'
|
4214
|
+
|
4215
|
+
# Vodafone
|
4216
|
+
Vodafone:
|
4217
|
+
regex: 'Vodafone[ _-]|Smart ?Tab ?(?:III? ?)?(?:|4G|7|10)[);/ -]|VodafoneSmartChat'
|
4218
|
+
device: 'smartphone'
|
4219
|
+
models:
|
4220
|
+
- regex: 'Vodafone[ _]875[);/ ]'
|
4221
|
+
model: 'Smart Mini' # Alcatel
|
4222
|
+
- regex: 'Vodafone[ _]975N?[);/ ]'
|
4223
|
+
model: 'Smart 3' # Alcatel
|
4224
|
+
- regex: 'Vodafone[ _]785[);/ ]'
|
4225
|
+
model: 'Smart 4 Mini'
|
4226
|
+
- regex: 'Vodafone[ _]890N[);/ ]'
|
4227
|
+
model: 'Smart 4 Turbo' # Coolpad 3601U
|
4228
|
+
- regex: 'Vodafone[ _]985N[);/ ]'
|
4229
|
+
model: 'Smart 4 Power'
|
4230
|
+
- regex: 'VodafoneSmartChat'
|
4231
|
+
model: 'Smart Chat'
|
4232
|
+
|
4233
|
+
# explicit table models
|
4234
|
+
- regex: 'Smart ?Tab ?3G'
|
4235
|
+
device: 'tablet'
|
4236
|
+
model: 'Smart Tab 3G'
|
4237
|
+
- regex: 'Smart ?Tab ?4G'
|
4238
|
+
device: 'tablet'
|
4239
|
+
model: 'Smart Tab 4G' # Alcatel
|
4240
|
+
- regex: 'SmartTab7[);/ -]'
|
4241
|
+
model: 'Smart Tab 7' # ZTE
|
4242
|
+
device: 'tablet'
|
4243
|
+
- regex: 'SmartTab10[);/ -]'
|
4244
|
+
model: 'Smart Tab 10' # ZTE
|
4245
|
+
device: 'tablet'
|
4246
|
+
- regex: 'Smart ?Tab ?II ?7'
|
4247
|
+
model: 'Smart Tab II 7' # Lenovo
|
4248
|
+
device: 'tablet'
|
4249
|
+
- regex: 'Smart ?Tab ?II ?10'
|
4250
|
+
model: 'Smart Tab II 10' # Lenovo
|
4251
|
+
device: 'tablet'
|
4252
|
+
- regex: 'Smart ?Tab ?III ?7'
|
4253
|
+
model: 'Smart Tab III 7' # Lenovo
|
4254
|
+
device: 'tablet'
|
4255
|
+
- regex: 'Smart ?Tab ?III ?10'
|
4256
|
+
model: 'Smart Tab III 10' # Lenovo
|
4257
|
+
device: 'tablet'
|
4258
|
+
|
4259
|
+
- regex: 'Vodafone[ _-]([^;/]+) Build'
|
4260
|
+
model: '$1'
|
4261
|
+
- regex: 'Vodafone[ _-]([a-z0-9_-]+)'
|
4262
|
+
model: '$1'
|
4263
|
+
|
4264
|
+
# Voto
|
4265
|
+
Voto:
|
4266
|
+
regex: 'VOTO[ _\-]|VT8[89]8[;/) ]'
|
4267
|
+
device: 'smartphone'
|
4268
|
+
models:
|
4269
|
+
- regex: 'VOTO[ _\-]?([^/;]+) Build'
|
4270
|
+
model: '$1'
|
4271
|
+
- regex: 'VOTO[ _\-]?([^);/ ]+)'
|
4272
|
+
model: '$1'
|
4273
|
+
- regex: '(VT8[89]8)[;/) ]'
|
4274
|
+
model: '$1'
|
2967
4275
|
|
2968
4276
|
# Voxtel
|
2969
4277
|
Voxtel:
|
@@ -2971,15 +4279,53 @@ Voxtel:
|
|
2971
4279
|
device: 'feature phone'
|
2972
4280
|
model: '$1'
|
2973
4281
|
|
4282
|
+
# Walton
|
4283
|
+
Walton:
|
4284
|
+
regex: 'Walton|Walpad|Primo[ _](C[1234]?|D[12345]|E[12345]|EF[23]?|EM|F[123456]i?|G[12345]|GF[234]?|GH[23]?|GM|H[23]|HM|N|N1|NF|NX2?|R[123]|RH2?|RM2?|RX[23]?|S[1234]|V1|X[123]|Z|ZX)'
|
4285
|
+
device: 'smartphone'
|
4286
|
+
models:
|
4287
|
+
- regex: 'Walpad ([^;/]+) Build'
|
4288
|
+
device: 'tablet'
|
4289
|
+
model: 'Primo Walpad $1'
|
4290
|
+
- regex: 'Walton[ _]([^;/]+) Build'
|
4291
|
+
model: '$1'
|
4292
|
+
- regex: 'Walton[ _]([^;/]+)\)'
|
4293
|
+
model: '$1'
|
4294
|
+
- regex: 'Primo[ _]([^;/]+) Build'
|
4295
|
+
model: 'Primo $1'
|
4296
|
+
- regex: 'Primo[ _]([0-9a-z]+)'
|
4297
|
+
model: 'Primo $1'
|
4298
|
+
|
2974
4299
|
# Wellcom
|
2975
4300
|
WellcoM:
|
2976
4301
|
regex: 'WELLCOM[ _\-/]([a-z0-9]+)'
|
2977
4302
|
device: 'smartphone'
|
2978
4303
|
model: '$1'
|
2979
4304
|
|
4305
|
+
# Wexler
|
4306
|
+
Wexler:
|
4307
|
+
regex: 'Wexler|TAB[ _]10Q[);/ ]|ZEN[ _](?:4\.5|4\.7|5)'
|
4308
|
+
device: 'tablet'
|
4309
|
+
models:
|
4310
|
+
- regex: '(?:Wexler[ _\-\.])?ZEN[ _]4\.5[);/ ]'
|
4311
|
+
model: 'ZEN 4.5'
|
4312
|
+
device: 'smartphone'
|
4313
|
+
- regex: '(?:Wexler[ _\-\.])?ZEN[ _]4\.7[);/ ]'
|
4314
|
+
model: 'ZEN 4.7'
|
4315
|
+
device: 'smartphone'
|
4316
|
+
- regex: '(?:Wexler[ _\-\.])?ZEN[ _]5[);/ ]'
|
4317
|
+
model: 'ZEN 5'
|
4318
|
+
device: 'smartphone'
|
4319
|
+
- regex: '(?:Wexler[ _\-\.])?TAB[ _]10Q[);/ ]'
|
4320
|
+
model: 'TAB 10Q'
|
4321
|
+
- regex: 'Wexler[ _\-\.]([^;/]+) Build'
|
4322
|
+
model: '$1'
|
4323
|
+
- regex: 'Wexler[ _\-\.]([^);/]+)[);/]'
|
4324
|
+
model: '$1'
|
4325
|
+
|
2980
4326
|
# Wiko
|
2981
4327
|
Wiko:
|
2982
|
-
regex: '(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink.*|Highway.*|Iggy|Stairway|Rainbow|Darkside|Darkmoon|Darkfull|Darknight|Sublim|Ozzy|Barry|Birdy|Bloom|Getaway|Goa|Kite|Lenny|Slide|Sunset|Wax) Build'
|
4328
|
+
regex: '(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink.*|Highway.*|Iggy|Stairway|Rainbow|Darkside|Darkmoon|Darkfull|Darknight|Sublim|Ozzy|JIMMY|Barry|Birdy|Bloom|Getaway|Goa|Kite|Lenny|Slide|Sunset|Wax|Ridge(?: Fab)?)(?: 4G)? Build'
|
2983
4329
|
device: 'smartphone'
|
2984
4330
|
models:
|
2985
4331
|
- regex: '(?:WIKO-)?CINK_([a-z0-9_]+)'
|
@@ -2994,8 +4340,16 @@ Wiko:
|
|
2994
4340
|
model: 'Iggy'
|
2995
4341
|
- regex: '(?:WIKO-)?Stairway Build'
|
2996
4342
|
model: 'Stairway'
|
4343
|
+
- regex: '(?:WIKO-)?Ridge Build'
|
4344
|
+
model: 'Ridge'
|
4345
|
+
- regex: '(?:WIKO-)?Ridge Fab 4G Build'
|
4346
|
+
model: 'Ridge Fab 4G'
|
4347
|
+
- regex: '(?:WIKO-)?Ridge 4G Build'
|
4348
|
+
model: 'Ridge 4G'
|
2997
4349
|
- regex: '(?:WIKO-)?Rainbow Build'
|
2998
4350
|
model: 'Rainbow'
|
4351
|
+
- regex: '(?:WIKO-)?Rainbow 4G Build'
|
4352
|
+
model: 'Rainbow 4G'
|
2999
4353
|
- regex: '(?:WIKO-)?Darkside Build'
|
3000
4354
|
model: 'Darkside'
|
3001
4355
|
- regex: '(?:WIKO-)?Darkmoon Build'
|
@@ -3014,6 +4368,8 @@ Wiko:
|
|
3014
4368
|
model: 'Birdy'
|
3015
4369
|
- regex: '(?:WIKO-)?Bloom Build'
|
3016
4370
|
model: 'Bloom'
|
4371
|
+
- regex: '(?:WIKO-)?JIMMY Build'
|
4372
|
+
model: 'Jimmy'
|
3017
4373
|
- regex: '(?:WIKO-)?Getaway Build'
|
3018
4374
|
model: 'Getaway'
|
3019
4375
|
- regex: '(?:WIKO-)?Goa Build'
|
@@ -3048,23 +4404,57 @@ Wonu:
|
|
3048
4404
|
|
3049
4405
|
# Woxter
|
3050
4406
|
Woxter:
|
3051
|
-
regex: 'Woxter (
|
4407
|
+
regex: 'Woxter ([^/;]+) Build'
|
3052
4408
|
device: 'tablet'
|
3053
4409
|
model: '$1'
|
3054
4410
|
|
3055
4411
|
#Xiaomi
|
3056
4412
|
Xiaomi:
|
3057
|
-
regex: '(MI [a-z0-9]+|MI-One[ _]
|
4413
|
+
regex: 'Xiaomi|(MI [a-z0-9]+|MI-One[ _]?[a-z0-9]+)[);/ ]|HM ([^/;]+) Build|(2014501|2014011|201481[13]|201302[23]|2013061) Build|Redmi'
|
3058
4414
|
device: 'smartphone'
|
3059
4415
|
models:
|
3060
|
-
|
4416
|
+
# specific smartphone models
|
4417
|
+
- regex: 'Xiaomi_2014501|2014501 Build'
|
4418
|
+
model: 'Hongmi 4G'
|
4419
|
+
- regex: 'Xiaomi_2014011|2014011 Build'
|
4420
|
+
model: 'Hongmi 1S'
|
4421
|
+
- regex: 'Xiaomi_201481[13]|201481[13] Build'
|
4422
|
+
model: 'Hongmi 2 4G'
|
4423
|
+
- regex: 'Xiaomi_201302[23]|201302[23] Build'
|
4424
|
+
model: 'Hongmi'
|
4425
|
+
- regex: 'Xiaomi_2013061|2013061 Build'
|
4426
|
+
model: 'MI 3'
|
4427
|
+
|
4428
|
+
- regex: 'Redmi Note ([^;/]+)? Build'
|
4429
|
+
model: 'Redmi Note $1'
|
4430
|
+
device: 'phablet'
|
4431
|
+
- regex: 'Redmi ([^;/]+)? Build'
|
4432
|
+
model: 'Redmi $1'
|
4433
|
+
- regex: 'MI Note ([^;/]+)? Build'
|
4434
|
+
model: 'MI Note $1'
|
4435
|
+
device: 'phablet'
|
4436
|
+
- regex: '(MI(?:-One)?[ _](?:[^;/]*))Build'
|
4437
|
+
model: '$1'
|
4438
|
+
- regex: '(MI [a-z0-9]+|MI-One[ _]?[a-z0-9]+)[);/ ]'
|
3061
4439
|
model: '$1'
|
3062
4440
|
- regex: 'HM Note ([^/;]+) Build'
|
3063
|
-
device: '
|
4441
|
+
device: 'phablet'
|
3064
4442
|
model: 'HM Note $1'
|
3065
4443
|
- regex: 'HM ([^/;]+) Build'
|
3066
4444
|
model: 'HM $1'
|
3067
4445
|
|
4446
|
+
# Xolo
|
4447
|
+
Xolo:
|
4448
|
+
regex: 'Xolo|(?:Q600|Q700s?|Q800|Q1000s|Q1000[ _]Opus|Q1010i|Q2000|Omega[ _]5.[05])[);/ ]'
|
4449
|
+
device: 'smartphone'
|
4450
|
+
models:
|
4451
|
+
- regex: '(Q600|Q700s?|Q800|Q1000s|Q1000[ _]Opus|Q1010i|Q2000|Omega[ _]5.[05])[);/ ]'
|
4452
|
+
model: '$1'
|
4453
|
+
- regex: 'Xolo[ _]?([^;/]+) Build'
|
4454
|
+
model: '$1'
|
4455
|
+
- regex: 'Xolo[ _]?([a-z0-9_-]+)'
|
4456
|
+
model: '$1'
|
4457
|
+
|
3068
4458
|
# Yarvik
|
3069
4459
|
Yarvik:
|
3070
4460
|
regex: 'Xenta[ \-]Tab|Luna TAB|TAB09-410|TAB10-410|TAB07-485|TAB0[78]-200|TAB08-201-3G|TAB9-200|TAB09-211|TAB10-2[01]1|TAB13-201'
|
@@ -3106,7 +4496,7 @@ Yarvik:
|
|
3106
4496
|
|
3107
4497
|
# Yuandao
|
3108
4498
|
Yuandao:
|
3109
|
-
regex: 'N101[ _]DUAL(?:[ _]CORE)?(?:[ _]?2|\|\|)?(?:[ _]V11)?
|
4499
|
+
regex: 'N101[ _]DUAL(?:[ _]CORE)?(?:[ _]?2|\|\|)?(?:[ _]V11)?[);/ ]'
|
3110
4500
|
device: 'tablet'
|
3111
4501
|
model: 'N101'
|
3112
4502
|
|
@@ -3124,6 +4514,16 @@ Yusun:
|
|
3124
4514
|
- regex: 'Yusun ([a-z0-9_\-\+]+)'
|
3125
4515
|
model: '$1'
|
3126
4516
|
|
4517
|
+
# Ytone
|
4518
|
+
Ytone:
|
4519
|
+
regex: 'YTONE[ _\-]'
|
4520
|
+
device: 'smartphone'
|
4521
|
+
models:
|
4522
|
+
- regex: 'YTONE[ _\-]?([^/;]+) Build'
|
4523
|
+
model: '$1'
|
4524
|
+
- regex: 'YTONE[ _\-]?([^);/ ]+)'
|
4525
|
+
model: '$1'
|
4526
|
+
|
3127
4527
|
# Zonda
|
3128
4528
|
Zonda:
|
3129
4529
|
regex: '(ZM(?:CK|EM|TFTV|TN)[a-z0-9]+)'
|
@@ -3132,7 +4532,7 @@ Zonda:
|
|
3132
4532
|
|
3133
4533
|
# Toshiba
|
3134
4534
|
Toshiba:
|
3135
|
-
regex: 'Toshiba|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)'
|
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)'
|
3136
4536
|
device: 'smartphone'
|
3137
4537
|
models:
|
3138
4538
|
# explicit smartphone models
|
@@ -3161,6 +4561,9 @@ Toshiba:
|
|
3161
4561
|
model: 'Regza AT$1'
|
3162
4562
|
device: 'tablet'
|
3163
4563
|
|
4564
|
+
- regex: 'TSBNetTV/'
|
4565
|
+
device: 'tv'
|
4566
|
+
model: ''
|
3164
4567
|
- regex: 'Toshiba[ /_\-]?([a-z0-9_ \-]+) Build'
|
3165
4568
|
model: '$1'
|
3166
4569
|
- regex: 'Toshiba[ /_\-]?([a-z0-9_\-]+)'
|
@@ -3170,13 +4573,99 @@ Toshiba:
|
|
3170
4573
|
|
3171
4574
|
# Fly
|
3172
4575
|
Fly:
|
3173
|
-
regex: 'Fly(?!Flow|touch)|MERIDIAN-'
|
4576
|
+
regex: 'Fly(?!Flow|touch)|MERIDIAN-|(?:IQ[0-9]{3,})[ _]?(?:Quad|Firebird|Quattro|Turbo|Magic)?(?: Build|[;/\)])'
|
3174
4577
|
device: 'smartphone'
|
3175
4578
|
models:
|
4579
|
+
- regex: '(?:Fly_)?IQ310(?: Build|[;/\)])'
|
4580
|
+
model: 'Panorama'
|
4581
|
+
device: 'tablet'
|
4582
|
+
|
4583
|
+
- regex: '(?:Fly_)?IQ236(?: Build|[;/\)])'
|
4584
|
+
model: 'Victory'
|
4585
|
+
- regex: '(?:Fly_)?IQ237(?: Build|[;/\)])'
|
4586
|
+
model: 'Dynamic'
|
4587
|
+
- regex: '(?:Fly_)?IQ238(?: Build|[;/\)])'
|
4588
|
+
model: 'Jazz'
|
4589
|
+
- regex: '(?:Fly_)?IQ240(?: Build|[;/\)])'
|
4590
|
+
model: 'Whizz'
|
4591
|
+
- regex: '(?:Fly_)?IQ255(?: Build|[;/\)])'
|
4592
|
+
model: 'Pride'
|
4593
|
+
- regex: '(?:Fly_)?IQ270(?: Firebird)?(?: Build|[;/\)])'
|
4594
|
+
model: 'Firebird'
|
4595
|
+
- regex: '(?:Fly_)?IQ275(?: Build|[;/\)])'
|
4596
|
+
model: 'Marathon'
|
4597
|
+
- regex: '(?:Fly_)?IQ285(?: Turbo)?(?: Build|[;/\)])'
|
4598
|
+
model: 'Turbo'
|
4599
|
+
- regex: '(?:Fly_)?IQ430(?: Build|[;/\)])'
|
4600
|
+
model: 'Evoke'
|
4601
|
+
- regex: '(?:Fly_)?IQ431(?: Build|[;/\)])'
|
4602
|
+
model: 'Glory'
|
4603
|
+
- regex: '(?:Fly_)?IQ432(?: Build|[;/\)])'
|
4604
|
+
model: 'Era Nano 1'
|
4605
|
+
- regex: '(?:Fly_)?IQ434(?: Build|[;/\)])'
|
4606
|
+
model: 'Era Nano 5'
|
4607
|
+
- regex: '(?:Fly_)?IQ436(?: Build|[;/\)])'
|
4608
|
+
model: 'Era Nano 3'
|
4609
|
+
- regex: '(?:Fly_)?IQ440(?: Build|[;/\)])'
|
4610
|
+
model: 'Energy'
|
4611
|
+
- regex: '(?:Fly_)?IQ441(?: Build|[;/\)])'
|
4612
|
+
model: 'Radiance'
|
4613
|
+
- regex: '(?:Fly_)?IQ442(?: Build|[;/\)])'
|
4614
|
+
model: 'Miracle'
|
4615
|
+
- regex: '(?:Fly_)?IQ442 Quad(?: Build|[;/\)])'
|
4616
|
+
model: 'Miracle 2'
|
4617
|
+
- regex: '(?:Fly_)?IQ443(?: Build|[;/\)])'
|
4618
|
+
model: 'Trend'
|
4619
|
+
- regex: '(?:Fly_)?IQ444(?: Quattro)?(?: Build|[;/\)])'
|
4620
|
+
model: 'Diamond 2'
|
4621
|
+
- regex: '(?:Fly_)?IQ445(?: Build|[;/\)])'
|
4622
|
+
model: 'Genius'
|
4623
|
+
- regex: '(?:Fly_)?IQ446(?: Magic)?(?: Build|[;/\)])'
|
4624
|
+
model: 'Magic'
|
4625
|
+
- regex: '(?:Fly_)?IQ447(?: Build|[;/\)])'
|
4626
|
+
model: 'Era Life 1'
|
4627
|
+
- regex: '(?:Fly_)?IQ448(?: Build|[;/\)])'
|
4628
|
+
model: 'Chic'
|
4629
|
+
- regex: '(?:Fly_)?IQ449(?: Build|[;/\)])'
|
4630
|
+
model: 'Pronto'
|
4631
|
+
- regex: '(?:Fly_)?IQ450(?: Build|[;/\)])'
|
4632
|
+
model: 'Horizon'
|
4633
|
+
- regex: '(?:Fly_)?IQ450[ _]Quattro(?: Build|[;/\)])'
|
4634
|
+
model: 'Horizon 2'
|
4635
|
+
- regex: '(?:Fly_)?IQ451(?: Build|[;/\)])'
|
4636
|
+
model: 'Vista'
|
4637
|
+
- regex: '(?:Fly_)?IQ452 Quad(?: Build|[;/\)])'
|
4638
|
+
model: 'Ego Vision 1'
|
4639
|
+
- regex: '(?:Fly_)?IQ454(?: Build|[;/\)])'
|
4640
|
+
model: 'Evo Tech 1'
|
4641
|
+
- regex: '(?:Fly_)?IQ456(?: Build|[;/\)])'
|
4642
|
+
model: 'Era Life 2'
|
4643
|
+
- regex: '(?:Fly_)?IQ4403(?: Build|[;/\)])'
|
4644
|
+
model: 'Energy 3'
|
4645
|
+
- regex: '(?:Fly_)?IQ4404(?: Build|[;/\)])'
|
4646
|
+
model: 'Spark'
|
4647
|
+
- regex: '(?:Fly_)?IQ4406(?: Build|[;/\)])'
|
4648
|
+
model: 'Era Nano 6'
|
4649
|
+
- regex: '(?:Fly_)?IQ4410 Quad(?: Build|[;/\)])'
|
4650
|
+
model: 'Phoenix'
|
4651
|
+
- regex: '(?:Fly_)?IQ4411(?: Build|[;/\)])'
|
4652
|
+
model: 'Energy 2'
|
4653
|
+
- regex: '(?:Fly_)?IQ4412 Quad(?: Build|[;/\)])'
|
4654
|
+
model: 'Coral'
|
4655
|
+
- regex: '(?:Fly_)?IQ4414 Quad(?: Build|[;/\)])'
|
4656
|
+
model: 'Evo Tech 3'
|
4657
|
+
- regex: '(?:Fly_)?IQ4415 Quad(?: Build|[;/\)])'
|
4658
|
+
model: 'Era Style 3'
|
4659
|
+
- regex: '(?:Fly_)?IQ4490(?: Build|[;/\)])'
|
4660
|
+
model: 'Era Nano 4'
|
4661
|
+
- regex: '(?:Fly_)?IQ4504 Quad(?: Build|[;/\)])'
|
4662
|
+
model: 'Evo Energy 5'
|
4663
|
+
- regex: '(?:Fly_)?IQ([0-9]+) ?(?:Quad|Firebird|Quattro)? Build'
|
4664
|
+
model: 'IQ$1'
|
3176
4665
|
- regex: 'Fly[ _\-]?([a-z0-9_]+)/'
|
3177
4666
|
model: '$1'
|
3178
4667
|
device: 'feature phone'
|
3179
|
-
- regex: 'Flylife[ _\-]?(
|
4668
|
+
- regex: 'Flylife[ _\-]?([^/;]+) Build'
|
3180
4669
|
model: 'Flylife $1'
|
3181
4670
|
device: 'tablet'
|
3182
4671
|
- regex: 'Fly[ _\-]?([a-z0-9]+)'
|
@@ -3184,11 +4673,21 @@ Fly:
|
|
3184
4673
|
- regex: 'MERIDIAN-([a-z0-9]+)'
|
3185
4674
|
model: '$1'
|
3186
4675
|
|
3187
|
-
#
|
3188
|
-
|
4676
|
+
# Devices with undectable brand, but detectable model
|
4677
|
+
Unknown:
|
3189
4678
|
regex: 'WebTV/(\d+\.\d+)'
|
3190
4679
|
device: 'tv'
|
3191
|
-
model: ''
|
4680
|
+
model: 'Web TV'
|
4681
|
+
|
4682
|
+
# Zeemi
|
4683
|
+
Zeemi:
|
4684
|
+
regex: 'ZEEMI[ _-]'
|
4685
|
+
device: 'smartphone'
|
4686
|
+
models:
|
4687
|
+
- regex: 'ZEEMI[ _-]([^/;]+) Build'
|
4688
|
+
model: '$1'
|
4689
|
+
- regex: 'ZEEMI[ _-]([^/;)]+)[/;)]'
|
4690
|
+
model: '$1'
|
3192
4691
|
|
3193
4692
|
# Zopo
|
3194
4693
|
Zopo:
|
@@ -3198,16 +4697,68 @@ Zopo:
|
|
3198
4697
|
|
3199
4698
|
# ZTE
|
3200
4699
|
ZTE:
|
3201
|
-
regex: '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)[);/ ]'
|
3202
4701
|
device: 'smartphone'
|
3203
4702
|
models:
|
3204
4703
|
# explicit smartphone models
|
3205
|
-
- regex: 'N799D'
|
4704
|
+
- regex: 'N799D[);/ ]'
|
3206
4705
|
model: 'MTS Blaze 4'
|
4706
|
+
- regex: 'N918St[);/ ]'
|
4707
|
+
model: 'V5S'
|
4708
|
+
- regex: 'N958St[);/ ]'
|
4709
|
+
model: 'V5 Max'
|
4710
|
+
- regex: 'N9101[);/ ]'
|
4711
|
+
model: 'Imperial'
|
4712
|
+
- regex: 'N9180[);/ ]'
|
4713
|
+
model: 'V5'
|
4714
|
+
- regex: 'N9510[);/ ]'
|
4715
|
+
model: 'Wrap 4G'
|
4716
|
+
- regex: 'N9515[);/ ]'
|
4717
|
+
model: 'Wrap Sync'
|
4718
|
+
- regex: 'N9520[);/ ]'
|
4719
|
+
model: 'Boost Max'
|
4720
|
+
- regex: 'N9521[);/ ]'
|
4721
|
+
model: 'Boost Max+'
|
4722
|
+
- regex: 'N9810[);/ ]'
|
4723
|
+
model: 'Vital'
|
4724
|
+
- regex: 'NX40[X2][);/ ]'
|
4725
|
+
model: 'Nubia Z5 mini'
|
4726
|
+
- regex: 'NX403A[);/ ]'
|
4727
|
+
model: 'Nubia Z5S mini'
|
4728
|
+
- regex: 'NX503A[);/ ]'
|
4729
|
+
model: 'Nubia Z5S'
|
4730
|
+
- regex: 'NX506J[);/ ]'
|
4731
|
+
model: 'Nubia Z7'
|
4732
|
+
- regex: 'NX507J[);/ ]'
|
4733
|
+
model: 'Nubia Z7 mini'
|
4734
|
+
- regex: 'NX505J[);/ ]'
|
4735
|
+
model: 'Nubia Z7 max'
|
4736
|
+
- regex: 'NX508J[);/ ]'
|
4737
|
+
model: 'Nubia Z9'
|
4738
|
+
- regex: 'NX511J[);/ ]'
|
4739
|
+
model: 'Nubia Z9 mini'
|
4740
|
+
- regex: 'NX510J[);/ ]'
|
4741
|
+
model: 'Nubia Z9 max'
|
4742
|
+
- regex: 'NX513J[);/ ]'
|
4743
|
+
model: 'Nubia My Prague'
|
4744
|
+
- regex: 'NX601J[);/ ]'
|
4745
|
+
model: 'Nubia X6'
|
4746
|
+
- regex: '[UV]9180[);/ ]'
|
4747
|
+
model: 'V5 Red Bull'
|
4748
|
+
- regex: '[UV]9815[);/ ]'
|
4749
|
+
model: 'Grand Memo'
|
4750
|
+
- regex: 'Z331[);/ ]'
|
4751
|
+
model: 'Z331'
|
4752
|
+
- regex: 'Blade S6[);/ ]'
|
4753
|
+
model: 'Blade S6'
|
4754
|
+
- regex: 'Z768G[);/ ]'
|
4755
|
+
model: 'Midnight'
|
3207
4756
|
|
4757
|
+
- regex: 'AxonPhone ([^;/]+) Build'
|
4758
|
+
model: 'AxonPhone $1'
|
3208
4759
|
- regex: '([a-z0-9]+)_USA_Cricket'
|
3209
4760
|
model: '$1'
|
3210
|
-
- regex: 'ZTE[\- ](V98|V96A|V81|V70)
|
4761
|
+
- regex: 'ZTE[\- ](V98|V96A|V81|V70)[);/ ]'
|
3211
4762
|
model: '$1'
|
3212
4763
|
device: 'tablet'
|
3213
4764
|
- regex: 'ZTE[\- ]([a-z0-9\-_ ]+) Build'
|
@@ -3216,11 +4767,21 @@ ZTE:
|
|
3216
4767
|
model: '$1'
|
3217
4768
|
- regex: 'ZTE[ _]([a-z0-9]+)'
|
3218
4769
|
model: '$1'
|
3219
|
-
- regex: 'Z331'
|
3220
|
-
model: 'Z331'
|
3221
4770
|
|
3222
4771
|
# Symbian to Nokia ??
|
3223
4772
|
# Change name from Nokia to other to not change above Nokia element
|
3224
4773
|
#Nokia:
|
3225
4774
|
# regex: 'Symbian'
|
3226
4775
|
# device: 'feature phone'
|
4776
|
+
|
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'
|