device_detector 1.0.7 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +25 -4
- data/lib/device_detector/browser.rb +184 -5
- data/lib/device_detector/client_hint.rb +181 -0
- data/lib/device_detector/device.rb +522 -3
- data/lib/device_detector/os.rb +33 -3
- data/lib/device_detector/parser.rb +25 -3
- data/lib/device_detector/vendor_fragment.rb +25 -0
- data/lib/device_detector/version.rb +1 -1
- data/lib/device_detector.rb +82 -16
- data/regexes/bots.yml +757 -17
- data/regexes/client/browsers.yml +365 -54
- data/regexes/client/hints/apps.yml +102 -0
- data/regexes/client/hints/browsers.yml +195 -0
- data/regexes/client/libraries.yml +200 -3
- data/regexes/client/mobile_apps.yml +396 -14
- data/regexes/client/pim.yml +15 -0
- data/regexes/device/car_browsers.yml +1 -1
- data/regexes/device/consoles.yml +8 -3
- data/regexes/device/mobiles.yml +12126 -2425
- data/regexes/device/portable_media_player.yml +24 -2
- data/regexes/device/shell_tv.yml +16 -0
- data/regexes/device/televisions.yml +26 -4
- data/regexes/oss.yml +381 -50
- metadata +11 -7
data/regexes/oss.yml
CHANGED
@@ -5,6 +5,94 @@
|
|
5
5
|
# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later
|
6
6
|
###############
|
7
7
|
|
8
|
+
##########
|
9
|
+
# RedOS (https://redos.red-soft.ru/)
|
10
|
+
##########
|
11
|
+
- regex: 'RED OS; Linux'
|
12
|
+
name: 'RedOS'
|
13
|
+
version: ''
|
14
|
+
|
15
|
+
##########
|
16
|
+
# RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS)
|
17
|
+
##########
|
18
|
+
- regex: 'Mikrotik/(\d).x'
|
19
|
+
name: 'RouterOS'
|
20
|
+
version: '$1'
|
21
|
+
|
22
|
+
##########
|
23
|
+
# Sirin OS (https://sirinlabs.com/sirin-os/)
|
24
|
+
##########
|
25
|
+
- regex: 'FINNEY U1'
|
26
|
+
name: 'Sirin OS'
|
27
|
+
version: ''
|
28
|
+
|
29
|
+
##########
|
30
|
+
# Nova (https://www.nova.cu/)
|
31
|
+
##########
|
32
|
+
- regex: 'Nova; Linux'
|
33
|
+
name: 'Nova'
|
34
|
+
version: ''
|
35
|
+
|
36
|
+
##########
|
37
|
+
# Bliss OS (https://blissos.org/)
|
38
|
+
##########
|
39
|
+
- regex: 'Android 10.+bliss_maple'
|
40
|
+
name: 'Bliss OS'
|
41
|
+
version: '12'
|
42
|
+
|
43
|
+
##########
|
44
|
+
# TencentOS (https://github.com/Tencent/TencentOS-kernel)
|
45
|
+
##########
|
46
|
+
- regex: 'Linux/(\d+[\.\d]*).+tlinux'
|
47
|
+
name: 'TencentOS'
|
48
|
+
version: '$1'
|
49
|
+
|
50
|
+
##########
|
51
|
+
# Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html)
|
52
|
+
##########
|
53
|
+
- regex: '.+.amzn(\d).x86_64'
|
54
|
+
name: 'Amazon Linux'
|
55
|
+
version: '$1'
|
56
|
+
|
57
|
+
##########
|
58
|
+
# COS (China Operating System - https://web.archive.org/web/20170825001023/http://www.china-cos.com/)
|
59
|
+
##########
|
60
|
+
- regex: ' COS like Android'
|
61
|
+
name: 'China OS'
|
62
|
+
version: ''
|
63
|
+
|
64
|
+
##########
|
65
|
+
# ClearOS Mobile (https://www.clearos.com/products/clearos-editions/clearos-mobile)
|
66
|
+
##########
|
67
|
+
- regex: 'Android (\d+[\.\d]*); ClearPHONE'
|
68
|
+
name: 'ClearOS Mobile'
|
69
|
+
version: '$1'
|
70
|
+
|
71
|
+
##########
|
72
|
+
# Plasma Mobile (https://plasma-mobile.org/)
|
73
|
+
##########
|
74
|
+
- regex: 'Plasma Mobile'
|
75
|
+
name: 'Plasma Mobile'
|
76
|
+
version: ''
|
77
|
+
|
78
|
+
##########
|
79
|
+
# KreaTV
|
80
|
+
##########
|
81
|
+
- regex: 'KreaTV/0.0.0.0'
|
82
|
+
name: 'KreaTV'
|
83
|
+
version: ''
|
84
|
+
|
85
|
+
- regex: 'KreaTV/(\d+[\.\d]+)'
|
86
|
+
name: 'KreaTV'
|
87
|
+
version: '$1'
|
88
|
+
|
89
|
+
##########
|
90
|
+
# Opera TV (https://blogs.opera.com/news/2016/01/ces-2016-meet-opera-tv/)
|
91
|
+
##########
|
92
|
+
- regex: 'Linux (?:[^;]+); Opera TV(?: Store)?/|^Opera/\d+\.\d+ \(Linux mips'
|
93
|
+
name: 'Opera TV'
|
94
|
+
version: ''
|
95
|
+
|
8
96
|
##########
|
9
97
|
# GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about)
|
10
98
|
##########
|
@@ -99,6 +187,9 @@
|
|
99
187
|
- regex: 'HarmonyOS(?:[/ ](\d+[\.\d]+))?'
|
100
188
|
name: 'HarmonyOS'
|
101
189
|
version: '$1'
|
190
|
+
- regex: 'Hmos/1'
|
191
|
+
name: 'HarmonyOS'
|
192
|
+
version: '1.0.0'
|
102
193
|
|
103
194
|
- regex: 'RazoDroiD(?: v(\d+[\.\d]*))?'
|
104
195
|
name: 'RazoDroiD'
|
@@ -132,6 +223,109 @@
|
|
132
223
|
name: 'FydeOS'
|
133
224
|
version: ''
|
134
225
|
|
226
|
+
##########
|
227
|
+
# Revenge OS
|
228
|
+
##########
|
229
|
+
- regex: 'revengeos_x2'
|
230
|
+
name: 'Revenge OS'
|
231
|
+
version: '2'
|
232
|
+
|
233
|
+
##########
|
234
|
+
# Lineage OS
|
235
|
+
##########
|
236
|
+
- regex: 'lineage_\w+'
|
237
|
+
name: 'Lineage OS'
|
238
|
+
version: ''
|
239
|
+
|
240
|
+
#########
|
241
|
+
# Resurrection Remix OS (https://resurrectionremix.com/)
|
242
|
+
##########
|
243
|
+
- regex: 'Android 8(?:[\d.]*);(?: [\w-]+;)? rr_fortuna3g'
|
244
|
+
name: 'Resurrection Remix OS'
|
245
|
+
version: '6'
|
246
|
+
|
247
|
+
##########
|
248
|
+
# Remix OS
|
249
|
+
##########
|
250
|
+
- regex: 'RemixOS|Remix (?:Pro|Mini)'
|
251
|
+
name: 'Remix OS'
|
252
|
+
versions:
|
253
|
+
- regex: 'RemixOS 5'
|
254
|
+
version: '1'
|
255
|
+
- regex: 'RemixOS 6|Remix Mini'
|
256
|
+
version: '2'
|
257
|
+
- regex: 'Remix Pro'
|
258
|
+
version: '3'
|
259
|
+
|
260
|
+
##########
|
261
|
+
# FreeBSD
|
262
|
+
##########
|
263
|
+
- regex: 'FreeBSD.+Android'
|
264
|
+
name: 'FreeBSD'
|
265
|
+
version: ''
|
266
|
+
|
267
|
+
##########
|
268
|
+
# Android TV (https://android.com/tv/)
|
269
|
+
##########
|
270
|
+
- regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
|
271
|
+
name: 'Android TV'
|
272
|
+
version: '$1'
|
273
|
+
|
274
|
+
- regex: 'Android[; ](\d+[\.\d]*).+(?:(?:Android|AT&T) TV|AOSP on r33a0)'
|
275
|
+
name: 'Android TV'
|
276
|
+
version: '$1'
|
277
|
+
|
278
|
+
- regex: 'Windows.+Andr0id TV|.+K_?Android_?TV_'
|
279
|
+
name: 'Android TV'
|
280
|
+
version: ''
|
281
|
+
|
282
|
+
##########
|
283
|
+
# Android SDK Level Api
|
284
|
+
##########
|
285
|
+
- regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[\.\d]*))'
|
286
|
+
name: 'Android'
|
287
|
+
versions:
|
288
|
+
- regex: '(?:Android API 34|34/tclwebkit)'
|
289
|
+
version: '14'
|
290
|
+
- regex: '(?:Android API 33|33/tclwebkit)'
|
291
|
+
version: '13'
|
292
|
+
- regex: '(?:Android API 32|32/tclwebkit)'
|
293
|
+
version: '12.1'
|
294
|
+
- regex: '(?:Android API 31|31/tclwebkit)'
|
295
|
+
version: '12'
|
296
|
+
- regex: '(?:Android API 30|30/tclwebkit)'
|
297
|
+
version: '11'
|
298
|
+
- regex: '(?:Android API 29|29/tclwebkit)'
|
299
|
+
version: '10'
|
300
|
+
- regex: '(?:Android API 28|28/tclwebkit)'
|
301
|
+
version: '9'
|
302
|
+
- regex: '(?:Android API 27|27/tclwebkit)'
|
303
|
+
version: '8.1'
|
304
|
+
- regex: '(?:Android API 26|26/tclwebkit)'
|
305
|
+
version: '8'
|
306
|
+
- regex: '(?:Android API 25|25/tclwebkit)'
|
307
|
+
version: '7.1'
|
308
|
+
- regex: '(?:Android API 24|24/tclwebkit)'
|
309
|
+
version: '7'
|
310
|
+
- regex: '(?:Android API 23|23/tclwebkit)'
|
311
|
+
version: '6'
|
312
|
+
- regex: '(?:Android API 22|22/tclwebkit)'
|
313
|
+
version: '5.1'
|
314
|
+
- regex: '21/tclwebkit'
|
315
|
+
version: '5'
|
316
|
+
- regex: '(?:20|19)/tclwebkit'
|
317
|
+
version: '4.4'
|
318
|
+
- regex: '18/tclwebkit'
|
319
|
+
version: '4.3'
|
320
|
+
- regex: '17/tclwebkit'
|
321
|
+
version: '4.2'
|
322
|
+
- regex: '16/tclwebkit'
|
323
|
+
version: '4.2'
|
324
|
+
- regex: '15/tclwebkit'
|
325
|
+
version: '4.0.3'
|
326
|
+
- regex: '15/tclwebkit'
|
327
|
+
version: '4.0.1'
|
328
|
+
|
135
329
|
##########
|
136
330
|
# Android
|
137
331
|
##########
|
@@ -139,11 +333,11 @@
|
|
139
333
|
name: 'Android'
|
140
334
|
version: '6'
|
141
335
|
|
142
|
-
- regex: '(?:Podbean|Podimo)(?:.*)/Android'
|
336
|
+
- regex: '(?:Podbean|Podimo)(?:.*)/Android|Rutube(?:TV)?BlackAndroid'
|
143
337
|
name: 'Android'
|
144
338
|
version: ''
|
145
339
|
|
146
|
-
- regex: 'Android OS/(\d+[\.\d]*)'
|
340
|
+
- regex: '(?:Android OS|OMDroid)[ /](\d+[\.\d]*)'
|
147
341
|
name: 'Android'
|
148
342
|
version: '$1'
|
149
343
|
|
@@ -159,7 +353,7 @@
|
|
159
353
|
name: 'Android'
|
160
354
|
version: '$1'
|
161
355
|
|
162
|
-
- regex: '(?:(?:Orca-)?Android|Adr)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
356
|
+
- regex: '(?:(?:Orca-)?(?<!like )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[\.\d]*)'
|
163
357
|
name: 'Android'
|
164
358
|
version: '$1'
|
165
359
|
|
@@ -175,7 +369,7 @@
|
|
175
369
|
name: 'Android'
|
176
370
|
version: '$1'
|
177
371
|
|
178
|
-
- regex: ' Adr |Android|Silk-Accelerated=[a-z]{4,5}'
|
372
|
+
- regex: ' Adr |DDG-Android|(?<!like )Android|Silk-Accelerated=[a-z]{4,5}'
|
179
373
|
name: 'Android'
|
180
374
|
version: ''
|
181
375
|
|
@@ -183,14 +377,10 @@
|
|
183
377
|
name: 'Android'
|
184
378
|
version: '$1'
|
185
379
|
|
186
|
-
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe
|
380
|
+
- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|Player FM|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|Linux x86_64; Quest'
|
187
381
|
name: 'Android'
|
188
382
|
version: ''
|
189
383
|
|
190
|
-
- regex: 'Linux; Andr0id[; ](\d+[\.\d]*)'
|
191
|
-
name: 'Android'
|
192
|
-
version: '$1'
|
193
|
-
|
194
384
|
# Inverted Android
|
195
385
|
- regex: 'Linux; diordnA[; ](\d+[\.\d]*)'
|
196
386
|
name: 'Android'
|
@@ -245,6 +435,46 @@
|
|
245
435
|
##########
|
246
436
|
# Linux
|
247
437
|
##########
|
438
|
+
# Linspire (https://www.linspirelinux.com/)
|
439
|
+
- regex: 'Linspire'
|
440
|
+
name: 'Linspire'
|
441
|
+
version: ''
|
442
|
+
|
443
|
+
# LindowsOS (https://web.archive.org/web/20040304161245/http://www.lindows.com/)
|
444
|
+
- regex: 'LindowsOS'
|
445
|
+
name: 'LindowsOS'
|
446
|
+
version: ''
|
447
|
+
|
448
|
+
# Zenwalk (http://www.zenwalk.org/)
|
449
|
+
- regex: 'Zenwalk GNU Linux'
|
450
|
+
name: 'Zenwalk'
|
451
|
+
version: ''
|
452
|
+
|
453
|
+
# Kanotix (http://www.kanotix.com/)
|
454
|
+
- regex: 'Linux.+kanotix'
|
455
|
+
name: 'Kanotix'
|
456
|
+
version: ''
|
457
|
+
|
458
|
+
# moonOS (https://www.moonos.org/)
|
459
|
+
- regex: 'moonOS/(\d+.[\d.]+)'
|
460
|
+
name: 'moonOS'
|
461
|
+
version: '$1'
|
462
|
+
|
463
|
+
# Foresight Linux (https://www.foresightlinux.org/)
|
464
|
+
- regex: 'Foresight Linux'
|
465
|
+
name: 'Foresight Linux'
|
466
|
+
version: ''
|
467
|
+
|
468
|
+
# Pardus (https://www.pardus.org.tr/)
|
469
|
+
- regex: 'Pardus/(\d+.[\d.]+)'
|
470
|
+
name: 'Pardus'
|
471
|
+
version: '$1'
|
472
|
+
|
473
|
+
# Pure OS (https://pureos.net/)
|
474
|
+
- regex: 'Librem 5'
|
475
|
+
name: 'PureOS'
|
476
|
+
version: ''
|
477
|
+
|
248
478
|
# OpenWrt (https://openwrt.org/)
|
249
479
|
- regex: 'uclient-fetch'
|
250
480
|
name: 'OpenWrt'
|
@@ -255,7 +485,7 @@
|
|
255
485
|
name: 'Roku OS'
|
256
486
|
version: '$1'
|
257
487
|
|
258
|
-
- regex: 'Roku(?:OS)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)'
|
488
|
+
- regex: 'Roku(?:OS|4640X)?/(?:DVP|Pluto)?-?(\d+[\.\d]+)?'
|
259
489
|
name: 'Roku OS'
|
260
490
|
version: '$1'
|
261
491
|
|
@@ -308,6 +538,34 @@
|
|
308
538
|
name: 'VectorLinux'
|
309
539
|
version: '$1'
|
310
540
|
|
541
|
+
- regex: 'CentOS Stream (\d)'
|
542
|
+
name: 'CentOS Stream'
|
543
|
+
version: '$1'
|
544
|
+
|
545
|
+
- regex: '.+.el(\d+(?:[_\.]\d+)*).(?:centos|x86_64)'
|
546
|
+
name: 'CentOS'
|
547
|
+
version: '$1'
|
548
|
+
|
549
|
+
- regex: 'CentOS Linux (\d)'
|
550
|
+
name: 'CentOS'
|
551
|
+
version: '$1'
|
552
|
+
|
553
|
+
- regex: 'Fedora/.+.fc(\d+)'
|
554
|
+
name: 'Fedora'
|
555
|
+
version: '$1'
|
556
|
+
|
557
|
+
- regex: 'Mandriva(?: Linux)?/.+mdv(\d+[\.\d]+)'
|
558
|
+
name: 'Mandriva'
|
559
|
+
version: '$1'
|
560
|
+
|
561
|
+
- regex: 'Linux Mint/(\d)'
|
562
|
+
name: 'Mint'
|
563
|
+
version: '$1'
|
564
|
+
|
565
|
+
- regex: 'Zorin OS (\d+)'
|
566
|
+
name: 'ZorinOS'
|
567
|
+
version: '$1'
|
568
|
+
|
311
569
|
- regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[\.\d]+)'
|
312
570
|
name: '$1'
|
313
571
|
version: '$2'
|
@@ -320,12 +578,14 @@
|
|
320
578
|
name: '$1'
|
321
579
|
version: '$2'
|
322
580
|
|
581
|
+
- regex: '.+redhat-linux-gnu'
|
582
|
+
name: 'Red Hat'
|
583
|
+
version: ''
|
584
|
+
|
323
585
|
- regex: 'OS ROSA; Linux'
|
324
586
|
name: 'Rosa'
|
325
587
|
version: ''
|
326
588
|
|
327
|
-
# generic linux match -> end of file
|
328
|
-
|
329
589
|
##########
|
330
590
|
# webOS
|
331
591
|
##########
|
@@ -335,12 +595,16 @@
|
|
335
595
|
versions:
|
336
596
|
- regex: 'WEBOS(\d+[\.\d]+)'
|
337
597
|
version: '$1'
|
338
|
-
- regex: 'Web0S; Linux/SmartTV.+
|
598
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/79'
|
599
|
+
version: '6'
|
600
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/68'
|
339
601
|
version: '5'
|
340
|
-
- regex: 'Web0S; Linux/SmartTV.+
|
602
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/53'
|
341
603
|
version: '4'
|
342
|
-
- regex: 'Web0S; Linux/SmartTV.+
|
604
|
+
- regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/38'
|
343
605
|
version: '3'
|
606
|
+
- regex: 'WEBOS1'
|
607
|
+
version: '1'
|
344
608
|
- regex: 'Web0S; Linux/SmartTV.+Safari/538'
|
345
609
|
version: '2'
|
346
610
|
- regex: 'Web0S; Linux/SmartTV.+Safari/537'
|
@@ -358,7 +622,6 @@
|
|
358
622
|
name: 'MorphOS'
|
359
623
|
version: '$1'
|
360
624
|
|
361
|
-
|
362
625
|
##########
|
363
626
|
# Windows
|
364
627
|
##########
|
@@ -378,7 +641,7 @@
|
|
378
641
|
name: 'Windows'
|
379
642
|
version: ''
|
380
643
|
|
381
|
-
- regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS))/(\d+\.\d+)'
|
644
|
+
- regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS)|WINDOWS_64)/(\d+\.\d+)'
|
382
645
|
name: 'Windows'
|
383
646
|
version: '$1'
|
384
647
|
|
@@ -438,10 +701,14 @@
|
|
438
701
|
name: 'Windows'
|
439
702
|
version: '3.1'
|
440
703
|
|
441
|
-
- regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS'
|
704
|
+
- regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS|ms-office; MSOffice'
|
442
705
|
name: 'Windows'
|
443
706
|
version: ''
|
444
707
|
|
708
|
+
- regex: 'OS/Microsoft_Windows_NT_(\d+\.\d+)'
|
709
|
+
name: 'Windows'
|
710
|
+
version: '$1'
|
711
|
+
|
445
712
|
##########
|
446
713
|
# Haiku OS
|
447
714
|
##########
|
@@ -452,11 +719,15 @@
|
|
452
719
|
##########
|
453
720
|
# tvOS (https://developer.apple.com/tvos/)
|
454
721
|
##########
|
455
|
-
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-
|
722
|
+
- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-7])[_\.]\d+(?:[_.]\d+)*)'
|
723
|
+
name: 'tvOS'
|
724
|
+
version: '$1'
|
725
|
+
|
726
|
+
- regex: 'iOS(?:; |/)((?:9|1[0-7]).\d+(?:[_\.]\d+)*) (?:model/)?AppleTV'
|
456
727
|
name: 'tvOS'
|
457
728
|
version: '$1'
|
458
729
|
|
459
|
-
- regex: '
|
730
|
+
- regex: 'tvOS((?:9|1[0-7]).\d+(?:[_\.]\d+)*);'
|
460
731
|
name: 'tvOS'
|
461
732
|
version: '$1'
|
462
733
|
|
@@ -466,31 +737,34 @@
|
|
466
737
|
- regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /])(\d+[\.\d]*)'
|
467
738
|
name: 'watchOS'
|
468
739
|
version: '$1'
|
740
|
+
- regex: 'Apple Watch(?!;)'
|
741
|
+
name: 'watchOS'
|
742
|
+
version: ''
|
469
743
|
|
470
744
|
##########
|
471
745
|
# iPadOS (https://www.apple.com/ipados/)
|
472
746
|
##########
|
473
|
-
- regex: 'FBMD/iPad;.*FBSV/ ?(1[
|
747
|
+
- regex: 'FBMD/iPad;.*FBSV/ ?(1[3-6]).(\d+[\.\d]*);'
|
474
748
|
name: 'iPadOS'
|
475
749
|
version: '$1.$2'
|
476
750
|
|
477
|
-
- regex: 'iPad
|
751
|
+
- regex: 'iPad(?:OS)?/(1[3-6]).(\d+[\.\d]*)'
|
478
752
|
name: 'iPadOS'
|
479
753
|
version: '$1.$2'
|
480
754
|
|
481
|
-
- regex: '^iPad(?:\d+[\,\d]*)/(1[
|
755
|
+
- regex: '^iPad(?:\d+[\,\d]*)/(1[3-6]).(\d+[\.\d]*)'
|
482
756
|
name: 'iPadOS'
|
483
757
|
version: '$1.$2'
|
484
758
|
|
485
|
-
- regex: 'iPad(?:; iOS|.+CPU OS) ((1[
|
759
|
+
- regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU OS) ((1[3-6])+(?:[_\.]\d+)*)'
|
486
760
|
name: 'iPadOS'
|
487
761
|
version: '$1'
|
488
762
|
|
489
|
-
- regex: 'iOS/(1[
|
763
|
+
- regex: 'iOS/(1[3-6]).(\d+[\.\d]*).+Apple/iPad'
|
490
764
|
name: 'iPadOS'
|
491
765
|
version: '$1.$2'
|
492
766
|
|
493
|
-
- regex: 'iPhone OS,(1[
|
767
|
+
- regex: 'iPhone OS,(1[3-6]).(\d+[\.\d]*).+iPad'
|
494
768
|
name: 'iPadOS'
|
495
769
|
version: '$1.$2'
|
496
770
|
|
@@ -509,13 +783,41 @@
|
|
509
783
|
name: 'iOS'
|
510
784
|
version: '$1'
|
511
785
|
|
786
|
+
- regex: 'iOS (\d+[\.\d]+)\)'
|
787
|
+
name: 'iOS'
|
788
|
+
version: '$1'
|
789
|
+
|
512
790
|
- regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[\.\d]+)'
|
513
791
|
name: 'iOS'
|
514
792
|
version: '$1'
|
515
793
|
|
516
|
-
- regex: 'CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac))'
|
794
|
+
- regex: '^(?!com.apple.Safari.SearchHelper|Safari).*CFNetwork/.+ Darwin/(\d+[\.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))'
|
517
795
|
name: 'iOS'
|
518
796
|
versions:
|
797
|
+
- regex: 'Darwin/23.0.0'
|
798
|
+
version: '17.0'
|
799
|
+
- regex: 'Darwin/22.6.0'
|
800
|
+
version: '16.6'
|
801
|
+
- regex: 'Darwin/22.5.0'
|
802
|
+
version: '16.5'
|
803
|
+
- regex: 'Darwin/22.4.0'
|
804
|
+
version: '16.4'
|
805
|
+
- regex: 'Darwin/22.3.0'
|
806
|
+
version: '16.3'
|
807
|
+
- regex: 'Darwin/22.2.0'
|
808
|
+
version: '16.2'
|
809
|
+
- regex: 'Darwin/22.1.0'
|
810
|
+
version: '16.1'
|
811
|
+
- regex: 'Darwin/22.0.0'
|
812
|
+
version: '16.0'
|
813
|
+
- regex: 'Darwin/21.6.0'
|
814
|
+
version: '15.6'
|
815
|
+
- regex: 'Darwin/21.5.0'
|
816
|
+
version: '15.5'
|
817
|
+
- regex: 'Darwin/21.4.0'
|
818
|
+
version: '15.4'
|
819
|
+
- regex: 'Darwin/21.3.0'
|
820
|
+
version: '15.3'
|
519
821
|
- regex: 'Darwin/21.2.0'
|
520
822
|
version: '15.2'
|
521
823
|
- regex: 'Darwin/21.1.0'
|
@@ -649,7 +951,7 @@
|
|
649
951
|
name: 'iOS'
|
650
952
|
version: '$1.$2.$3'
|
651
953
|
|
652
|
-
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
954
|
+
- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|iOS)[ _/](\d+(?:[_\.]\d+)*)'
|
653
955
|
name: 'iOS'
|
654
956
|
version: '$1'
|
655
957
|
|
@@ -681,7 +983,11 @@
|
|
681
983
|
name: 'iOS'
|
682
984
|
version: '$1'
|
683
985
|
|
684
|
-
- regex: '(?:Apple-)?(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
986
|
+
- regex: '(?:Apple-)?(?<!like )(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?'
|
987
|
+
name: 'iOS'
|
988
|
+
version: '$1'
|
989
|
+
|
990
|
+
- regex: 'dv\(iPh.+ov\((\d+(?:[_\.]\d+)*)\);'
|
685
991
|
name: 'iOS'
|
686
992
|
version: '$1'
|
687
993
|
|
@@ -708,9 +1014,33 @@
|
|
708
1014
|
##########
|
709
1015
|
# Mac
|
710
1016
|
##########
|
711
|
-
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac'
|
1017
|
+
- regex: 'CFNetwork/.+ Darwin/(?:[\d\.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d\.]+)|PowerMac|com.apple.Safari.SearchHelper|^Safari'
|
712
1018
|
name: 'Mac'
|
713
1019
|
versions:
|
1020
|
+
- regex: '(?:x86_64-apple-)?Darwin/?23.0.0'
|
1021
|
+
version: '14.0'
|
1022
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.6.0'
|
1023
|
+
version: '13.5'
|
1024
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.5.0'
|
1025
|
+
version: '13.4'
|
1026
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.4.0'
|
1027
|
+
version: '13.3'
|
1028
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.3.0'
|
1029
|
+
version: '13.2'
|
1030
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.2.0'
|
1031
|
+
version: '13.1'
|
1032
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.1.0'
|
1033
|
+
version: '13.0.1'
|
1034
|
+
- regex: '(?:x86_64-apple-)?Darwin/?22.0.0'
|
1035
|
+
version: '13.0'
|
1036
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.6.0'
|
1037
|
+
version: '12.5'
|
1038
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.5.0'
|
1039
|
+
version: '12.4'
|
1040
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.4.0'
|
1041
|
+
version: '12.3'
|
1042
|
+
- regex: '(?:x86_64-apple-)?Darwin/?21.3.0'
|
1043
|
+
version: '12.2'
|
714
1044
|
- regex: '(?:x86_64-apple-)?Darwin/?21.2.0'
|
715
1045
|
version: '12.1'
|
716
1046
|
- regex: '(?:x86_64-apple-)?Darwin/?21.1.0'
|
@@ -866,7 +1196,7 @@
|
|
866
1196
|
name: 'Mac'
|
867
1197
|
version: '$1'
|
868
1198
|
|
869
|
-
- regex: '(?:macOS[/,]|Mac-)(\d+[\.\d]+)'
|
1199
|
+
- regex: '(?:macOS[ /,]|Mac-)(\d+[\.\d]+)'
|
870
1200
|
name: 'Mac'
|
871
1201
|
version: '$1'
|
872
1202
|
|
@@ -888,10 +1218,17 @@
|
|
888
1218
|
##########
|
889
1219
|
# ChromeOS
|
890
1220
|
##########
|
891
|
-
- regex: 'CrOS [a-z0-9_]+
|
1221
|
+
- regex: 'CrOS [a-z0-9_]+ (\d+[\.\d]+)'
|
892
1222
|
name: 'Chrome OS'
|
893
1223
|
version: '$1'
|
894
1224
|
|
1225
|
+
##########
|
1226
|
+
# Fuchsia
|
1227
|
+
##########
|
1228
|
+
- regex: 'Fuchsia'
|
1229
|
+
name: 'Fuchsia'
|
1230
|
+
version: ''
|
1231
|
+
|
895
1232
|
##########
|
896
1233
|
# BlackBerry
|
897
1234
|
##########
|
@@ -918,9 +1255,9 @@
|
|
918
1255
|
##########
|
919
1256
|
# BeOS
|
920
1257
|
##########
|
921
|
-
- regex: 'BeOS'
|
1258
|
+
- regex: 'BeOS[ +]?(\d[.\d]*)?'
|
922
1259
|
name: 'BeOS'
|
923
|
-
version: ''
|
1260
|
+
version: '$1'
|
924
1261
|
|
925
1262
|
##########
|
926
1263
|
# Symbian
|
@@ -1018,20 +1355,6 @@
|
|
1018
1355
|
name: 'WebTV'
|
1019
1356
|
version: '$1'
|
1020
1357
|
|
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
1358
|
|
1036
1359
|
##########
|
1037
1360
|
# Unix
|
@@ -1083,10 +1406,14 @@
|
|
1083
1406
|
name: 'Nintendo'
|
1084
1407
|
version: '$1'
|
1085
1408
|
|
1086
|
-
- regex: 'PlayStation
|
1409
|
+
- regex: 'PlayStation.+; Linux (\d+[\.\d]+)'
|
1087
1410
|
name: 'PlayStation'
|
1088
1411
|
version: '$1'
|
1089
1412
|
|
1413
|
+
- regex: 'PlayStation ?(\d)(?:[/ ](?:Pro )?(\d+[\.\d]+))?'
|
1414
|
+
name: 'PlayStation'
|
1415
|
+
version: '$1.$2'
|
1416
|
+
|
1090
1417
|
- regex: 'Xbox|KIN\.(?:One|Two)'
|
1091
1418
|
name: 'Xbox'
|
1092
1419
|
version: '360'
|
@@ -1112,7 +1439,11 @@
|
|
1112
1439
|
###########
|
1113
1440
|
# Linux (Generic)
|
1114
1441
|
###########
|
1115
|
-
- regex: 'Linux
|
1442
|
+
- regex: 'Linux/(\d+[\.\d]+)'
|
1443
|
+
name: 'GNU/Linux'
|
1444
|
+
version: '$1'
|
1445
|
+
|
1446
|
+
- regex: 'Linux(?:OS)?[^a-z]|Cinnamon/(?:\d+[\.\d]+)|.+(?:pc|unknown)-linux-gnu'
|
1116
1447
|
name: 'GNU/Linux'
|
1117
1448
|
version: ''
|
1118
1449
|
|