device_detector 1.0.7 → 1.1.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/CHANGELOG.md +5 -0
- data/README.md +25 -4
- data/lib/device_detector/browser.rb +178 -5
- data/lib/device_detector/client_hint.rb +166 -0
- data/lib/device_detector/device.rb +291 -2
- data/lib/device_detector/os.rb +33 -3
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector.rb +50 -15
- data/regexes/bots.yml +594 -16
- data/regexes/client/browsers.yml +334 -40
- data/regexes/client/hints/apps.yml +102 -0
- data/regexes/client/hints/browsers.yml +190 -0
- data/regexes/client/libraries.yml +199 -2
- data/regexes/client/mobile_apps.yml +320 -12
- data/regexes/client/pim.yml +15 -0
- data/regexes/device/car_browsers.yml +1 -1
- data/regexes/device/consoles.yml +6 -1
- data/regexes/device/mobiles.yml +8406 -1948
- data/regexes/device/portable_media_player.yml +18 -2
- data/regexes/device/shell_tv.yml +11 -0
- data/regexes/device/televisions.yml +26 -4
- data/regexes/oss.yml +329 -47
- metadata +10 -7
@@ -36,8 +36,10 @@ FiiO:
|
|
36
36
|
regex: 'FiiO'
|
37
37
|
device: 'portable media player'
|
38
38
|
models:
|
39
|
-
- regex: '
|
40
|
-
model: '
|
39
|
+
- regex: 'M11 Plus LTD'
|
40
|
+
model: 'M11 Plus LTD'
|
41
|
+
- regex: 'M(1[57])'
|
42
|
+
model: 'M$1'
|
41
43
|
|
42
44
|
Microsoft:
|
43
45
|
regex: 'Microsoft ZuneHD'
|
@@ -84,3 +86,17 @@ SONOS:
|
|
84
86
|
model: 'Play:5'
|
85
87
|
- regex: 'Sonos;One;'
|
86
88
|
model: 'One'
|
89
|
+
|
90
|
+
# Shanling
|
91
|
+
Shanling:
|
92
|
+
regex: 'Shanling M6'
|
93
|
+
device: 'portable media player'
|
94
|
+
models:
|
95
|
+
- regex: 'Shanling (M6\(21\))'
|
96
|
+
model: '$1'
|
97
|
+
|
98
|
+
# Sylvania
|
99
|
+
Sylvania:
|
100
|
+
regex: '(SLTDVD102[34])'
|
101
|
+
device: 'portable media player'
|
102
|
+
model: '$1'
|
data/regexes/device/shell_tv.yml
CHANGED
@@ -110,8 +110,19 @@ Loview:
|
|
110
110
|
device: 'tv'
|
111
111
|
model: ''
|
112
112
|
|
113
|
+
# Supra
|
114
|
+
Supra:
|
115
|
+
regex: 'Supra Shell'
|
116
|
+
device: 'tv'
|
117
|
+
model: ''
|
118
|
+
|
113
119
|
# Yuno (yuno.bbk.ru)
|
114
120
|
Yuno:
|
115
121
|
regex: 'Yuno Shell'
|
116
122
|
device: 'tv'
|
117
123
|
model: ''
|
124
|
+
|
125
|
+
TCL:
|
126
|
+
regex: 'TCL/TCL-'
|
127
|
+
device: 'tv'
|
128
|
+
model: ''
|
@@ -26,7 +26,9 @@ Airties:
|
|
26
26
|
'ALDI SÜD':
|
27
27
|
regex: 'ALDISUED[;,]'
|
28
28
|
device: 'tv'
|
29
|
-
|
29
|
+
models:
|
30
|
+
- regex: 'ALDISUED, ([a-z0-9_ \-]+), (?:wired|wireless)'
|
31
|
+
model: ''
|
30
32
|
|
31
33
|
# Altech UEC
|
32
34
|
'Altech UEC':
|
@@ -152,7 +154,9 @@ GoGEN:
|
|
152
154
|
Grundig:
|
153
155
|
regex: '(OWB|Grundig|Arcelik)'
|
154
156
|
device: 'tv'
|
155
|
-
|
157
|
+
models:
|
158
|
+
- regex: 'G7'
|
159
|
+
model: 'G7'
|
156
160
|
|
157
161
|
# Haier
|
158
162
|
Haier:
|
@@ -212,13 +216,21 @@ Hotel:
|
|
212
216
|
|
213
217
|
# Humax
|
214
218
|
Humax:
|
215
|
-
regex: 'Humax'
|
219
|
+
regex: 'Humax|hdr1000s'
|
216
220
|
device: 'tv'
|
217
221
|
models:
|
218
222
|
- regex: '(HD-FOX C|HD (FOX\+|NANO)|iCord (HD\+|MINI|Cable)|(CX|IR)HD-5100(C|S)|HM9503HD)'
|
219
223
|
model: '$1'
|
220
224
|
- regex: 'HMS1000S'
|
221
225
|
model: 'HMS-1000S'
|
226
|
+
- regex: 'FVP4000T'
|
227
|
+
model: 'FVP-4000T'
|
228
|
+
- regex: 'HGS1000S'
|
229
|
+
model: 'HGS-1000S'
|
230
|
+
- regex: 'HDR1000S'
|
231
|
+
model: 'HDR-1000S'
|
232
|
+
- regex: 'HDR4000T'
|
233
|
+
model: 'HDR-4000T'
|
222
234
|
- regex: 'Humax; ([^);/]+)'
|
223
235
|
model: '$1'
|
224
236
|
|
@@ -364,7 +376,9 @@ MediaTek:
|
|
364
376
|
Medion:
|
365
377
|
regex: 'Medion'
|
366
378
|
device: 'tv'
|
367
|
-
|
379
|
+
models:
|
380
|
+
- regex: 'MEDION, ([a-z0-9_ \-]+), (?:wired|wireless)'
|
381
|
+
model: ''
|
368
382
|
|
369
383
|
# Miray
|
370
384
|
Miray:
|
@@ -517,6 +531,8 @@ Sharp:
|
|
517
531
|
regex: '(?:UMC-)?Sharp'
|
518
532
|
device: 'tv'
|
519
533
|
models:
|
534
|
+
- regex: 'SHARP, ([a-z0-9_ \-]+), (?:wired|wireless)'
|
535
|
+
model: ''
|
520
536
|
- regex: 'Sharp[,;] ?((?! |HbbTV)[^),;/]+)'
|
521
537
|
model: '$1'
|
522
538
|
- regex: '(LE[0-9]{3}[A-Z]{0,3})'
|
@@ -699,3 +715,9 @@ Vestel:
|
|
699
715
|
regex: '(?:Vestel.+VESTEL|VESTEL;)'
|
700
716
|
device: 'tv'
|
701
717
|
model: ''
|
718
|
+
|
719
|
+
# Unknown
|
720
|
+
Unknown:
|
721
|
+
regex: 'OEM, ([a-z0-9_ \-]+), (?:wired|wireless)'
|
722
|
+
device: 'tv'
|
723
|
+
model: ''
|
data/regexes/oss.yml
CHANGED
@@ -5,6 +5,87 @@
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
+
##########
|
9
|
+
# RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
|
10
|
+
##########
|
11
|
+
- regex: 'Mikrotik/(\d).x'
|
12
|
+
name: 'RouterOS'
|
13
|
+
version: '$1'
|
14
|
+
|
15
|
+
##########
|
16
|
+
# Sirin OS (https://sirinlabs.com/sirin-os/)
|
17
|
+
##########
|
18
|
+
- regex: 'FINNEY U1'
|
19
|
+
name: 'Sirin OS'
|
20
|
+
version: ''
|
21
|
+
|
22
|
+
##########
|
23
|
+
# Nova (https://www.nova.cu/)
|
24
|
+
##########
|
25
|
+
- regex: 'Nova; Linux'
|
26
|
+
name: 'Nova'
|
27
|
+
version: ''
|
28
|
+
|
29
|
+
##########
|
30
|
+
# Bliss OS (https://blissos.org/)
|
31
|
+
##########
|
32
|
+
- regex: 'Android 10.+bliss_maple'
|
33
|
+
name: 'Bliss OS'
|
34
|
+
version: '12'
|
35
|
+
|
36
|
+
##########
|
37
|
+
# TencentOS (https://github.com/Tencent/TencentOS-kernel)
|
38
|
+
##########
|
39
|
+
- regex: 'Linux/(\d+[\.\d]*).+tlinux'
|
40
|
+
name: 'TencentOS'
|
41
|
+
version: '$1'
|
42
|
+
|
43
|
+
##########
|
44
|
+
# Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)
|
45
|
+
##########
|
46
|
+
- regex: '.+.amzn(\d).x86_64'
|
47
|
+
name: 'Amazon Linux'
|
48
|
+
version: '$1'
|
49
|
+
|
50
|
+
##########
|
51
|
+
# COS (China Operating System - https://web.archive.org/web/20170825001023/http://www.china-cos.com/)
|
52
|
+
##########
|
53
|
+
- regex: ' COS like Android'
|
54
|
+
name: 'China OS'
|
55
|
+
version: ''
|
56
|
+
|
57
|
+
##########
|
58
|
+
# ClearOS Mobile (https://www.clearos.com/products/clearos-editions/clearos-mobile)
|
59
|
+
##########
|
60
|
+
- regex: 'Android (\d+[\.\d]*); ClearPHONE'
|
61
|
+
name: 'ClearOS Mobile'
|
62
|
+
version: '$1'
|
63
|
+
|
64
|
+
##########
|
65
|
+
# Plasma Mobile (https://plasma-mobile.org/)
|
66
|
+
##########
|
67
|
+
- regex: 'Plasma Mobile'
|
68
|
+
name: 'Plasma Mobile'
|
69
|
+
version: ''
|
70
|
+
|
71
|
+
##########
|
72
|
+
# KreaTV
|
73
|
+
##########
|
74
|
+
- regex: 'KreaTV/0.0.0.0'
|
75
|
+
name: 'KreaTV'
|
76
|
+
version: ''
|
77
|
+
|
78
|
+
- regex: 'KreaTV/(\d+[\.\d]+)'
|
79
|
+
name: 'KreaTV'
|
80
|
+
version: '$1'
|
81
|
+
|
82
|
+
##########
|
83
|
+
# Opera TV (https://blogs.opera.com/news/2016/01/ces-2016-meet-opera-tv/)
|
84
|
+
##########
|
85
|
+
- regex: 'Linux (?:[^;]+); Opera TV(?: Store)?/|^Opera/\d+\.\d+ \(Linux mips'
|
86
|
+
name: 'Opera TV'
|
87
|
+
version: ''
|
88
|
+
|
8
89
|
##########
|
9
90
|
# GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
|
10
91
|
##########
|
@@ -132,6 +213,105 @@
|
|
132
213
|
name: 'FydeOS'
|
133
214
|
version: ''
|
134
215
|
|
216
|
+
##########
|
217
|
+
# Revenge OS
|
218
|
+
##########
|
219
|
+
- regex: 'revengeos_x2'
|
220
|
+
name: 'Revenge OS'
|
221
|
+
version: '2'
|
222
|
+
|
223
|
+
##########
|
224
|
+
# Lineage OS
|
225
|
+
##########
|
226
|
+
- regex: 'lineage_\w+'
|
227
|
+
name: 'Lineage OS'
|
228
|
+
version: ''
|
229
|
+
|
230
|
+
#########
|
231
|
+
# Resurrection Remix OS (https://resurrectionremix.com/)
|
232
|
+
##########
|
233
|
+
- regex: 'Android 8(?:[\d.]*);(?: [\w-]+;)? rr_fortuna3g'
|
234
|
+
name: 'Resurrection Remix OS'
|
235
|
+
version: '6'
|
236
|
+
|
237
|
+
##########
|
238
|
+
# Remix OS
|
239
|
+
##########
|
240
|
+
- regex: 'RemixOS|Remix (?:Pro|Mini)'
|
241
|
+
name: 'Remix OS'
|
242
|
+
versions:
|
243
|
+
- regex: 'RemixOS 5'
|
244
|
+
version: '1'
|
245
|
+
- regex: 'RemixOS 6|Remix Mini'
|
246
|
+
version: '2'
|
247
|
+
- regex: 'Remix Pro'
|
248
|
+
version: '3'
|
249
|
+
|
250
|
+
##########
|
251
|
+
# FreeBSD
|
252
|
+
##########
|
253
|
+
- regex: 'FreeBSD.+Android'
|
254
|
+
name: 'FreeBSD'
|
255
|
+
version: ''
|
256
|
+
|
257
|
+
##########
|
258
|
+
# Android TV (https://android.com/tv/)
|
259
|
+
##########
|
260
|
+
- regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
|
261
|
+
name: 'Android TV'
|
262
|
+
version: '$1'
|
263
|
+
|
264
|
+
- regex: 'Android[; ](\d+[\.\d]*).+(?:Android|AT&T) TV'
|
265
|
+
name: 'Android TV'
|
266
|
+
version: '$1'
|
267
|
+
|
268
|
+
- regex: 'Windows.+Andr0id TV|.+K_?Android_?TV_'
|
269
|
+
name: 'Android TV'
|
270
|
+
version: ''
|
271
|
+
|
272
|
+
##########
|
273
|
+
# Android SDK Level Api
|
274
|
+
##########
|
275
|
+
- regex: '\d+/tclwebkit(?:\d+[\.\d]*)'
|
276
|
+
name: 'Android'
|
277
|
+
versions:
|
278
|
+
- regex: '33/tclwebkit'
|
279
|
+
version: '13'
|
280
|
+
- regex: '3[12]/tclwebkit'
|
281
|
+
version: '12'
|
282
|
+
- regex: '30/tclwebkit'
|
283
|
+
version: '11'
|
284
|
+
- regex: '29/tclwebkit'
|
285
|
+
version: '10'
|
286
|
+
- regex: '28/tclwebkit'
|
287
|
+
version: '9'
|
288
|
+
- regex: '27/tclwebkit'
|
289
|
+
version: '8.1'
|
290
|
+
- regex: '26/tclwebkit'
|
291
|
+
version: '8'
|
292
|
+
- regex: '25/tclwebkit'
|
293
|
+
version: '7.1'
|
294
|
+
- regex: '24/tclwebkit'
|
295
|
+
version: '7'
|
296
|
+
- regex: '23/tclwebkit'
|
297
|
+
version: '6'
|
298
|
+
- regex: '22/tclwebkit'
|
299
|
+
version: '5.1'
|
300
|
+
- regex: '21/tclwebkit'
|
301
|
+
version: '5'
|
302
|
+
- regex: '(?:20|19)/tclwebkit'
|
303
|
+
version: '4.4'
|
304
|
+
- regex: '18/tclwebkit'
|
305
|
+
version: '4.3'
|
306
|
+
- regex: '17/tclwebkit'
|
307
|
+
version: '4.2'
|
308
|
+
- regex: '16/tclwebkit'
|
309
|
+
version: '4.2'
|
310
|
+
- regex: '15/tclwebkit'
|
311
|
+
version: '4.0.3'
|
312
|
+
- regex: '15/tclwebkit'
|
313
|
+
version: '4.0.1'
|
314
|
+
|
135
315
|
##########
|
136
316
|
# Android
|
137
317
|
##########
|
@@ -143,7 +323,7 @@
|
|
143
323
|
name: 'Android'
|
144
324
|
version: ''
|
145
325
|
|
146
|
-
- regex: 'Android OS/(\d+[\.\d]*)'
|
326
|
+
- regex: '(?:Android OS|OMDroid)[ /](\d+[\.\d]*)'
|
147
327
|
name: 'Android'
|
148
328
|
version: '$1'
|
149
329
|
|
@@ -159,7 +339,7 @@
|
|
159
339
|
name: 'Android'
|
160
340
|
version: '$1'
|
161
341
|
|
162
|
-
- regex: '(?:(?:Orca-)?Android|Adr)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
342
|
+
- regex: '(?:(?:Orca-)?(?<!like )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
163
343
|
name: 'Android'
|
164
344
|
version: '$1'
|
165
345
|
|
@@ -175,7 +355,7 @@
|
|
175
355
|
name: 'Android'
|
176
356
|
version: '$1'
|
177
357
|
|
178
|
-
- regex: ' Adr |Android|Silk-Accelerated=[a-z]{4,5}'
|
358
|
+
- regex: ' Adr |DDG-Android|(?<!like )Android|Silk-Accelerated=[a-z]{4,5}'
|
179
359
|
name: 'Android'
|
180
360
|
version: ''
|
181
361
|
|
@@ -183,14 +363,10 @@
|
|
183
363
|
name: 'Android'
|
184
364
|
version: '$1'
|
185
365
|
|
186
|
-
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe
|
366
|
+
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|Linux x86_64; Quest'
|
187
367
|
name: 'Android'
|
188
368
|
version: ''
|
189
369
|
|
190
|
-
- regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
|
191
|
-
name: 'Android'
|
192
|
-
version: '$1'
|
193
|
-
|
194
370
|
# Inverted Android
|
195
371
|
- regex: 'Linux; diordnA[; ](\d+[\.\d]*)'
|
196
372
|
name: 'Android'
|
@@ -245,6 +421,46 @@
|
|
245
421
|
##########
|
246
422
|
# Linux
|
247
423
|
##########
|
424
|
+
# Linspire (https://www.linspirelinux.com/)
|
425
|
+
- regex: 'Linspire'
|
426
|
+
name: 'Linspire'
|
427
|
+
version: ''
|
428
|
+
|
429
|
+
# LindowsOS (https://web.archive.org/web/20040304161245/http://www.lindows.com/)
|
430
|
+
- regex: 'LindowsOS'
|
431
|
+
name: 'LindowsOS'
|
432
|
+
version: ''
|
433
|
+
|
434
|
+
# Zenwalk (http://www.zenwalk.org/)
|
435
|
+
- regex: 'Zenwalk GNU Linux'
|
436
|
+
name: 'Zenwalk'
|
437
|
+
version: ''
|
438
|
+
|
439
|
+
# Kanotix (http://www.kanotix.com/)
|
440
|
+
- regex: 'Linux.+kanotix'
|
441
|
+
name: 'Kanotix'
|
442
|
+
version: ''
|
443
|
+
|
444
|
+
# moonOS (https://www.moonos.org/)
|
445
|
+
- regex: 'moonOS/(\d+.[\d.]+)'
|
446
|
+
name: 'moonOS'
|
447
|
+
version: '$1'
|
448
|
+
|
449
|
+
# Foresight Linux (https://www.foresightlinux.org/)
|
450
|
+
- regex: 'Foresight Linux'
|
451
|
+
name: 'Foresight Linux'
|
452
|
+
version: ''
|
453
|
+
|
454
|
+
# Pardus (https://www.pardus.org.tr/)
|
455
|
+
- regex: 'Pardus/(\d+.[\d.]+)'
|
456
|
+
name: 'Pardus'
|
457
|
+
version: '$1'
|
458
|
+
|
459
|
+
# Pure OS (https://pureos.net/)
|
460
|
+
- regex: 'Librem 5'
|
461
|
+
name: 'PureOS'
|
462
|
+
version: ''
|
463
|
+
|
248
464
|
# OpenWrt (https://openwrt.org/)
|
249
465
|
- regex: 'uclient-fetch'
|
250
466
|
name: 'OpenWrt'
|
@@ -255,7 +471,7 @@
|
|
255
471
|
name: 'Roku OS'
|
256
472
|
version: '$1'
|
257
473
|
|
258
|
-
- regex: 'Roku(?:OS)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)'
|
474
|
+
- regex: 'Roku(?:OS|4640X)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)?'
|
259
475
|
name: 'Roku OS'
|
260
476
|
version: '$1'
|
261
477
|
|
@@ -308,6 +524,34 @@
|
|
308
524
|
name: 'VectorLinux'
|
309
525
|
version: '$1'
|
310
526
|
|
527
|
+
- regex: 'CentOS Stream (\d)'
|
528
|
+
name: 'CentOS Stream'
|
529
|
+
version: '$1'
|
530
|
+
|
531
|
+
- regex: '.+.el(\d+(?:[_\.]\d+)*).(?:centos|x86_64)'
|
532
|
+
name: 'CentOS'
|
533
|
+
version: '$1'
|
534
|
+
|
535
|
+
- regex: 'CentOS Linux (\d)'
|
536
|
+
name: 'CentOS'
|
537
|
+
version: '$1'
|
538
|
+
|
539
|
+
- regex: 'Fedora/.+.fc(\d+)'
|
540
|
+
name: 'Fedora'
|
541
|
+
version: '$1'
|
542
|
+
|
543
|
+
- regex: 'Mandriva(?: Linux)?/.+mdv(\d+[\.\d]+)'
|
544
|
+
name: 'Mandriva'
|
545
|
+
version: '$1'
|
546
|
+
|
547
|
+
- regex: 'Linux Mint/(\d)'
|
548
|
+
name: 'Mint'
|
549
|
+
version: '$1'
|
550
|
+
|
551
|
+
- regex: 'Zorin OS (\d+)'
|
552
|
+
name: 'ZorinOS'
|
553
|
+
version: '$1'
|
554
|
+
|
311
555
|
- regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[\.\d]+)'
|
312
556
|
name: '$1'
|
313
557
|
version: '$2'
|
@@ -320,12 +564,14 @@
|
|
320
564
|
name: '$1'
|
321
565
|
version: '$2'
|
322
566
|
|
567
|
+
- regex: '.+redhat-linux-gnu'
|
568
|
+
name: 'Red Hat'
|
569
|
+
version: ''
|
570
|
+
|
323
571
|
- regex: 'OS ROSA; Linux'
|
324
572
|
name: 'Rosa'
|
325
573
|
version: ''
|
326
574
|
|
327
|
-
# generic linux match -> end of file
|
328
|
-
|
329
575
|
##########
|
330
576
|
# webOS
|
331
577
|
##########
|
@@ -335,12 +581,16 @@
|
|
335
581
|
versions:
|
336
582
|
- regex: 'WEBOS(\d+[\.\d]+)'
|
337
583
|
version: '$1'
|
338
|
-
- regex: 'Web0S; Linux/SmartTV.+
|
584
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/79'
|
585
|
+
version: '6'
|
586
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/68'
|
339
587
|
version: '5'
|
340
|
-
- regex: 'Web0S; Linux/SmartTV.+
|
588
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/53'
|
341
589
|
version: '4'
|
342
|
-
- regex: 'Web0S; Linux/SmartTV.+
|
590
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/38'
|
343
591
|
version: '3'
|
592
|
+
- regex: 'WEBOS1'
|
593
|
+
version: '1'
|
344
594
|
- regex: 'Web0S; Linux/SmartTV.+Safari/538'
|
345
595
|
version: '2'
|
346
596
|
- regex: 'Web0S; Linux/SmartTV.+Safari/537'
|
@@ -358,7 +608,6 @@
|
|
358
608
|
name: 'MorphOS'
|
359
609
|
version: '$1'
|
360
610
|
|
361
|
-
|
362
611
|
##########
|
363
612
|
# Windows
|
364
613
|
##########
|
@@ -378,7 +627,7 @@
|
|
378
627
|
name: 'Windows'
|
379
628
|
version: ''
|
380
629
|
|
381
|
-
- regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS))/(\d+\.\d+)'
|
630
|
+
- regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS)|WINDOWS_64)/(\d+\.\d+)'
|
382
631
|
name: 'Windows'
|
383
632
|
version: '$1'
|
384
633
|
|
@@ -438,10 +687,14 @@
|
|
438
687
|
name: 'Windows'
|
439
688
|
version: '3.1'
|
440
689
|
|
441
|
-
- regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS'
|
690
|
+
- regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS|ms-office; MSOffice'
|
442
691
|
name: 'Windows'
|
443
692
|
version: ''
|
444
693
|
|
694
|
+
- regex: 'OS/Microsoft_Windows_NT_(\d+\.\d+)'
|
695
|
+
name: 'Windows'
|
696
|
+
version: '$1'
|
697
|
+
|
445
698
|
##########
|
446
699
|
# Haiku OS
|
447
700
|
##########
|
@@ -452,11 +705,11 @@
|
|
452
705
|
##########
|
453
706
|
# tvOS (https://developer.apple.com/tvos/)
|
454
707
|
##########
|
455
|
-
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-
|
708
|
+
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-6])[_\.]\d+(?:[_.]\d+)*)'
|
456
709
|
name: 'tvOS'
|
457
710
|
version: '$1'
|
458
711
|
|
459
|
-
- regex: 'iOS(?:; |/)((?:9|1[0-
|
712
|
+
- regex: 'iOS(?:; |/)((?:9|1[0-6]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
|
460
713
|
name: 'tvOS'
|
461
714
|
version: '$1'
|
462
715
|
|
@@ -470,27 +723,27 @@
|
|
470
723
|
##########
|
471
724
|
# iPadOS (https://www.apple.com/ipados/)
|
472
725
|
##########
|
473
|
-
- regex: 'FBMD/iPad;.*FBSV/ ?(1[
|
726
|
+
- regex: 'FBMD/iPad;.*FBSV/ ?(1[3-6]).(\d+[\.\d]*);'
|
474
727
|
name: 'iPadOS'
|
475
728
|
version: '$1.$2'
|
476
729
|
|
477
|
-
- regex: 'iPad/(1[
|
730
|
+
- regex: 'iPad/(1[3-6]).(\d+[\.\d]*)'
|
478
731
|
name: 'iPadOS'
|
479
732
|
version: '$1.$2'
|
480
733
|
|
481
|
-
- regex: '^iPad(?:\d+[\,\d]*)/(1[
|
734
|
+
- regex: '^iPad(?:\d+[\,\d]*)/(1[3-6]).(\d+[\.\d]*)'
|
482
735
|
name: 'iPadOS'
|
483
736
|
version: '$1.$2'
|
484
737
|
|
485
|
-
- regex: 'iPad(?:; iOS|.+CPU OS) ((1[
|
738
|
+
- regex: 'iPad(?:; (?:iOS|iPhone OS)|.+CPU OS) ((1[3-6])+(?:[_\.]\d+)*)'
|
486
739
|
name: 'iPadOS'
|
487
740
|
version: '$1'
|
488
741
|
|
489
|
-
- regex: 'iOS/(1[
|
742
|
+
- regex: 'iOS/(1[3-6]).(\d+[\.\d]*).+Apple/iPad'
|
490
743
|
name: 'iPadOS'
|
491
744
|
version: '$1.$2'
|
492
745
|
|
493
|
-
- regex: 'iPhone OS,(1[
|
746
|
+
- regex: 'iPhone OS,(1[3-6]).(\d+[\.\d]*).+iPad'
|
494
747
|
name: 'iPadOS'
|
495
748
|
version: '$1.$2'
|
496
749
|
|
@@ -509,13 +762,27 @@
|
|
509
762
|
name: 'iOS'
|
510
763
|
version: '$1'
|
511
764
|
|
765
|
+
- regex: 'iOS (\d+[\.\d]+)\)'
|
766
|
+
name: 'iOS'
|
767
|
+
version: '$1'
|
768
|
+
|
512
769
|
- regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
|
513
770
|
name: 'iOS'
|
514
771
|
version: '$1'
|
515
772
|
|
516
|
-
- regex: 'CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac))'
|
773
|
+
- regex: '^(?!com.apple.Safari.SearchHelper).*CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
|
517
774
|
name: 'iOS'
|
518
775
|
versions:
|
776
|
+
- regex: 'Darwin/22.0.0'
|
777
|
+
version: '16.0'
|
778
|
+
- regex: 'Darwin/21.6.0'
|
779
|
+
version: '15.6'
|
780
|
+
- regex: 'Darwin/21.5.0'
|
781
|
+
version: '15.5'
|
782
|
+
- regex: 'Darwin/21.4.0'
|
783
|
+
version: '15.4'
|
784
|
+
- regex: 'Darwin/21.3.0'
|
785
|
+
version: '15.3'
|
519
786
|
- regex: 'Darwin/21.2.0'
|
520
787
|
version: '15.2'
|
521
788
|
- regex: 'Darwin/21.1.0'
|
@@ -649,7 +916,7 @@
|
|
649
916
|
name: 'iOS'
|
650
917
|
version: '$1.$2.$3'
|
651
918
|
|
652
|
-
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
919
|
+
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
653
920
|
name: 'iOS'
|
654
921
|
version: '$1'
|
655
922
|
|
@@ -681,7 +948,11 @@
|
|
681
948
|
name: 'iOS'
|
682
949
|
version: '$1'
|
683
950
|
|
684
|
-
- regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
951
|
+
- regex: '(?:Apple-)?(?<!like )(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
952
|
+
name: 'iOS'
|
953
|
+
version: '$1'
|
954
|
+
|
955
|
+
- regex: 'dv\(iPh.+ov\((\d+(?:[_\.]\d+)*)\);'
|
685
956
|
name: 'iOS'
|
686
957
|
version: '$1'
|
687
958
|
|
@@ -708,9 +979,19 @@
|
|
708
979
|
##########
|
709
980
|
# Mac
|
710
981
|
##########
|
711
|
-
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac'
|
982
|
+
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com.apple.Safari.SearchHelper'
|
712
983
|
name: 'Mac'
|
713
984
|
versions:
|
985
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.0.0'
|
986
|
+
version: '13.0'
|
987
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.6.0'
|
988
|
+
version: '12.5'
|
989
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.5.0'
|
990
|
+
version: '12.4'
|
991
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.4.0'
|
992
|
+
version: '12.3'
|
993
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.3.0'
|
994
|
+
version: '12.2'
|
714
995
|
- regex: '(?:x86_64-apple-)?Darwin/?21.2.0'
|
715
996
|
version: '12.1'
|
716
997
|
- regex: '(?:x86_64-apple-)?Darwin/?21.1.0'
|
@@ -866,7 +1147,7 @@
|
|
866
1147
|
name: 'Mac'
|
867
1148
|
version: '$1'
|
868
1149
|
|
869
|
-
- regex: '(?:macOS[/,]|Mac-)(\d+[\.\d]+)'
|
1150
|
+
- regex: '(?:macOS[ /,]|Mac-)(\d+[\.\d]+)'
|
870
1151
|
name: 'Mac'
|
871
1152
|
version: '$1'
|
872
1153
|
|
@@ -888,10 +1169,17 @@
|
|
888
1169
|
##########
|
889
1170
|
# ChromeOS
|
890
1171
|
##########
|
891
|
-
- regex: 'CrOS [a-z0-9_]+
|
1172
|
+
- regex: 'CrOS [a-z0-9_]+ (\d+[\.\d]+)'
|
892
1173
|
name: 'Chrome OS'
|
893
1174
|
version: '$1'
|
894
1175
|
|
1176
|
+
##########
|
1177
|
+
# Fuchsia
|
1178
|
+
##########
|
1179
|
+
- regex: 'Fuchsia'
|
1180
|
+
name: 'Fuchsia'
|
1181
|
+
version: ''
|
1182
|
+
|
895
1183
|
##########
|
896
1184
|
# BlackBerry
|
897
1185
|
##########
|
@@ -1018,20 +1306,6 @@
|
|
1018
1306
|
name: 'WebTV'
|
1019
1307
|
version: '$1'
|
1020
1308
|
|
1021
|
-
##########
|
1022
|
-
# Remix OS
|
1023
|
-
##########
|
1024
|
-
- regex: 'RemixOS 5.1.1'
|
1025
|
-
name: 'Remix OS'
|
1026
|
-
version: '1'
|
1027
|
-
|
1028
|
-
- regex: 'RemixOS 6.0'
|
1029
|
-
name: 'Remix OS'
|
1030
|
-
version: '2'
|
1031
|
-
|
1032
|
-
- regex: 'RemixOS'
|
1033
|
-
name: 'Remix OS'
|
1034
|
-
version: ''
|
1035
1309
|
|
1036
1310
|
##########
|
1037
1311
|
# Unix
|
@@ -1083,10 +1357,14 @@
|
|
1083
1357
|
name: 'Nintendo'
|
1084
1358
|
version: '$1'
|
1085
1359
|
|
1086
|
-
- regex: 'PlayStation
|
1360
|
+
- regex: 'PlayStation.+; Linux (\d+[\.\d]+)'
|
1087
1361
|
name: 'PlayStation'
|
1088
1362
|
version: '$1'
|
1089
1363
|
|
1364
|
+
- regex: 'PlayStation ?(\d)(?:[/ ](?:Pro )?(\d+[\.\d]+))?'
|
1365
|
+
name: 'PlayStation'
|
1366
|
+
version: '$1.$2'
|
1367
|
+
|
1090
1368
|
- regex: 'Xbox|KIN\.(?:One|Two)'
|
1091
1369
|
name: 'Xbox'
|
1092
1370
|
version: '360'
|
@@ -1112,7 +1390,11 @@
|
|
1112
1390
|
###########
|
1113
1391
|
# Linux (Generic)
|
1114
1392
|
###########
|
1115
|
-
- regex: 'Linux
|
1393
|
+
- regex: 'Linux/(\d+[\.\d]+)'
|
1394
|
+
name: 'GNU/Linux'
|
1395
|
+
version: '$1'
|
1396
|
+
|
1397
|
+
- regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)|.+(?:pc|unknown)-linux-gnu'
|
1116
1398
|
name: 'GNU/Linux'
|
1117
1399
|
version: ''
|
1118
1400
|
|