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