1############### 2# Device Detector - The Universal Device Detection library for parsing User Agents 3# 4# @link https://matomo.org 5# @license http://www.gnu.org/licenses/lgpl.html LGPL v3 or later 6############### 7 8########## 9# Coolita OS (http://www.coolitaos.com/) 10########## 11- regex: 'Coolita OS QJY/.+LiteOS(\d+[.\d]+)' 12 name: 'Coolita OS' 13 version: '$1' 14- regex: 'Coolita OS QJY/(\d+[.\d]+)' 15 name: 'Coolita OS' 16 version: '$1' 17 18########## 19# RTOS & Next 20########## 21- regex: '^NEXT ' 22 name: 'RTOS & Next' 23 version: '' 24 25########## 26# Meta Horizon (https://developers.meta.com/horizon) 27########## 28- regex: '(?:Pacific|(?<!like )Quest).+OculusBrowser|Standalone HMD|PortalGo' 29 name: 'Meta Horizon' 30 version: '' 31 32########## 33# LeafOS (https://www.leafos.org/) 34########## 35- regex: 'LeafOS' 36 name: 'LeafOS' 37 version: '' 38 39########## 40# Puffin OS (https://www.puffin.com/os/help/faq/) 41########## 42- regex: 'Cloud Phone' 43 name: 'Puffin OS' 44 version: '' 45 46########## 47# risingOS (https://github.com/RisingTechOSS/android) 48########## 49- regex: 'RisingOS' 50 name: 'risingOS' 51 version: '' 52 53########## 54# Azure Linux (https://github.com/microsoft/azurelinux) 55########## 56- regex: '.+.cm(\d).x86_64' 57 name: 'Azure Linux' 58 version: '$1' 59 60- regex: 'Linux[/-].+-(azure|Microsoft)' 61 name: 'Azure Linux' 62 version: '' 63 64# ViziOS 65########## 66- regex: 'ViziOS/(\d+[.\d]+)' 67 name: 'ViziOS' 68 version: '$1' 69- regex: 'VIZIO(?: SmartCast|-DTV)' 70 name: 'ViziOS' 71 version: '' 72 73########## 74# blackPanther OS (https://blackpantheros.eu/) 75########## 76- regex: 'blackPanther OS' 77 name: 'blackPanther OS' 78 version: '' 79 80########## 81# WoPhone 82########## 83- regex: 'WoPhone(?:/(\d+[.\d]+))?' 84 name: 'WoPhone' 85 version: '$1' 86 87########## 88# KIN OS (https://en.wikipedia.org/wiki/Microsoft_Kin) 89########## 90- regex: 'KIN\.(?:One|Two) (\d+[.\d]+)' 91 name: 'KIN OS' 92 version: '$1' 93 94########## 95# Star-Blade OS 96########## 97- regex: 'Star-Blade OS' 98 name: 'Star-Blade OS' 99 version: '' 100 101########## 102# Qtopia (https://en.wikipedia.org/wiki/Qt_Extended) 103########## 104- regex: 'Qtopia/(\d+[.\d]+)' 105 name: 'Qtopia' 106 version: '$1' 107 108########## 109# OpenVMS (https://vmssoftware.com/) 110########## 111- regex: 'OpenVMS V(\d+[.\d]+)' 112 name: 'OpenVMS' 113 version: '$1' 114 115########## 116# AROS (https://aros.sourceforge.io/) 117########## 118- regex: 'AROS' 119 name: 'AROS' 120 version: '' 121 122########## 123# NeXTSTEP 124########## 125- regex: '\(NEXT\)' 126 name: 'NeXTSTEP' 127 version: '' 128 129########## 130# NEWS-OS (https://en.wikipedia.org/wiki/Sony_NEWS) 131########## 132- regex: 'NEWS-OS (\d+[.\d]+)' 133 name: 'NEWS-OS' 134 version: '$1' 135 136########## 137# ULTRIX (https://en.wikipedia.org/wiki/Ultrix) 138########## 139- regex: 'ULTRIX (\d+[.\d]+)' 140 name: 'ULTRIX' 141 version: '$1' 142 143########## 144# Turbolinux (http://www.turbolinux.com/) 145########## 146- regex: 'Turbolinux/(\d+[.\d]+)' 147 name: 'Turbolinux' 148 version: '$1' 149 150########## 151# Joli OS (https://www.jolicloud.com/products/) 152########## 153- regex: 'Joli OS/(\d+[.\d]+)' 154 name: 'Joli OS' 155 version: '$1' 156 157########## 158# GENIX 159########## 160- regex: 'GENIX (\d+[.\d]+)' 161 name: 'GENIX' 162 version: '$1' 163 164########## 165# gNewSense (http://www.gnewsense.org) 166########## 167- regex: 'gNewSense/.*\((\d+[.\d]+)' 168 name: 'gNewSense' 169 version: '$1' 170 171########## 172# GEOS 173########## 174- regex: 'Geos (\d+[.\d]+)' 175 name: 'GEOS' 176 version: '$1' 177 178########## 179# Motorola EZX 180########## 181- regex: 'MOT-.*LinuxOS/' 182 name: 'Motorola EZX' 183 version: '' 184 185########## 186# Baidu Yi (https://en.wikipedia.org/wiki/Baidu_Yi) 187########## 188- regex: 'Baidu Yi' 189 name: 'Baidu Yi' 190 version: '' 191 192########## 193# Red Star (https://en.wikipedia.org/wiki/Red_Star_OS) 194########## 195- regex: '붉은별|Fedora/(?:\d+\.[\d.-]+)\.rs(\d+(?:[_.]\d+)*)' 196 name: 'Red Star' 197 version: '$1' 198 199########## 200# Proxmox VE (https://pve.proxmox.com/wiki/Main_Page) 201########## 202- regex: 'Linux/(?:\d+\.[\d.-]+)-(?:pve|v(\d)\+)' 203 name: 'Proxmox VE' 204 version: '$1' 205 206########## 207# OpenVZ (https://openvz.org/) 208########## 209- regex: 'Linux/(?:\d+\.[\d.-]+)-(?:\d+[.\d]+)stab(?:\d+[.\d]+)' 210 name: 'OpenVZ' 211 version: '' 212 213# Rocky Linux (https://rockylinux.org/) 214########## 215- regex: 'rocky/(\d+[.\d]+)' 216 name: 'Rocky Linux' 217 version: '$1' 218 219########## 220# Clear Linux OS (https://www.clearlinux.org/) 221########## 222- regex: 'clear-linux-os/(\d+[.\d]+)' 223 name: 'Clear Linux OS' 224 version: '$1' 225 226########## 227# Alpine Linux (https://www.alpinelinux.org/) 228########## 229- regex: 'alpine/(\d+[.\d]+)' 230 name: 'Alpine Linux' 231 version: '$1' 232 233########## 234# Scientific Linux (https://scientificlinux.org/) 235########## 236- regex: 'scientific/(\d+[.\d]+)' 237 name: 'Scientific Linux' 238 version: '$1' 239 240########## 241# EulerOS (https://developer.huaweicloud.com/intl/en-us/euleros/index.html) 242########## 243- regex: 'eulerosv(\d)r(\d+)' 244 name: 'EulerOS' 245 version: '$1.$2' 246 247########## 248# Loongnix (https://www.loongson.cn/EN/system/loongnix) 249########## 250- regex: 'loongnix-server/(\d+[.\d]+)' 251 name: 'Loongnix' 252 version: '$1' 253 254- regex: 'Linux/(?:\d+\.[\d.-]+)\.lns(\d+(?:[_.]\d+)*)\.loongarch64' 255 name: 'Loongnix' 256 version: '$1' 257 258########## 259# AOSC OS (https://aosc.io/) 260########## 261- regex: 'AOSC OS' 262 name: 'AOSC OS' 263 version: '' 264 265########## 266# SerenityOS (https://github.com/SerenityOS/serenity) 267########## 268- regex: 'SerenityOS|Ladybird/' 269 name: 'SerenityOS' 270 version: '' 271 272########## 273# HELIX OS (https://www.pegasusintelligence.com/communication-security/) 274########## 275- regex: 'Helix Phone' 276 name: 'HELIX OS' 277 version: '' 278 279########## 280# Armadillo OS (https://github.com/pacificresearchalliance/kernel_google_crosshatch) 281########## 282- regex: 'Armadillo' 283 name: 'Armadillo OS' 284 version: '' 285 286# Webian (https://www.webian.org/) 287########## 288- regex: 'Webian' 289 name: 'Webian' 290 version: '' 291 292########## 293# Liri OS (https://liri.io/ | https://github.com/lirios) 294########## 295- regex: 'Linux.*Liri/' 296 name: 'Liri OS' 297 version: '' 298 299########## 300# FRITZ!OS (https://en.avm.de/products/fritzos/) 301########## 302- regex: 'FRITZ!OS(?:/0(\d+[.\d]+))?' 303 name: 'FRITZ!OS' 304 version: '$1' 305 306########## 307# UOS (https://www.chinauos.com/) 308########## 309- regex: 'UOS$' 310 name: 'UOS' 311 version: '' 312 313########## 314# Raspbian (https://www.raspbian.org/) 315########## 316- regex: 'Raspbian/(\d+[.\d]+)' 317 name: 'Raspbian' 318 version: '$1' 319 320########## 321# Raspberry Pi OS (https://www.raspberrypi.com/software/) 322########## 323- regex: 'Raspbian' 324 name: 'Raspberry Pi OS' 325 version: '' 326 327########## 328# BrightSignOS (https://www.brightsign.biz/ecosystem/brightsign-os/) 329########## 330- regex: 'BrightSign/(?:[A-Z0-9]+)/(\d+[.\d]+)' 331 name: 'BrightSignOS' 332 version: '$1' 333- regex: 'BrightSign/(\d+[.\d]+)' 334 name: 'BrightSignOS' 335 version: '$1' 336 337########## 338# LuneOS (https://www.webos-ports.org/) 339########## 340- regex: 'LuneOS' 341 name: 'LuneOS' 342 version: '' 343 344########## 345# Oracle Linux (https://www.oracle.com/linux/) 346########## 347- regex: 'Linux/(?:\d+\.[\d.-]+)\.el(\d+(?:[_.]\d+)*)uek' 348 name: 'Oracle Linux' 349 version: '$1' 350 351########## 352# Kali (https://www.kali.org/) 353########## 354- regex: '.+kali(\d)' 355 name: 'Kali' 356 version: '$1' 357 358# TiVo OS (https://business.tivo.com/products-solutions/tivo-os) 359########## 360- regex: 'TiVoOS/(\d+[.\d]+)' 361 name: 'TiVo OS' 362 version: '$1' 363 364########## 365# VIDAA (https://www.vidaa.com/vidaa-os/) 366########## 367- regex: 'VIDAA/(\d+[.\d]+)' 368 name: 'VIDAA' 369 version: '$1' 370 371########## 372# PICO OS (https://www.picoxr.com/global/software/pico-os) 373########## 374- regex: 'PICO.+OS(\d+[.\d]*)' 375 name: 'PICO OS' 376 version: '$1' 377 378########## 379# RedOS (https://redos.red-soft.ru/) 380########## 381- regex: 'RED OS; Linux' 382 name: 'RedOS' 383 version: '' 384 385########## 386# RouterOS (https://help.mikrotik.com/docs/display/ROS/RouterOS) 387########## 388- regex: 'Mikrotik/(\d)\.x' 389 name: 'RouterOS' 390 version: '$1' 391 392########## 393# Sirin OS (https://sirinlabs.com/sirin-os/) 394########## 395- regex: 'FINNEY U1' 396 name: 'Sirin OS' 397 version: '' 398 399########## 400# Nova (https://www.nova.cu/) 401########## 402- regex: 'Nova; Linux' 403 name: 'Nova' 404 version: '' 405 406########## 407# Bliss OS (https://blissos.org/) 408########## 409- regex: 'Android 10.+bliss_maple' 410 name: 'Bliss OS' 411 version: '12' 412 413########## 414# TencentOS (https://github.com/Tencent/TencentOS-kernel) 415########## 416- regex: '.+tlinux(\d)' 417 name: 'TencentOS' 418 version: '$1' 419 420########## 421# Amazon Linux (https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html) 422########## 423- regex: '.+.amzn(\d)(?:int)?.x86_64|Linux/.+aws' 424 name: 'Amazon Linux' 425 version: '$1' 426 427- regex: 'Linux/.+-c9$' 428 name: 'Amazon Linux' 429 version: '2023' # https://aws.amazon.com/about-aws/whats-new/2023/12/aws-cloud9-amazon-linux-2023/ 430 431########## 432# COS (China Operating System - https://web.archive.org/web/20170825001023/http://www.china-cos.com/) 433########## 434- regex: ' COS like Android' 435 name: 'China OS' 436 version: '' 437 438########## 439# ClearOS Mobile (https://www.clearos.com/products/clearos-editions/clearos-mobile) 440########## 441- regex: 'Android (\d+[.\d]*); ClearPHONE' 442 name: 'ClearOS Mobile' 443 version: '$1' 444 445########## 446# Plasma Mobile (https://plasma-mobile.org/) 447########## 448- regex: 'Plasma Mobile' 449 name: 'Plasma Mobile' 450 version: '' 451 452########## 453# KreaTV 454########## 455- regex: 'KreaTV/0\.0\.0\.0' 456 name: 'KreaTV' 457 version: '' 458 459- regex: 'KreaTV/(\d+[.\d]+)' 460 name: 'KreaTV' 461 version: '$1' 462 463########## 464# Opera TV (https://blogs.opera.com/news/2016/01/ces-2016-meet-opera-tv/) 465########## 466- regex: 'Linux (?:[^;]+); Opera TV(?: Store)?/|^Opera/\d+\.\d+ \(Linux mips' 467 name: 'Opera TV' 468 version: '' 469- regex: 'OPR/.+TV Store/(\d+[.\d]+)' 470 name: 'Opera TV' 471 version: '$1' 472 473########## 474# GridOS (https://web.archive.org/web/20111123141630/http://fusiongarage.com/grid-os/about) 475########## 476- regex: 'Grid OS (\d+[.\d]+)' 477 name: 'GridOS' 478 version: '$1' 479 480########## 481# Caixa Mágica (https://caixamagica.pt/) 482########## 483- regex: 'CaixaMagica' 484 name: 'Caixa Mágica' 485 version: '' 486 487########## 488# Mageia (https://www.mageia.org/en/) 489########## 490- regex: 'Mageia; Linux' 491 name: 'Mageia' 492 version: '' 493 494########## 495# Whale OS (https://www.zeasn.com/) 496########## 497- regex: '(?:WH|WhaleTV)/?(\d+[.\d]+)' 498 name: 'Whale OS' 499 version: '$1' 500 501- regex: 'Zeasn/.*TBrowser/2\.0' # https://partner.zeasn.com/partnerportal/WhaleVersion1/index.jhtml 502 name: 'Whale OS' 503 version: '1' 504 505- regex: 'Zeasn/' 506 name: 'Whale OS' 507 version: '' 508 509########## 510# Tizen (https://www.tizen.org/) 511########## 512- regex: 'Tizen[ /]?(\d+[.\d]+)?' 513 name: 'Tizen' 514 version: '$1' 515 516- regex: 'Maple (?!III)(?:\d+[.\d]+)|Maple_?\d{4}|HbbTV/.+Samsung' 517 name: 'Tizen' 518 version: '' 519 520########## 521# YunOS (Android based) 522########## 523- regex: 'Android (\d+[.\d]+)-RT' 524 name: 'YunOS' 525 version: '$1' 526 527- regex: '(?:Ali)?YunOS[ /]?(\d+[.\d]+)?' 528 name: 'YunOS' 529 version: '$1' 530 531########## 532# Windows Mobile 533########## 534- regex: 'Windows Phone;FBSV/(\d+[.\d]+)' 535 name: 'Windows Phone' 536 version: '$1' 537 538- regex: '(?:Windows Phone (?:OS)?|wds)[ /]?(\d+[.\d]+)' 539 name: 'Windows Phone' 540 version: '$1' 541 542- regex: 'XBLWP7|Windows Phone' 543 name: 'Windows Phone' 544 version: '' 545 546- regex: 'Windows CE(?: (\d+[.\d]+))?' 547 name: 'Windows CE' 548 version: '$1' 549 550- regex: '(?:IEMobile|Windows ?Mobile)(?: (\d+[.\d]+))?' 551 name: 'Windows Mobile' 552 version: '$1' 553 554- regex: 'Windows NT 6\.2; ARM;' 555 name: 'Windows RT' 556 version: '' 557 558- regex: 'Windows NT 6\.3; ARM;' 559 name: 'Windows RT' 560 version: '8.1' 561 562########## 563# Windows IoT 564########## 565- regex: 'Windows IoT 10\.0' 566 name: 'Windows IoT' 567 version: '10' 568 569########## 570# KaiOS (https://www.kaiostech.com/) 571########## 572- regex: 'KAIOS(?:/(\d+[.\d]+))?' 573 name: 'KaiOS' 574 version: '$1' 575 576########## 577# Custom Android Roms 578########## 579- regex: 'HarmonyOS(?:[/ ](\d+[.\d]+))?' 580 name: 'HarmonyOS' 581 version: '$1' 582- regex: 'Hmos/1' 583 name: 'HarmonyOS' 584 version: '1.0.0' 585 586- regex: 'RazoDroiD(?: v(\d+[.\d]*))?' 587 name: 'RazoDroiD' 588 version: '$1' 589 590- regex: 'MildWild(?: CM-(\d+[.\d]*))?' 591 name: 'MildWild' 592 version: '$1' 593 594- regex: 'CyanogenMod(?:[\-/](?:CM)?(\d+[.\d]*))?' 595 name: 'CyanogenMod' 596 version: '$1' 597 598- regex: '(?:.*_)?MocorDroid(?:(\d+[.\d]*))?' 599 name: 'MocorDroid' 600 version: '$1' 601 602- regex: 'FydeOS' 603 name: 'FydeOS' 604 version: '' 605 606########## 607# Fire OS (https://developer.amazon.com/docs/fire-tv/fire-os-overview.html) 608########## 609- regex: 'Fire OS(?:/(\d+[.\d]*))?' 610 name: 'Fire OS' 611 version: '$1' 612 613- regex: '(?:Andr[o0]id (\d([\d.])*);? |Amazon;|smarttv_)AFT|AEO[ACBHKT]|KF[ADFGJKMORSTQ]|.*FIRETVSTICK2018' 614 name: 'Fire OS' 615 versions: 616 - regex: 'Andr[o0]id 1[01].+ (?:AFT|KF[ADFGJKMORSTQ])' 617 version: '8' 618 - regex: 'Andr[o0]id 9.+ (?:AEO[AHT]|AFT|KF[ADFGJKMORSTQ])|AFTSO001' 619 version: '7' 620 - regex: 'Andr[o0]id 7|.+FIRETVSTICK2018' 621 version: '6' 622 - regex: 'Andr[o0]id 5\.1' 623 version: '5' 624 - regex: 'Andr[o0]id 4\.4\.3' 625 version: '4.5.1' 626 - regex: 'Andr[o0]id 4\.4\.2' 627 version: '4' 628 - regex: 'Andr[o0]id 4\.2\.2' 629 version: '3' 630 - regex: 'Andr[o0]id 4\.0\.[34]' 631 version: '3' 632 - regex: 'Andr[o0]id 4\.0' 633 version: '2' 634 - regex: 'Andr[o0]id 2\.3\.3' 635 version: '1' 636 637- regex: 'cordova-amazon-fireos' 638 name: 'Fire OS' 639 version: '' 640 641########## 642# Revenge OS 643########## 644- regex: 'revengeos_x2' 645 name: 'Revenge OS' 646 version: '2' 647 648########## 649# Lineage OS 650########## 651- regex: 'Lineage_(\d+[.\d]*)' 652 name: 'Lineage OS' 653 version: '$1' 654 655- regex: '(?:Android (\d([\d.])*);? )?lineage_\w+' 656 name: 'Lineage OS' 657 versions: 658 - regex: 'Android 15' 659 version: '22' 660 - regex: 'Android 14' 661 version: '21' 662 - regex: 'Android 13' 663 version: '20.0' 664 - regex: 'Android 12\.1' 665 version: '19.1' 666 - regex: 'Android 12' 667 version: '19.0' 668 - regex: 'Android 11' 669 version: '18.0' 670 - regex: 'Android 10' 671 version: '17.0' 672 - regex: 'Android 9' 673 version: '16.0' 674 - regex: 'Android 8\.1' 675 version: '15.1' 676 - regex: 'Android 8' 677 version: '15.0' 678 - regex: 'Android 7\.1' 679 version: '14.1' 680 - regex: 'Android 7' 681 version: '14.0' 682 - regex: 'Android 6' 683 version: '13.0' 684 - regex: 'Android 5\.1' 685 version: '12.1' 686 - regex: 'Android 5' 687 version: '12.0' 688 - regex: 'Android 4\.4' 689 version: '11.0' 690 - regex: 'Android 4\.3' 691 version: '10.2' 692 - regex: 'Android 4\.2' 693 version: '10.1' 694 - regex: 'Android 4' 695 version: '9.1.0' 696 697######### 698# Resurrection Remix OS (https://resurrectionremix.com/) 699########## 700- regex: 'Android 8(?:[\d.]*);(?: [\w-]+;)? rr_fortuna3g' 701 name: 'Resurrection Remix OS' 702 version: '6' 703 704########## 705# Remix OS 706########## 707- regex: 'RemixOS|Remix (?:Pro|Mini)' 708 name: 'Remix OS' 709 versions: 710 - regex: 'RemixOS 5' 711 version: '1' 712 - regex: 'RemixOS 6|Remix Mini' 713 version: '2' 714 - regex: 'Remix Pro' 715 version: '3' 716 717########## 718# FreeBSD 719########## 720- regex: 'FreeBSD.+Android' 721 name: 'FreeBSD' 722 version: '' 723 724########## 725# Wear OS (https://wearos.google.com/) 726########## 727- regex: 'Chrome/(\d+\.[.\d]+) Odd/|SM-R(?:8[6-9]|9)|LEM14' 728 name: 'Wear OS' 729 version: '' 730 731########## 732# SeewoOS 733########## 734- regex: 'SeewoOS x86_64 (\d+[.\d]+)' 735 name: 'SeewoOS' 736 version: '$1' 737 738########## 739# ChromeOS 740########## 741- regex: '(?:CrOS [a-z0-9_]+ |.*Build/R\d+-)(\d+[.\d]+)|Chromebook' 742 name: 'Chrome OS' 743 version: '$1' 744 745# https://chromiumdash.appspot.com/serving-builds?deviceCategory=ChromeOS 746- regex: '(?:Android (?:9|1[0-6])[.\d]*|Linux x86_64); (?:asurada|atlas|brask|brya|cherry|coral|corsola|dedede|drallion|elm|eve|fizz|geralt|grunt|guybrush|hana|hatch|jacuzzi|kalista|kukui|nami|nautilus|nissa|nocturne|octopus|puff|pyro|rammus|reef|rex|sand|sarien|skyrim|snappy|soraka|staryu|strongbad|trogdor|volteer|zork)\)' 747 name: 'Chrome OS' 748 version: '' 749 750########## 751# Android TV (https://android.com/tv/) 752########## 753- regex: 'Linux; Andr0id[; ](\d+[.\d]*)' 754 name: 'Android TV' 755 version: '$1' 756 757- regex: 'Android[; ](\d+[.\d]*).+(?:(?:Android(?: UHD)?|AT&T|Google|Smart)[ _]?TV|AOSP on r33a0|BRAVIA|wv-atv)' 758 name: 'Android TV' 759 version: '$1' 760 761- regex: 'Windows.+Andr0id TV|.+(?:K_?Android_?TV_|AndroidTV|GoogleTV_)' 762 name: 'Android TV' 763 version: '' 764 765########## 766# Android SDK Level Api 767########## 768- regex: '(?:Android API \d+|\d+/tclwebkit(?:\d+[.\d]*)|(?:(?<!\d )Android/\d{2}|Android (?!1[0-6])\d{2})(?![^; ]))' 769 name: 'Android' 770 versions: 771 - regex: 'Android API 36|36/tclwebkit|Android[ /]36' 772 version: '16' 773 - regex: 'Android API 35|35/tclwebkit|Android[ /]35' 774 version: '15' 775 - regex: 'Android API 34|34/tclwebkit|Android[ /]34' 776 version: '14' 777 - regex: 'Android API 33|33/tclwebkit|Android[ /]33' 778 version: '13' 779 - regex: 'Android API 32|32/tclwebkit|Android[ /]32' 780 version: '12.1' 781 - regex: 'Android API 31|31/tclwebkit|Android[ /]31' 782 version: '12' 783 - regex: 'Android API 30|30/tclwebkit|Android[ /]30' 784 version: '11' 785 - regex: 'Android API 29|29/tclwebkit|Android[ /]29' 786 version: '10' 787 - regex: 'Android API 28|28/tclwebkit|Android[ /]28' 788 version: '9' 789 - regex: 'Android API 27|27/tclwebkit|Android[ /]27' 790 version: '8.1' 791 - regex: 'Android API 26|26/tclwebkit|Android[ /]26' 792 version: '8' 793 - regex: 'Android API 25|25/tclwebkit|Android[ /]25' 794 version: '7.1' 795 - regex: 'Android API 24|24/tclwebkit|Android[ /]24' 796 version: '7' 797 - regex: 'Android API 23|23/tclwebkit|Android[ /]23' 798 version: '6' 799 - regex: 'Android API 22|22/tclwebkit|Android[ /]22' 800 version: '5.1' 801 - regex: 'Android API 21|21/tclwebkit|Android[ /]21' 802 version: '5' 803 - regex: 'Android API (?:20|19)|(?:20|19)/tclwebkit|Android[ /](?:20|19)' 804 version: '4.4' 805 - regex: 'Android API 18|18/tclwebkit|Android[ /]18' 806 version: '4.3' 807 - regex: 'Android API 17|17/tclwebkit|Android[ /]17' 808 version: '4.2' 809 - regex: 'Android API 16|16/tclwebkit|Android[ /]16' 810 version: '4.1' 811 - regex: 'Android API 15|15/tclwebkit|Android[ /]15' 812 version: '4.0.3' 813 - regex: 'Android API 14|14/tclwebkit|Android[ /]14' 814 version: '4.0.1' 815 816########## 817# Android 818########## 819- regex: 'Android Marshmallow' 820 name: 'Android' 821 version: '6' 822 823- regex: '(?:Podbean|Podimo)(?:.*)/Android|Rutube(?:TV)?BlackAndroid' 824 name: 'Android' 825 version: '' 826 827- regex: '(?:Android OS|OMDroid|sdk_gphone64_arm64-userdebug|StarOS)[ /](\d+[.\d]*)' 828 name: 'Android' 829 version: '$1' 830 831- regex: 'Pinterest for Android(?: Tablet)?/.*; (\d(?:[\d.]*))\)$' 832 name: 'Android' 833 version: '$1' 834 835- regex: 'Android; (\d+[.\d]*); Mobile;' 836 name: 'Android' 837 version: '$1' 838 839- regex: '[ ]([\d.]+)\) AppleWebKit.*ROBLOX Android App' 840 name: 'Android' 841 version: '$1' 842 843- regex: '(?:(?:Orca-)?(?<!like |/|RadioPublic |Anghami |Callpod Keeper for )Android|Adr|AOSP)[ /]?(?:[a-z]+ )?(\d+[.\d]*)' 844 name: 'Android' 845 version: '$1' 846 847- regex: '(?:Allview_TX1_Quasar|Cosmote_My_mini_Tab) (\d+[.\d]*)' 848 name: 'Android' 849 version: '$1' 850 851- regex: 'Android ?(?:jelly bean|Kit Kat|S\.O\. Ginger Bread|The FireCyano|:) (\d+[.\d]*)' 852 name: 'Android' 853 version: '$1' 854 855- regex: '(?:Orca-Android|FB4A).*FBSV/(\d+[.\d]*);' 856 name: 'Android' 857 version: '$1' 858 859- regex: '(?:TwitterAndroid).*[ /](?:[a-z]+ )?(\d+[.\d]*)' 860 name: 'Android' 861 version: '$1' 862 863- regex: '\(Android:.*\); API (\d+[.\d]*)' 864 name: 'Android' 865 version: '$1' 866 867- regex: 'Android-(\d+[.\d]*);' 868 name: 'Android' 869 version: '$1' 870 871- regex: ' Adr |.*(?<!like |/ )Android|Silk-Accelerated=[a-z]{4,5}' 872 name: 'Android' 873 version: '' 874 875- regex: 'BeyondPod|AntennaPod|Podkicker|DoggCatcher|okhttp|Podcatcher Deluxe|Sonos/.+\(ACR_|.*WhatsApp/.*A$' 876 name: 'Android' 877 version: '' 878 879# Inverted Android 880- regex: 'Linux; diordnA[; ](\d+[.\d]*)' 881 name: 'Android' 882 version: '$1' 883 884- regex: '^A/(\d+[.\d]*)/' 885 name: 'Android' 886 version: '$1' 887 888########## 889## Sailfish OS 890########### 891- regex: 'Sailfish|Jolla' 892 name: 'Sailfish OS' 893 version: '' 894 895########## 896# AmigaOS 897########## 898- regex: 'AmigaOS[ ]?(\d+[.\d]+)' 899 name: 'AmigaOS' 900 version: '$1' 901 902- regex: 'AmigaOS|AmigaVoyager|Amiga-AWeb' 903 name: 'AmigaOS' 904 version: '' 905 906########## 907# ThreadX 908########## 909- regex: 'ThreadX(?:_OS)?(?:/(\d+[.\d]*))?' 910 name: 'ThreadX' 911 version: '$1' 912 913########## 914# MTK / Nucleus 915########## 916- regex: 'Nucleus(?:(?: |/v?)(\d+[.\d]*))?' 917 name: 'MTK / Nucleus' 918 version: '$1' 919- regex: 'MTK(?:(?: |/v?)(\d+[.\d]*))?' 920 name: 'MTK / Nucleus' 921 version: '$1' 922 923########## 924# MRE / MAUI Runtime Environment 925########## 926- regex: 'MRE/(\d+)\.(\d+).*;MAUI' 927 name: 'MRE' 928 version: '$1.$2' 929 930########## 931# Linux 932########## 933# Linspire (https://www.linspirelinux.com/) 934- regex: 'Linspire' 935 name: 'Linspire' 936 version: '' 937 938# LindowsOS (https://web.archive.org/web/20040304161245/http://www.lindows.com/) 939- regex: 'LindowsOS' 940 name: 'LindowsOS' 941 version: '' 942 943# Zenwalk (http://www.zenwalk.org/) 944- regex: 'Zenwalk GNU Linux' 945 name: 'Zenwalk' 946 version: '' 947 948# Kanotix (http://www.kanotix.com/) 949- regex: 'Linux.+kanotix' 950 name: 'Kanotix' 951 version: '' 952 953# moonOS (https://www.moonos.org/) 954- regex: 'moonOS/(\d+.[\d.]+)' 955 name: 'moonOS' 956 version: '$1' 957 958# Foresight Linux (https://www.foresightlinux.org/) 959- regex: 'Foresight Linux' 960 name: 'Foresight Linux' 961 version: '' 962 963# Pardus (https://www.pardus.org.tr/) 964- regex: 'Pardus/(\d+.[\d.]+)' 965 name: 'Pardus' 966 version: '$1' 967 968# Pure OS (https://pureos.net/) 969- regex: 'Librem 5' 970 name: 'PureOS' 971 version: '' 972 973# OpenWrt (https://openwrt.org/) 974- regex: 'uclient-fetch' 975 name: 'OpenWrt' 976 version: '' 977 978# Roku OS (https://www.roku.com/how-it-works/roku-os) 979- regex: 'RokuOS/.+RokuOS (\d+.[\d.]+)' 980 name: 'Roku OS' 981 version: '$1' 982 983- regex: 'Roku(?:OS|4640X)?/(?:DVP|Pluto)?-?(\d+[.\d]+)?' 984 name: 'Roku OS' 985 version: '$1' 986 987- regex: 'Roku; (?:AP|UI); (\d+[.\d]+)' 988 name: 'Roku OS' 989 version: '$1' 990 991- regex: 'RokuBrowser/.+\(TV-([a-z0-9]+)-(\d+.[\d.]+)\)' 992 name: 'Roku OS' 993 version: '$2' 994 995# DVKBuntu (https://www.dvkbuntu.org/) 996- regex: 'dvkbuntu' 997 name: 'DVKBuntu' 998 version: '' 999 1000# Lumin OS (https://developer.magicleap.com/en-us/learn/guides/lumin-os-release-notes-summary) 1001- regex: 'Helio/(\d+[.\d]+)' 1002 name: 'Lumin OS' 1003 version: '$1' 1004 1005# HasCodingOS (https://forum.hascoding.com/HasCodingOS) 1006- regex: 'HasCodingOs (\d+[.\d]+)' 1007 name: 'HasCodingOS' 1008 version: '$1' 1009 1010# PCLinuxOS (https://www.pclinuxos.com/) 1011- regex: 'PCLinuxOS/(\d+[.\d]+)' 1012 name: 'PCLinuxOS' 1013 version: '$1' 1014 1015- regex: '(Ordissimo|webissimo3)' 1016 name: 'Ordissimo' 1017 version: '' 1018 1019# Fenix (https://fenixlinux.com/) 1020- regex: '(?:Win|Sistema )Fenix' 1021 name: 'Fenix' 1022 version: '' 1023 1024- regex: 'TOS; Linux' 1025 name: 'TmaxOS' 1026 version: '' 1027 1028- regex: 'Maemo' 1029 name: 'Maemo' 1030 version: '' 1031 1032- regex: 'Arch ?Linux(?:[ /\-](\d+[.\d]+))?' 1033 name: 'Arch Linux' 1034 version: '$1' 1035 1036- regex: 'VectorLinux(?: package)?(?:[ /\-](\d+[.\d]+))?' 1037 name: 'VectorLinux' 1038 version: '$1' 1039 1040- regex: 'sles/(\d+[.\d]+)' 1041 name: 'SUSE' 1042 version: '$1' 1043 1044- regex: '(?:rhel|Red Hat Enterprise Linux Server)/(\d+[.\d]+)' 1045 name: 'Red Hat' 1046 version: '$1' 1047 1048- regex: '.+redhat-linux-gnu|rhel|Red Hat Enterprise Linux Server' 1049 name: 'Red Hat' 1050 version: '' 1051 1052- regex: 'CentOS Stream (\d)' 1053 name: 'CentOS Stream' 1054 version: '$1' 1055 1056- regex: 'centos(?: Linux)?/(\d+[.\d]+) ' 1057 name: 'CentOS' 1058 version: '$1' 1059 1060- regex: '.+.el(\d+(?:[_.]\d+)*).(?:centos|x86_64)' 1061 name: 'CentOS' 1062 version: '$1' 1063 1064- regex: 'CentOS Linux (\d)' 1065 name: 'CentOS' 1066 version: '$1' 1067 1068- regex: 'Fedora/.+.fc(\d+)' 1069 name: 'Fedora' 1070 version: '$1' 1071 1072- regex: 'Mandriva(?: Linux)?/.+mdv(\d+[.\d]+)' 1073 name: 'Mandriva' 1074 version: '$1' 1075 1076- regex: 'Linux Mint/(\d)' 1077 name: 'Mint' 1078 version: '$1' 1079 1080- regex: 'Zorin OS (\d+)' 1081 name: 'ZorinOS' 1082 version: '$1' 1083 1084- regex: 'Ubuntu[-/]hardy' 1085 name: 'Ubuntu' 1086 version: '8.04' 1087 1088- regex: 'debian/stretch' 1089 name: 'Debian' 1090 version: '9.13' 1091 1092- regex: 'Ubuntu[-/]feisty' 1093 name: 'Ubuntu' 1094 version: '7.04' 1095 1096- regex: 'Ubuntu[-/]edgy' 1097 name: 'Ubuntu' 1098 version: '6.10' 1099 1100- regex: 'Ubuntu[-/]dapper' 1101 name: 'Ubuntu' 1102 version: '6.06' 1103 1104- regex: 'Ubuntu[-/]breezy' 1105 name: 'Ubuntu' 1106 version: '5.10' 1107 1108- regex: 'Ubuntu[ /](\d+[.\d]+)' 1109 name: 'Ubuntu' 1110 version: '$1' 1111 1112- regex: 'Linux; .*((?:Debian|Knoppix|Mint|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack))[ /](\d+[.\d]+)' 1113 name: '$1' 1114 version: '$2' 1115 1116- regex: 'Deepin[ /](\d+[.\d]+)' 1117 name: 'Deepin' 1118 version: '$1' 1119 1120- regex: '(Debian|Knoppix|Mint(?! Browser)|Ubuntu|Kubuntu|Xubuntu|Lubuntu|Fedora|Red Hat|Mandriva|Gentoo|Sabayon|Slackware|SUSE|CentOS|BackTrack|Freebox|ASPLinux)(?:(?: Enterprise)? Linux)?(?:[ /\-](\d+[.\d]+))?' 1121 name: '$1' 1122 version: '$2' 1123 1124- regex: 'OS ROSA; Linux' 1125 name: 'Rosa' 1126 version: '' 1127 1128########## 1129# webOS 1130########## 1131- regex: '(?:Web0S; .*WEBOS|webOS|web0S|Palm webOS|hpwOS)(?:[/]?(\d+[.\d]+))?' 1132 name: 'webOS' 1133 version: '$1' 1134 versions: 1135 - regex: 'WEBOS(\d+[.\d]+)' 1136 version: '$1' 1137 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/108' 1138 version: '24' 1139 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/94' 1140 version: '23' 1141 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/87' 1142 version: '22' 1143 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/79' 1144 version: '6' 1145 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/68' 1146 version: '5' 1147 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/53' 1148 version: '4' 1149 - regex: 'Web0S; Linux/SmartTV.+Chr[o0]me/38' 1150 version: '3' 1151 - regex: 'WEBOS1' 1152 version: '1' 1153 - regex: 'Web0S; Linux/SmartTV.+Safari/538' 1154 version: '2' 1155 - regex: 'Web0S; Linux/SmartTV.+Safari/537' 1156 version: '1' 1157 1158- regex: '(?:PalmOS|Palm OS)(?:[/ ](\d+[.\d]+))?|Palm' 1159 name: 'palmOS' 1160 version: '$1' 1161 1162- regex: 'Xiino(?:.*v\. (\d+[.\d]+))?' # palmOS only browser 1163 name: 'palmOS' 1164 version: '$1' 1165 1166- regex: 'MorphOS(?:[ /](\d+[.\d]+))?' 1167 name: 'MorphOS' 1168 version: '$1' 1169 1170########## 1171# Windows 1172########## 1173- regex: 'FBW.+FBSV/(\d+[.\d]*);' 1174 name: 'Windows' 1175 version: '$1' 1176 1177- regex: 'Windows.+OS: (\d+[.\d]*)' 1178 name: 'Windows' 1179 version: '$1' 1180 1181- regex: 'Windows; ?(\d+[.\d]*);' 1182 name: 'Windows' 1183 version: '$1' 1184 1185- regex: 'mingw32|winhttp|WhatsApp/.*W$' 1186 name: 'Windows' 1187 version: '' 1188 1189- regex: '(?:Windows(?:-Update-Agent)?|Microsoft-(?:CryptoAPI|Delivery-Optimization|WebDAV-MiniRedir|WNS)|WINDOWS_64)/(\d+\.\d+)' 1190 name: 'Windows' 1191 version: '$1' 1192 1193- regex: 'Windows-(1[01])-' 1194 name: 'Windows' 1195 version: '$1' 1196 1197- regex: 'CYGWIN_NT-10\.0|Win(?:dows )?NT 10\.0|Windows[ /]10' 1198 name: 'Windows' 1199 version: '10' 1200 1201- regex: 'CYGWIN_NT-6\.4|Windows NT 6\.4|Windows 10|win10' 1202 name: 'Windows' 1203 version: '10' 1204 1205- regex: 'Windows[/-](2016|2019|2022|2025)Server' 1206 name: 'Windows' 1207 version: 'Server $1' 1208 1209- regex: 'Windows/2012ServerR2' 1210 name: 'Windows' 1211 version: 'Server 2012 R2' 1212 1213- regex: 'CYGWIN_NT-6\.3|Windows NT 6\.3|Windows[ /]8\.1' 1214 name: 'Windows' 1215 version: '8.1' 1216 1217- regex: 'Windows/2012Server' 1218 name: 'Windows' 1219 version: 'Server 2012' 1220 1221- regex: 'CYGWIN_NT-6\.2|Windows NT 6\.2|Windows 8|post2008Server' 1222 name: 'Windows' 1223 version: '8' 1224 1225- regex: 'Windows/2008ServerR2' 1226 name: 'Windows' 1227 version: 'Server 2008 R2' 1228 1229- regex: 'CYGWIN_NT-6\.1|Windows NT 6\.1|Windows[ /]7|win7|Windows \(6\.1' 1230 name: 'Windows' 1231 version: '7' 1232 1233- regex: 'CYGWIN_NT-6\.0|Windows NT 6\.0|Windows Vista' 1234 name: 'Windows' 1235 version: 'Vista' 1236 1237- regex: 'CYGWIN_NT-5\.2|Windows NT 5\.2|Windows Server 2003 / XP x64|Windows/2003Server' 1238 name: 'Windows' 1239 version: 'Server 2003' 1240 1241- regex: 'CYGWIN_NT-5\.1|Windows NT 5\.1|(?:Microsoft-)?Windows[ -]XP' 1242 name: 'Windows' 1243 version: 'XP' 1244 1245- regex: 'CYGWIN_NT-5\.0|Windows NT 5\.0|Windows 2000' 1246 name: 'Windows' 1247 version: '2000' 1248 1249- regex: 'CYGWIN_NT-4\.0|Windows NT 4\.0|WinNT(?! 10)|Windows NT' 1250 name: 'Windows' 1251 version: 'NT' 1252 1253- regex: 'CYGWIN_ME-4\.90|Win 9x 4\.90|Windows ME' 1254 name: 'Windows' 1255 version: 'ME' 1256 1257- regex: 'CYGWIN_98-4\.10|Win98|Windows 98' 1258 name: 'Windows' 1259 version: '98' 1260 1261- regex: 'CYGWIN_95-4\.0|Win32|Win95|Windows 95|Windows_95' 1262 name: 'Windows' 1263 version: '95' 1264 1265- regex: 'Windows 3\.1' 1266 name: 'Windows' 1267 version: '3.1' 1268 1269- regex: 'Windows|.+win32|Win64|MSDW|HandBrake Win Upd|Microsoft BITS|ms-office; MSOffice' 1270 name: 'Windows' 1271 version: '' 1272 1273- regex: 'OS/Microsoft_Windows_NT_(\d+\.\d+)' 1274 name: 'Windows' 1275 version: '$1' 1276 1277########## 1278# Haiku OS 1279########## 1280- regex: 'Haiku' 1281 name: 'Haiku OS' 1282 version: '' 1283 1284########## 1285# tvOS (https://developer.apple.com/tvos/) 1286########## 1287- regex: 'Apple ?TV.*CPU (?:iPhone )?OS ((?:9|1[0-8])[_.]\d+(?:[_.]\d+)*)' 1288 name: 'tvOS' 1289 version: '$1' 1290 1291- regex: 'Apple TV; iOS ((?:9|1[0-8])[_.]\d+(?:[_.]\d+)*)' 1292 name: 'tvOS' 1293 version: '$1' 1294 1295- regex: 'iOS(?:; |/)((?:9|1[0-8])\.\d+(?:[_.]\d+)*) (?:model/)?AppleTV' 1296 name: 'tvOS' 1297 version: '$1' 1298 1299- regex: 'tvOS[ /]?((?:9|1[0-8])\.\d+(?:[_.]\d+)*);?' 1300 name: 'tvOS' 1301 version: '$1' 1302 1303- regex: 'AppleTV(?:/?(\d+[.\d]+))?' 1304 name: 'tvOS' 1305 version: '$1' 1306 1307########## 1308# watchOS (https://developer.apple.com/watchos/) 1309########## 1310- regex: '(?:Watch1,[12]/|Watch OS,|watchOS[ /]?)(\d+[.\d]*)?' 1311 name: 'watchOS' 1312 version: '$1' 1313- regex: 'Apple Watch(?!;)' 1314 name: 'watchOS' 1315 version: '' 1316 1317########## 1318# iPadOS (https://www.apple.com/ipados/) 1319########## 1320- regex: 'FBMD/iPad;.*FBSV/ ?(1[3-8]|26).(\d+[.\d]*);' 1321 name: 'iPadOS' 1322 version: '$1.$2' 1323 1324- regex: 'iPad(?:OS)?[ /](1[3-8]|26)\.(\d+[.\d]*)' 1325 name: 'iPadOS' 1326 version: '$1.$2' 1327 1328- regex: '^iPad(?:\d+[\,\d]*)/(1[3-8]|26)\.(\d+[.\d]*)' 1329 name: 'iPadOS' 1330 version: '$1.$2' 1331 1332- regex: 'iPad(?:; (?:iOS|iPadOS|iPhone OS)|.+CPU (?:iPad |iPhone )?OS) ((1[3-8]|26)+(?:[_.]\d+)*)' 1333 name: 'iPadOS' 1334 version: '$1' 1335 1336- regex: 'iOS/(1[3-8]|26)\.(\d+[.\d]*).+Apple/iPad' 1337 name: 'iPadOS' 1338 version: '$1.$2' 1339 1340- regex: 'iPhone OS,(1[3-8]|26)\.(\d+[.\d]*).+iPad' 1341 name: 'iPadOS' 1342 version: '$1.$2' 1343 1344- regex: 'iphoneos(1[3-8]|26)\.(\d+[.\d]*); iPad' 1345 name: 'iPadOS' 1346 version: '$1.$2' 1347 1348- regex: 'Pinterest for iOS/.*iPad.*; (\d(?:[\d.]*))[)]$' 1349 name: 'iPadOS' 1350 version: '$1' 1351 1352########## 1353# iOS 1354########## 1355- regex: 'iPad/([89]|1[012])\.(\d+[.\d]*)' 1356 name: 'iOS' 1357 version: '$1.$2' 1358 1359- regex: '^(?:iPad|iPhone)(?:\d+[\,\d]*)[/_](\d+[.\d]+)' 1360 name: 'iOS' 1361 version: '$1' 1362 1363- regex: 'iphoneos(1[3-8]|26)\.(\d+[.\d]*); iPhone' 1364 name: 'iOS' 1365 version: '$1.$2' 1366 1367- regex: 'Pinterest for iOS/.*iPhone.*; (\d(?:[\d.]*))[)]$' 1368 name: 'iOS' 1369 version: '$1' 1370 1371- regex: 'iOS (\d+[.\d]+)\)' 1372 name: 'iOS' 1373 version: '$1' 1374 1375- regex: 'iPhone OS ([0-9]{1})([0-9]{1})([0-9]{1})' 1376 name: 'iOS' 1377 version: '$1.$2.$3' 1378 1379- regex: '(?:CPU OS|iPh(?:one)?[ _]OS|iPhone.+ OS|PodMN.+iPhone|iOS)[ _/](\d+(?:[_.]\d+)*)' 1380 name: 'iOS' 1381 version: '$1' 1382 1383- regex: '(?:iPhone ?OS|iOS(?: Version)?)(?:/|; |,)(\d+[.\d]+)' 1384 name: 'iOS' 1385 version: '$1' 1386 1387- regex: '^(?!com\.apple\.Safari\.SearchHelper|Safari|NetworkingExtension).*(?:CFNetwork|Mana)/.+ Darwin/(\d+[.\d]+)(?!.*(?:x86_64|i386|PowerMac|Power%20Macintosh))' 1388 name: 'iOS' 1389 versions: 1390 - regex: 'Darwin/25\.0\.0' 1391 version: '26' 1392 - regex: 'Darwin/24\.5\.0' 1393 version: '18.5' 1394 - regex: 'Darwin/24\.4\.0' 1395 version: '18.4' 1396 - regex: 'Darwin/24\.3\.0' 1397 version: '18.3' 1398 - regex: 'Darwin/24\.2\.0' 1399 version: '18.2' 1400 - regex: 'Darwin/24\.1\.0' 1401 version: '18.1' 1402 - regex: 'Darwin/24\.0\.0' 1403 version: '18.0' 1404 - regex: 'Darwin/23\.6\.0' 1405 version: '17.6' 1406 - regex: 'Darwin/23\.5\.0' 1407 version: '17.5' 1408 - regex: 'Darwin/23\.4\.0' 1409 version: '17.4' 1410 - regex: 'Darwin/23\.3\.0' 1411 version: '17.3' 1412 - regex: 'Darwin/23\.2\.0' 1413 version: '17.2' 1414 - regex: 'Darwin/23\.1\.0' 1415 version: '17.1' 1416 - regex: 'Darwin/23\.0\.0' 1417 version: '17.0' 1418 - regex: 'Darwin/22\.6\.0' 1419 version: '16.6' 1420 - regex: 'Darwin/22\.5\.0' 1421 version: '16.5' 1422 - regex: 'Darwin/22\.4\.0' 1423 version: '16.4' 1424 - regex: 'Darwin/22\.3\.0' 1425 version: '16.3' 1426 - regex: 'Darwin/22\.2\.0' 1427 version: '16.2' 1428 - regex: 'Darwin/22\.1\.0' 1429 version: '16.1' 1430 - regex: 'Darwin/22\.0\.0' 1431 version: '16.0' 1432 - regex: 'Darwin/21\.6\.0' 1433 version: '15.6' 1434 - regex: 'Darwin/21\.5\.0' 1435 version: '15.5' 1436 - regex: 'Darwin/21\.4\.0' 1437 version: '15.4' 1438 - regex: 'Darwin/21\.3\.0' 1439 version: '15.3' 1440 - regex: 'Darwin/21\.2\.0' 1441 version: '15.2' 1442 - regex: 'Darwin/21\.1\.0' 1443 version: '15.1' 1444 - regex: 'Darwin/21\.0\.0' 1445 version: '15.0' 1446 - regex: 'Darwin/20\.6\.0' 1447 version: '14.7' 1448 - regex: 'Darwin/20\.5\.0' 1449 version: '14.6' 1450 - regex: 'Darwin/20\.4\.0' 1451 version: '14.5' 1452 - regex: 'Darwin/20\.3\.0' 1453 version: '14.4' 1454 - regex: 'Darwin/20\.2\.0' 1455 version: '14.3' 1456 - regex: 'Darwin/20\.1\.0' 1457 version: '14.2' 1458 - regex: 'Darwin/20\.0\.0' 1459 version: '14.0' 1460 - regex: 'Darwin/19\.6\.0' 1461 version: '13.6' 1462 - regex: 'Darwin/19\.5\.0' 1463 version: '13.5' 1464 - regex: 'Darwin/19\.4\.0' 1465 version: '13.4' 1466 - regex: 'Darwin/19\.3\.0' 1467 version: '13.3.1' 1468 - regex: 'Darwin/19\.2\.0' 1469 version: '13.3' 1470 - regex: 'Darwin/19\.0\.0' 1471 version: '13.0' 1472 - regex: 'Darwin/18\.7\.0' 1473 version: '12.4' 1474 - regex: 'Darwin/18\.6\.0' 1475 version: '12.3' 1476 - regex: 'Darwin/18\.5\.0' 1477 version: '12.2' 1478 - regex: 'Darwin/18\.2\.0' 1479 version: '12.1' 1480 - regex: 'Darwin/18\.0\.0' 1481 version: '12.0' 1482 - regex: 'Darwin/17\.7\.0' 1483 version: '11.4.1' 1484 - regex: 'Darwin/17\.6\.0' 1485 version: '11.4' 1486 - regex: 'Darwin/17\.5\.0' 1487 version: '11.3' 1488 - regex: 'Darwin/17\.4\.0' 1489 version: '11.2.6' 1490 - regex: 'Darwin/17\.3\.0' 1491 version: '11.2' 1492 - regex: 'CFNetwork/889' 1493 version: '11.1' 1494 - regex: 'CFNetwork/887' 1495 version: '11.0' 1496 - regex: 'CFNetwork/811' 1497 version: '10.3' 1498 - regex: 'CFNetwork/808\.3' 1499 version: '10.3' 1500 - regex: 'CFNetwork/808\.2' 1501 version: '10.2' 1502 - regex: 'CFNetwork/808\.1' 1503 version: '10.1' 1504 - regex: 'CFNetwork/808\.0' 1505 version: '10.0' 1506 - regex: 'CFNetwork/808' 1507 version: '10' 1508 - regex: 'CFNetwork/758\.5\.3' 1509 version: '9.3.5' 1510 - regex: 'CFNetwork/758\.4\.3' 1511 version: '9.3.2' 1512 - regex: 'CFNetwork/758\.3\.15' 1513 version: '9.3' 1514 - regex: 'CFNetwork/758\.2\.[78]' 1515 version: '9.2' 1516 - regex: 'CFNetwork/758\.1\.6' 1517 version: '9.1' 1518 - regex: 'CFNetwork/758\.0\.2' 1519 version: '9.0' 1520 - regex: 'CFNetwork/711\.5\.6' 1521 version: '8.4.1' 1522 - regex: 'CFNetwork/711\.4\.6' 1523 version: '8.4' 1524 - regex: 'CFNetwork/711\.3\.18' 1525 version: '8.3' 1526 - regex: 'CFNetwork/711\.2\.23' 1527 version: '8.2' 1528 - regex: 'CFNetwork/711\.1\.1[26]' 1529 version: '8.1' 1530 - regex: 'CFNetwork/711\.0\.6' 1531 version: '8.0' 1532 - regex: 'CFNetwork/672\.1' 1533 version: '7.1' 1534 - regex: 'CFNetwork/672\.0' 1535 version: '7.0' 1536 - regex: 'CFNetwork/609\.1' 1537 version: '6.1' 1538 - regex: 'CFNetwork/60[29]' 1539 version: '6.0' 1540 - regex: 'CFNetwork/548\.1' 1541 version: '5.1' 1542 - regex: 'CFNetwork/548\.0' 1543 version: '5.0' 1544 - regex: 'CFNetwork/485\.13' 1545 version: '4.3' 1546 - regex: 'CFNetwork/485\.12' 1547 version: '4.2' 1548 - regex: 'CFNetwork/485\.10' 1549 version: '4.1' 1550 - regex: 'CFNetwork/485\.2' 1551 version: '4.0' 1552 - regex: 'CFNetwork/467\.12' 1553 version: '3.2' 1554 - regex: 'CFNetwork/459' 1555 version: '3.1' 1556 1557- regex: '(?:iPhone|iPod_touch)/(\d+[.\d]*)(?: hw)?/' 1558 name: 'iOS' 1559 version: '$1' 1560 1561- regex: 'iOS(\d+\.\d+\.\d+)' 1562 name: 'iOS' 1563 version: '$1' 1564 1565- regex: 'iOS(\d+)\.(\d+)0' 1566 name: 'iOS' 1567 version: '$1.$2' 1568 1569- regex: 'FBMD/iPhone;.*FBSV/ ?(\d+[.\d]+);' 1570 name: 'iOS' 1571 version: '$1' 1572 1573- regex: '(?:FBIOS|Messenger(?:Lite)?ForiOS).*FBSV/ ?(\d+[.\d]*);' 1574 name: 'iOS' 1575 version: '$1' 1576 1577- regex: 'iPhone OS,([\d.]+).+(?:iPhone|iPod)' 1578 name: 'iOS' 1579 version: '$1' 1580 1581- regex: 'iPad.+; (\d+[.\d]+);' 1582 name: 'iOS' 1583 version: '$1' 1584 1585- regex: 'iPhone.+; Version (\d+[.\d]+)' 1586 name: 'iOS' 1587 version: '$1' 1588 1589- regex: 'OS=iOS;OSVer=(\d+[.\d]+);' 1590 name: 'iOS' 1591 version: '$1' 1592 1593- regex: 'os=Apple-iOS.+osversion=(\d+[.\d]+)/' 1594 name: 'iOS' 1595 version: '$1' 1596 1597- regex: '(?:Apple-)?(?<!like )(?:iPhone|iPad|iPod)(?:.*Mac OS X.*Version/(\d+\.\d+)|; Opera)?' 1598 name: 'iOS' 1599 version: '$1' 1600 1601- regex: 'dv\(iPh.+ov\((\d+(?:[_.]\d+)*)\);' 1602 name: 'iOS' 1603 version: '$1' 1604 1605- regex: '(?:Podcasts/(?:[\d.]+)|Instacast(?:HD)?/(?:\d\.[\d\.abc]+)|Pocket Casts, iOS|\(iOS\)|iOS; Opera|Overcast|Castro|Podcat|iCatcher|RSSRadio/|MobileSafari/|WhatsApp/.*i$)(?!.*x86_64)' 1606 name: 'iOS' 1607 version: '' 1608 1609- regex: 'iTunes-(AppleTV|iPod|iPad|iPhone)/(?:[\d.]+)' 1610 name: 'iOS' 1611 version: '' 1612 1613- regex: 'iOS[ /]Version ([\d.]+)' 1614 name: 'iOS' 1615 version: '$1' 1616 1617- regex: 'Sonos/.+\(ICRU_' 1618 name: 'iOS' 1619 version: '' 1620 1621- regex: 'CaptiveNetworkSupport|AirPlay|.*[ \.\-/]iOS(?!@)' 1622 name: 'iOS' 1623 version: '' 1624 1625########## 1626# Mac 1627########## 1628- regex: '(?:CFNetwork|Mana|StudioDisplay)/.+Darwin(?:/|; )(?:[\d.]+).+(?:x86_64|i386|Power%20Macintosh)|(?:x86_64-apple-)?darwin(?:[\d.]+)|C?Python.*Darwin|PowerMac|com\.apple\.Safari\.SearchHelper|^(?:NetworkingExtension|Safari)' 1629 name: 'Mac' 1630 versions: 1631 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?25\.0\.0' 1632 version: '26' 1633 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.5\.0' 1634 version: '15.5' 1635 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.4\.0' 1636 version: '15.4' 1637 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.3\.0' 1638 version: '15.3' 1639 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.2\.0' 1640 version: '15.2' 1641 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.1\.0' 1642 version: '15.1' 1643 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?24\.0\.0' 1644 version: '15.0' 1645 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.6\.0' 1646 version: '14.6' 1647 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.5\.0' 1648 version: '14.5' 1649 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.4\.0' 1650 version: '14.4' 1651 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.3\.0' 1652 version: '14.3' 1653 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.2\.0' 1654 version: '14.2' 1655 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.1\.0' 1656 version: '14.1' 1657 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?23\.0\.0' 1658 version: '14.0' 1659 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.6\.0' 1660 version: '13.5' 1661 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.5\.0' 1662 version: '13.4' 1663 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.4\.0' 1664 version: '13.3' 1665 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.3\.0' 1666 version: '13.2' 1667 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.2\.0' 1668 version: '13.1' 1669 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.1\.0' 1670 version: '13.0.1' 1671 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?22\.0\.0' 1672 version: '13.0' 1673 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.6\.0' 1674 version: '12.5' 1675 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.5\.0' 1676 version: '12.4' 1677 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.4\.0' 1678 version: '12.3' 1679 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.3\.0' 1680 version: '12.2' 1681 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.2\.0' 1682 version: '12.1' 1683 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.1\.0' 1684 version: '12.0.1' 1685 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?21\.0\.0' 1686 version: '12.0' 1687 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.6\.0' 1688 version: '11.5' 1689 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.5\.0' 1690 version: '11.4' 1691 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.4\.0' 1692 version: '11.3' 1693 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.3\.0' 1694 version: '11.2' 1695 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.2\.0.*' 1696 version: '11.1' 1697 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?20\.[01]\.0' 1698 version: '11.0' 1699 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.6\.0' 1700 version: '10.15.6' 1701 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.5\.0' 1702 version: '10.15.5' 1703 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.4\.0' 1704 version: '10.15.4' 1705 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.3\.0' 1706 version: '10.15.3' 1707 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.2\.0' 1708 version: '10.15.2' 1709 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?19\.0\.0' 1710 version: '10.15' 1711 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.7\.0' 1712 version: '10.14' 1713 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.6\.0' 1714 version: '10.14.5' 1715 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.5\.0' 1716 version: '10.14.4' 1717 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.2\.0' 1718 version: '10.14.1' 1719 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?18\.0\.0' 1720 version: '10.14' 1721 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.7\.0' 1722 version: '10.13.6' 1723 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.6\.0' 1724 version: '10.13.5' 1725 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.5\.0' 1726 version: '10.13.4' 1727 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.4\.0' 1728 version: '10.13.3' 1729 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.3\.0' 1730 version: '10.13.2' 1731 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.2\.0' 1732 version: '10.13.1' 1733 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?17\.0\.0' 1734 version: '10.13' 1735 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.7\.0' 1736 version: '10.12.6' 1737 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.6\.0' 1738 version: '10.12.5' 1739 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.5\.0' 1740 version: '10.12.4' 1741 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.4\.0' 1742 version: '10.12.3' 1743 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.3\.0' 1744 version: '10.12.2' 1745 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.2\.0' 1746 version: '10.12.2' 1747 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.1\.0' 1748 version: '10.12.1' 1749 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?16\.0\.0' 1750 version: '10.12' 1751 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.6\.0' 1752 version: '10.11.6' 1753 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.5\.0' 1754 version: '10.11.5' 1755 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.4\.0' 1756 version: '10.11.4' 1757 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.3\.0' 1758 version: '10.11.3' 1759 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?15\.2\.0' 1760 version: '10.11.2' 1761 - regex: 'CFNetwork/760' 1762 version: '10.11' 1763 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.5\.0' 1764 version: '10.10.5' 1765 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.4\.0' 1766 version: '10.10.4' 1767 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.3\.0' 1768 version: '10.10.3' 1769 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.1\.0' 1770 version: '10.10.2' 1771 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?14\.0\.0' 1772 version: '10.10' 1773 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.4\.0' 1774 version: '10.9.5' 1775 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.3\.0' 1776 version: '10.9.4' 1777 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.2\.0' 1778 version: '10.9.3' 1779 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.1\.0' 1780 version: '10.9.2' 1781 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?13\.0\.0' 1782 version: '10.9.0' 1783 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.6\.0' 1784 version: '10.8.5' 1785 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.5\.0' 1786 version: '10.8.5' 1787 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.4\.0' 1788 version: '10.8.4' 1789 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.3\.0' 1790 version: '10.8.3' 1791 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.2\.0' 1792 version: '10.8.2' 1793 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?12\.1\.0' 1794 version: '10.8.1' 1795 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.5\.0' 1796 version: '10.7.5' 1797 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.4\.2' 1798 version: '10.7.5' 1799 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.4\.0' 1800 version: '10.7.4' 1801 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.3\.0' 1802 version: '10.7.3' 1803 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.2\.0' 1804 version: '10.7.2' 1805 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?11\.1\.0' 1806 version: '10.7.1' 1807 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.8\.0' 1808 version: '10.6.8' 1809 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.7\.[34]' 1810 version: '10.6.7' 1811 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.3\.0' 1812 version: '10.6.3' 1813 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?10\.0\.0' 1814 version: '10.6' 1815 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.8\.0' 1816 version: '10.5.8' 1817 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.7\.1' 1818 version: '10.5.7' 1819 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.6\.2' 1820 version: '10.5.6' 1821 - regex: '(?:x86_64-apple-)?Darwin(?:/|; )?9\.5\.[05]' 1822 version: '10.5.5' 1823 1824- regex: 'Macintosh;Mac OS X \((\d+[.\d]+)\);' 1825 name: 'Mac' 1826 version: '$1' 1827 1828- regex: 'Mac[ +]OS[ +]?X(?:[ /,](?:Version )?(\d+(?:[_.]\d+)+))?' 1829 name: 'Mac' 1830 version: '$1' 1831 1832- regex: 'Mac (?:OS/)?(\d+(?:[_.]\d+)+)' 1833 name: 'Mac' 1834 version: '$1' 1835 1836- regex: '(?:macOS(?:\(Catalyst\))?[ /,]|Mac(?:os)?-)(\d+[.\d]+)' 1837 name: 'Mac' 1838 version: '$1' 1839 1840- regex: 'Macintosh; OS X (\d+[.\d]+)' 1841 name: 'Mac' 1842 version: '$1' 1843 1844- regex: 'OSX/(\d+[.\d]+)' 1845 name: 'Mac' 1846 version: '$1' 1847 1848- regex: 'Darwin|Macintosh|Mac[ _]PowerPC|PPC|iMac|MacBook|.*macOS|AppleExchangeWebServices|com\.apple\.trustd|Sonos/.+\(MDCR_|WhatsApp/.*N$' 1849 name: 'Mac' 1850 version: '' 1851 1852########## 1853# Fuchsia 1854########## 1855- regex: 'Fuchsia' 1856 name: 'Fuchsia' 1857 version: '' 1858 1859########## 1860# BlackBerry 1861########## 1862- regex: '(?:BB10;.+Version|Black[Bb]erry[0-9a-z]+|Black[Bb]erry.+Version)/(\d+[.\d]+)' 1863 name: 'BlackBerry OS' 1864 version: '$1' 1865 1866- regex: 'RIM Tablet OS (\d+[.\d]+)' 1867 name: 'BlackBerry Tablet OS' 1868 version: '$1' 1869 1870- regex: 'RIM Tablet OS|QNX|Play[Bb]ook' 1871 name: 'BlackBerry Tablet OS' 1872 version: '' 1873 1874- regex: 'BlackBerry' 1875 name: 'BlackBerry OS' 1876 version: '' 1877 1878- regex: 'bPod' 1879 name: 'BlackBerry OS' 1880 version: '' 1881 1882########## 1883# BeOS 1884########## 1885- regex: 'BeOS[ +]?(\d[.\d]*)?' 1886 name: 'BeOS' 1887 version: '$1' 1888 1889########## 1890# Symbian 1891########## 1892- regex: 'Symbian/3.+NokiaBrowser/7\.3' 1893 name: 'Symbian^3' 1894 version: 'Anna' 1895 1896- regex: 'Symbian/3.+NokiaBrowser/7\.4' 1897 name: 'Symbian^3' 1898 version: 'Belle' 1899 1900- regex: 'Symbian/3' 1901 name: 'Symbian^3' 1902 version: '' 1903 1904- regex: '(?:Series ?60|SymbOS|S60)(?:[ /]?(\d+[.\d]+|V\d+))?' 1905 name: 'Symbian OS Series 60' 1906 version: '$1' 1907 1908- regex: 'Series40' 1909 name: 'Symbian OS Series 40' 1910 version: '' 1911 1912- regex: 'SymbianOS/(\d+[.\d]+)' 1913 name: 'Symbian OS' 1914 version: '$1' 1915 1916- regex: 'MeeGo|WeTab' 1917 name: 'MeeGo' 1918 version: '' 1919 1920- regex: 'Symbian(?: OS)?|SymbOS' 1921 name: 'Symbian OS' 1922 version: '' 1923 1924- regex: 'Nokia' 1925 name: 'Symbian' 1926 version: '' 1927 1928########## 1929# Firefox OS 1930########## 1931- regex: '(?:Mobile|Tablet);.+Firefox/\d+\.\d+' 1932 name: 'Firefox OS' 1933 version: '' 1934 1935########## 1936# RISC OS 1937########## 1938- regex: 'RISC OS(?:-NC)?(?:[ /](\d+[.\d]+))?' 1939 name: 'RISC OS' 1940 version: '$1' 1941 1942########## 1943# Inferno 1944########## 1945- regex: 'Inferno(?:[ /](\d+[.\d]+))?' 1946 name: 'Inferno' 1947 version: '$1' 1948 1949########## 1950# Bada 1951########## 1952- regex: 'bada(?:[ /](\d+[.\d]+))?' 1953 name: 'Bada' 1954 version: '$1' 1955 1956########## 1957# REX 1958########## 1959- regex: 'REX; U;' 1960 name: 'REX' 1961 version: '' 1962 1963########## 1964# Brew 1965########## 1966- regex: '(?:Brew(?!-Applet)(?: MP)?|BMP)(?:[ /](\d+[.\d]+))?' 1967 name: 'Brew' 1968 version: '$1' 1969 1970########## 1971# Web TV 1972########## 1973- regex: 'GoogleTV(?:[ /](\d+[.\d]+))?' 1974 name: 'Google TV' 1975 version: '$1' 1976 1977- regex: 'WebTV/(\d+[.\d]+)' 1978 name: 'WebTV' 1979 version: '$1' 1980 1981########## 1982# Unix 1983########## 1984- regex: '(?:SunOS|Solaris)(?:[/ ](\d+[.\d]+))?' 1985 name: 'Solaris' 1986 version: '$1' 1987 1988- regex: 'AIX(?:[/ ]?(\d+[.\d]+))?' 1989 name: 'AIX' 1990 version: '$1' 1991 1992- regex: 'HP-UX(?:[/ ]?(\d+[.\d]+))?' 1993 name: 'HP-UX' 1994 version: '$1' 1995 1996# ElectroBSD (https://www.fabiankeil.de/gehacktes/electrobsd/) 1997- regex: 'ElectroBSD(?:[/ ]?(\d+[.\d]+))?' 1998 name: 'ElectroBSD' 1999 version: '$1' 2000 2001- regex: 'FreeBSD(?:[/ ]?(\d+[.\d]+))?' 2002 name: 'FreeBSD' 2003 version: '$1' 2004 2005- regex: 'NetBSD(?:[/ ]?(\d+[.\d]+))?' 2006 name: 'NetBSD' 2007 version: '$1' 2008 2009- regex: 'OpenBSD(?:[/ ]?(\d+[.\d]+))?' 2010 name: 'OpenBSD' 2011 version: '$1' 2012 2013- regex: 'DragonFly(?:[/ ]?(\d+[.\d]+))?' 2014 name: 'DragonFly' 2015 version: '$1' 2016 2017- regex: 'Syllable(?:[/ ]?(\d+[.\d]+))?' 2018 name: 'Syllable' 2019 version: '$1' 2020 2021- regex: 'IRIX(?:;64)?(?:[/ ]?(\d+[.\d]+))' 2022 name: 'IRIX' 2023 version: '$1' 2024 2025- regex: 'OSF1(?:[/ ]?v?(\d+[.\d]+))?' 2026 name: 'OSF1' 2027 version: '$1' 2028 2029########## 2030# Gaming Console 2031########## 2032- regex: 'Nintendo (Wii|Switch)' 2033 name: 'Nintendo' 2034 version: '$1' 2035 2036- regex: 'PlayStation.+; Linux (\d+[.\d]+)' 2037 name: 'PlayStation' 2038 version: '$1' 2039 2040- regex: 'PlayStation ?(\d)(?:[/ ](?:Pro )?(\d+[.\d]+))?' 2041 name: 'PlayStation' 2042 version: '$1.$2' 2043 2044- regex: 'Xbox|KIN\.(?:One|Two)' 2045 name: 'Xbox' 2046 version: '360' 2047 2048########## 2049# Mobile Gaming Console 2050########## 2051- regex: 'Nitro|Nintendo ([3]?DS[i]?)' 2052 name: 'Nintendo Mobile' 2053 version: '$1' 2054 2055- regex: 'PlayStation ((?:Portable|Vita))' 2056 name: 'PlayStation Portable' 2057 version: '$1' 2058 2059########## 2060# IBM 2061########## 2062- regex: 'OS/2; Warp (\d+[.\d]+)' 2063 name: 'OS/2' 2064 version: '$1' 2065 2066- regex: 'OS/2' 2067 name: 'OS/2' 2068 version: '' 2069 2070########### 2071# Linux (Generic) 2072########### 2073- regex: 'Linux/(\d+[.\d]+)' 2074 name: 'GNU/Linux' 2075 version: '$1' 2076 2077- regex: 'Linux[^a-z]|Cinnamon/(?:\d+[.\d]+)|.+(?:pc|unknown)-linux-gnu|X11' 2078 name: 'GNU/Linux' 2079 version: '' 2080 2081########## 2082# Java ME (Java Platform, Micro Edition) 2083########## 2084- regex: 'Java ME|(J2ME|Profile)/MIDP|MIDP-(?:\d+[.\d]+)/CLDC|Configuration/CLDC|Java; U; MIDP|MMP/\d\.\d' 2085 name: 'Java ME' 2086 version: '' 2087