Compare commits

...

46 Commits

Author SHA1 Message Date
Faisal Salman
90017c98d3 Bump version 1.0.41 (mirror of 0.7.41) 2025-08-19 19:09:54 +07:00
Faisal Salman
af825ff557 Bump version 0.7.41 2025-08-19 15:11:44 +07:00
Faisal Salman
5925954451 Backport - Improve detection for Nokia device & Symbian OS
(cherry picked from commit 10ab810568)
2025-08-19 13:35:20 +07:00
Faisal Salman
fc668ef0c0 Backport - Improve device detection for Generic device: capture its device model instead of its Android version
(cherry picked from commit 6c6ff97e0c)
2025-08-19 13:30:14 +07:00
Faisal Salman
0543fb2e95 Backport - Improve CPU detection: ARM
(cherry picked from commit 93552e0172)
2025-08-19 13:28:46 +07:00
Faisal Salman
98f1c00fd3 Backport - Improve device detection for unidentified SmartTV vendors
(cherry picked from commit 13d069f1c4)
2025-08-19 13:25:16 +07:00
Faisal Salman
d66c971090 Backport - Improve detection for Nvidia devices
(cherry picked from commit 9cdf560e60)
2025-08-19 13:22:55 +07:00
Hyewon Kang
cbe60388ea Backport - Add Daum app user agent (#773)
* Add Daum app user agent

---------

Co-authored-by: helen.one(강혜원)/kakao <helen.one@kakaocorp.com>
(cherry picked from commit 4601953326)
2025-08-19 13:18:29 +07:00
Faisal Salman
e665bd56be Backport - Add new OS: Ubuntu Touch
(cherry picked from commit 594b6b1399)
2025-08-19 13:13:08 +07:00
Faisal Salman
20c3040720 Backport - Add new device: Apple HomePod
(cherry picked from commit 5d603dacd7)
2025-08-19 13:06:45 +07:00
Faisal Salman
9057a1daad Backport - Add new browser: Ladybird
https://ladybird.org/

(cherry picked from commit 592bfdd33c)
2025-08-19 13:05:13 +07:00
Faisal Salman
1d59e1a6ee Backport - Add new OS: Windows IoT
(cherry picked from commit 84b41f5be7)
2025-08-19 13:01:12 +07:00
Faisal Salman
37556428ae Backport - Improve device detection for Xiaomi TVs
(cherry picked from commit d4986af7c0)
2025-08-19 12:53:08 +07:00
Faisal Salman
d53287cd9c Backport - Improve device detection for wearables
(cherry picked from commit fbadfd7ace)
2025-08-19 12:46:00 +07:00
Faisal Salman
318ccf2afe Backport - Improve device detection: recognize MIUI as Xiaomi
(cherry picked from commit fc851b40c5)
2025-08-19 12:42:31 +07:00
Faisal Salman
4041439643 Backport - Improve cpu detection for x86
(cherry picked from commit e013038643)
2025-08-19 12:39:53 +07:00
Faisal Salman
31c6bed8d0 Backport - Improve device detection: Lenovo
(cherry picked from commit b4bc86ac6d)
2025-08-19 12:36:14 +07:00
Faisal Salman
ba6e2eab47 Backport - Add new device vendor: HMD
(cherry picked from commit 94d3d84cd5)
2025-08-19 12:32:57 +07:00
Faisal Salman
8aa9a9d2b0 Backport - Improve device detection: Nokia tablets
(cherry picked from commit c72198d470)
2025-08-19 12:32:01 +07:00
Faisal Salman
45d6c4eee8 Improve device detection: Google Pixel Watch
(cherry picked from commit c8ece08b1b)
2025-08-19 12:31:14 +07:00
Faisal Salman
7f7f4a5359 Improve device detection: Google Pixel Tablet
(cherry picked from commit 536031d789)
2025-08-19 12:29:49 +07:00
Faisal Salman
d15849a141 Backport - Improve device detection for tablets: OnePlus, Xiaomi
(cherry picked from commit 4c57a5a567)
2025-08-19 12:29:29 +07:00
Faisal Salman
40b00c7c55 Backport - Improve device detection for tablets: Honor, Huawei, Infinix
(cherry picked from commit 41de949809)
2025-08-19 12:25:19 +07:00
Faisal Salman
aa757b2981 Backport - Improve device detection: Archos
(cherry picked from commit 0cf44773b1)
2025-08-18 23:17:47 +07:00
Faisal Salman
5a1d6ec14e Backport - Improve OS detection: fix Linux arch mistakenly detected as version
(cherry picked from commit 3ca23193dd)
2025-08-18 23:15:25 +07:00
Faisal Salman
c8fc8c35d2 Backport - Improve CPU detection: x86
(cherry picked from commit 9e64f34e72)
2025-08-18 23:13:05 +07:00
Faisal Salman
56bd805dc8 Backport - Improve detection for Nokia device & Symbian OS
(cherry picked from commit 10ab810568)
2025-08-18 23:11:48 +07:00
Faisal Salman
f5a421cfa5 Bump v1.0.40 (mirror of v0.7.40) 2024-12-21 14:22:22 +07:00
Faisal Salman
5c811b8006 Bump version 0.7.40 2024-12-21 14:17:00 +07:00
Faisal Salman
88fa66dc04 Backport - Fix #747: Python Request mistakenly identified as Meta Quest
(cherry picked from commit 391b8087fb)
2024-12-21 13:27:26 +07:00
Faisal Salman
1665684d4f Backport - Add new device vendors: Advan, IMO, Smartfren
(cherry picked from commit 84c4613145)
2024-12-21 13:24:28 +07:00
Faisal Salman
a10add1fa1 Backport - Add new device vendors: Cat, Energizer, Micromax
- https://www.catphones.com
- https://www.energizeyourdevice.com
- https://micromaxinfo.com/

(cherry picked from commit 6b8920c700)
2024-12-21 13:21:41 +07:00
Faisal Salman
bb7558f2d7 Backport - Add new browser engine: Servo
(cherry picked from commit 49151e478c)
2024-12-21 13:19:45 +07:00
Faisal Salman
ee77fcbf14 Backport - Added support for honor separated from Huawei (#749)
* Added support for honor separated from Huawei

* Revert "Added support for honor separated from Huawei"

This reverts commit 28bde1c0b4.

* Added changes wrt comments

* Added another change

(cherry picked from commit be2f167f90)
2024-12-21 13:17:45 +07:00
Faisal Salman
92da592908 Backport - Add new browser: LibreWolf
https://librewolf.net/

(cherry picked from commit 2223a2b2d4)
2024-12-21 13:07:26 +07:00
Faisal Salman
dcca2eb0d4 Backport - Improve browser detection: Maxthon
(cherry picked from commit 246c038895)
2024-12-21 13:06:53 +07:00
Faisal Salman
d9c68a775d Backport - Add new browser: 115 Browser
http://pc.115.com/

(cherry picked from commit 2dc1be1a50)
2024-12-21 13:06:23 +07:00
Faisal Salman
e32cf13942 Backport - Improve browser detection: 2345 & 360
(cherry picked from commit 2624a92b39)
2024-12-21 13:05:57 +07:00
Faisal Salman
3095020b29 Backport - Improve browser detection: Comodo Dragon, or simply Dragon
(cherry picked from commit d571859b2e)
2024-12-21 13:04:44 +07:00
Faisal Salman
c8653c283d Backport - Add new browsers: Slimjet & SlimBoat
https://www.slimjet.com/

(cherry picked from commit b7c2f541d9)
2024-12-21 13:03:58 +07:00
Faisal Salman
2842b92551 Backport - Improve browser detection: SRWare Iron
(cherry picked from commit 10b81836f1)
2024-12-21 13:03:22 +07:00
Faisal Salman
66447880ba Backport - Fix #754: Add new Engine: ArkWeb & new OS: OpenHarmony
(cherry picked from commit fe15f115f9)
2024-12-21 13:01:36 +07:00
Faisal Salman
8b1db6bcfd Add GitHub Actions: auto publish to npm 2024-09-11 20:48:46 +07:00
Faisal Salman
ab77baf6de Bump version 1.0.39 (mirror of 0.7.39) 2024-09-11 20:29:17 +07:00
Faisal Salman
693a83de2e Bump version 1.0.38 (mirror of 0.7.38) 2024-05-28 21:11:21 +07:00
Faisal Salman
8087a1b4f0 Bump version 1.0.37 (mirror of 0.7.37) 2023-10-27 19:49:46 +07:00
15 changed files with 3318 additions and 155 deletions

View File

@@ -0,0 +1,23 @@
name: Publish to NPM
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18.x'
registry-url: 'https://registry.npmjs.org'
- run: npm install -g npm
- run: npm ci
- run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -1,6 +1,6 @@
{
"name": "ua-parser-js",
"version": "0.7.39",
"version": "1.0.41",
"authors": [
"Faisal Salman <f@faisalman.com>"
],

View File

@@ -4,6 +4,25 @@
Version 1.0.x is basically the equivalent of version 0.7.x. See [#536](https://github.com/faisalman/ua-parser-js/issues/536) for the reason behind this confusion.
## Version 0.7.41 / 1.0.41
- Add new browser: Daum, Ladybird
- Add new device vendor: HMD
- Add new engine: LibWeb
- Add new os: Windows IoT, Ubuntu Touch
- Improve cpu detection: ARM, x86
- Improve device vendor detection: Apple, Archos, Generic, Google, Honor, Huawei, Infinix, Nvidia, Lenovo, Nokia, OnePlus, Xiaomi
- Improve device type detection: smarttv, wearables
- Improve os detection: Linux, Symbian
## Version 0.7.40 / 1.0.40
- Add new browser: 115, LibreWolf, Slimboat, Slimjet
- Add new device: Advan, Cat, Energizer, IMO, Micromax, Smartfren
- Add new engine: ArkWeb, Servo
- Add new os: OpenHarmony
- Improve browser detection: 2345, 360, Dragon, Iron, Maxthon
- Recognize Honor as a separate device vendor from Huawei
- Fix Python Request mistakenly identified as Meta Quest
## Version 0.7.39 / 1.0.39
- Add new feature: executable command using `npx ua-parser-js "[INSERT-UA-HERE]"`
- Add new browser: Helio, Pico Browser, Wolvic

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2012-2024 Faisal Salman <<f@faisalman.com>>
Copyright (c) 2012-2025 Faisal Salman <<f@faisalman.com>>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,6 +1,6 @@
Package.describe({
name: 'faisalman:ua-parser-js',
version: '0.7.39',
version: '1.0.41',
summary: 'Lightweight JavaScript-based user-agent string parser',
git: 'https://github.com/faisalman/ua-parser-js.git',
documentation: 'readme.md'

View File

@@ -1,7 +1,7 @@
{
"title": "UAParser.js",
"name": "ua-parser-js",
"version": "0.7.39",
"version": "1.0.41",
"author": "Faisal Salman <f@faisalman.com> (http://faisalman.com)",
"description": "Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data. Supports browser & node.js environment",
"keywords": [
@@ -206,8 +206,8 @@
"url": "https://paypal.me/faisalman"
},
{
"type": "github",
"url": "https://github.com/sponsors/faisalman"
"type": "github",
"url": "https://github.com/sponsors/faisalman"
}
]
}

View File

@@ -18,7 +18,7 @@ JavaScript library to detect Browser, Engine, OS, CPU, and Device type/model fro
* Demo : https://uaparser.dev
* Source : https://github.com/faisalman/ua-parser-js
* Documentation :
* v1 : https://github.com/faisalman/ua-parser-js/tree/1.0.39#documentation
* v1 : https://github.com/faisalman/ua-parser-js/tree/1.0.x#documentation
* v2 : https://docs.uaparser.dev
***
@@ -100,23 +100,23 @@ The methods are self explanatory, here's a small overview on all the available m
```sh
# Possible 'browser.name':
2345Explorer, 360 Browser, Alipay, Amaya, Android Browser, Arora, Avant, Avast,
AVG, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
Chrome Headless, Chrome WebView, Chrome, Chromium, Cobalt, Comodo Dragon, Dillo,
Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon, Fennec,
Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Helio, Heytap,
Huawei Browser, iCab, ICE Browser, IE, IEMobile, IceApe, IceCat, IceDragon,
Iceweasel, Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk], K-Meleon,
Kindle, Klar, Klarna, Konqueror, LBBROWSER, Line, LinkedIn, Links, Lunascape,
Lynx, MIUI Browser, Maemo, Maxthon, Midori, Minimo, Mobile Safari, Mosaic,
Mozilla, NetFront, NetSurf, Netfront, Netscape, NokiaBrowser, Obigo,
Oculus Browser, OmniWeb, Opera Coast, Opera [GX/Mini/Mobi/Tablet], PaleMoon,
PhantomJS, Phoenix, Pico Browser, Polaris, Puffin, QQ, QQBrowser, QQBrowserLite,
Quark, QupZilla, RockMelt, Safari, Sailfish Browser, Samsung Internet, SeaMonkey,
Silk, Skyfire, Sleipnir, Slim, SlimBrowser, Smart Lenovo Browser, Snapchat,
Sogou [Explorer/Mobile], Swiftfox, Tesla, TikTok, Tizen Browser, Twitter,
UCBrowser, UP.Browser, Vivaldi, Vivo Browser, w3m, Waterfox, WeChat, Weibo,
Whale Browser, Wolvic, Yandex, ...
115 Browser, 2345Explorer, 360 Browser, Alipay, Amaya, Android Browser, Arora,
Avant, Avast, AVG, Baidu, Basilisk, Blazer, Bolt, Brave, Bowser, Camino, Chimera,
Chrome Headless, Chrome WebView, Chrome, Chromium, Cobalt, Comodo Dragon, Daum,
Dillo, Dolphin, Doris, DuckDuckGo, Edge, Electron, Epiphany, Facebook, Falkon,
Fennec, Firebird, Firefox [Focus/Reality], Flock, Flow, GSA, GoBrowser, Helio,
Heytap, Huawei Browser, iCab, ICE Browser, IE, IEMobile, IceApe, IceCat,
IceDragon, Iceweasel, Instagram, Iridium, Iron, Jasmine, Kakao[Story/Talk],
K-Meleon, Kindle, Klar, Klarna, Konqueror, Ladybird, LBBROWSER, LibreWolf, Line,
LinkedIn, Links, Lunascape, Lynx, MIUI Browser, Maemo, Maxthon, Midori, Minimo,
Mobile Safari, Mosaic, Mozilla, NetFront, NetSurf, Netfront, Netscape,
NokiaBrowser, Obigo, Oculus Browser, OmniWeb, Opera Coast,
Opera [GX/Mini/Mobi/Tablet], PaleMoon, PhantomJS, Phoenix, Pico Browser, Polaris,
Puffin, QQ, QQBrowser, QQBrowserLite, Quark, QupZilla, RockMelt, Safari,
Sailfish Browser, Samsung Internet, SeaMonkey, Silk, Skyfire, Sleipnir,
Slim[Browser/Boat/Jet], Smart Lenovo Browser, Snapchat, Sogou [Explorer/Mobile],
Swiftfox, Tesla, TikTok, Tizen Browser, Twitter, UCBrowser, UP.Browser, Vivaldi,
Vivo Browser, w3m, Waterfox, WeChat, Weibo, Whale Browser, Wolvic, Yandex, ...
# 'browser.version' determined dynamically
```
@@ -136,12 +136,13 @@ console, mobile, tablet, smarttv, wearable, embedded
##########
# Possible 'device.vendor':
Acer, Alcatel, Amazon, Apple, Archos, ASUS, AT&T, BenQ, BlackBerry, Dell,
Essential, Facebook, Fairphone, GeeksPhone, Google, HP, HTC, Huawei, Infinix,
itel, Jolla, Kobo, Lenovo, LG, Meizu, Microsoft, Motorola, Nexian, Nintendo,
Nokia, Nothing, Nvidia, OnePlus, OPPO, Ouya, Palm, Panasonic, Pebble, Polytron,
Realme, RIM, Roku, Samsung, Sharp, Siemens, Sony[Ericsson], Sprint, TCL, Tecno,
Tesla, Ulefone, Vivo, Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
Acer, Advan, Alcatel, Amazon, Apple, Archos, ASUS, AT&T, BenQ, BlackBerry, Cat,
Dell, Energizer, Essential, Facebook, Fairphone, GeeksPhone, Google, HP, HMD,
HTC, Huawei, IMO, Infinix, itel, Jolla, Kobo, Lenovo, LG, Meizu, Micromax,
Microsoft, Motorola, Nexian, Nintendo, Nokia, Nothing, Nvidia, OnePlus, OPPO,
Ouya, Palm, Panasonic, Pebble, Polytron, Realme, RIM, Roku, Samsung, Sharp,
Siemens, Smartfren, Sony[Ericsson], Sprint, TCL, Tecno, Tesla, Ulefone, Vivo,
Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
# 'device.model' determined dynamically
```
@@ -151,8 +152,8 @@ Tesla, Ulefone, Vivo, Vodafone, Xbox, Xiaomi, Zebra, ZTE, ...
```sh
# Possible 'engine.name'
Amaya, Blink, EdgeHTML, Flow, Gecko, Goanna, iCab, KHTML, LibWeb, Links, Lynx,
NetFront, NetSurf, Presto, Tasman, Trident, w3m, WebKit
Amaya, ArkWeb, Blink, EdgeHTML, Flow, Gecko, Goanna, iCab, KHTML, LibWeb, Links,
Lynx, NetFront, NetSurf, Presto, Servo, Tasman, Trident, w3m, WebKit
# 'engine.version' determined dynamically
```
@@ -166,11 +167,11 @@ AIX, Amiga OS, Android[-x86], Arch, Bada, BeOS, BlackBerry, CentOS, Chromium OS,
Contiki, Fedora, Firefox OS, FreeBSD, Debian, Deepin, DragonFly, elementary OS,
Fuchsia, Gentoo, GhostBSD, GNU, Haiku, HarmonyOS, HP-UX, Hurd, iOS, Joli, KaiOS,
Linpus, Linspire,Linux, Mac OS, Maemo, Mageia, Mandriva, Manjaro, MeeGo, Minix,
Mint, Morph OS, NetBSD, NetRange, NetTV, Nintendo, OpenBSD, OpenVMS, OS/2, Palm,
PC-BSD, PCLinuxOS, Plan9, PlayStation, QNX, Raspbian, RedHat, RIM Tablet OS,
RISC OS, Sabayon, Sailfish, SerenityOS, Series40, Slackware, Solaris, SUSE,
Symbian, Tizen, Ubuntu, Unix, VectorLinux, Viera, watchOS, WebOS,
Windows [Phone/Mobile], Zenwalk, ...
Mint, Morph OS, NetBSD, NetRange, NetTV, Nintendo, OpenBSD, OpenHarmony, OpenVMS,
OS/2, Palm, PC-BSD, PCLinuxOS, Plan9, PlayStation, QNX, Raspbian, RedHat,
RIM Tablet OS, RISC OS, Sabayon, Sailfish, SerenityOS, Series40, Slackware,
Solaris, SUSE, Symbian, Tizen, Ubuntu [Touch], Unix, VectorLinux, Viera, watchOS,
WebOS, Windows [Phone/Mobile/IoT], Zenwalk, ...
# 'os.version' determined dynamically
```

View File

@@ -1,6 +1,6 @@
/////////////////////////////////////////////////////////////////////////////////
/* UAParser.js v0.7.39
Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
/* UAParser.js v1.0.41
Copyright © 2012-2025 Faisal Salman <f@faisalman.com>
MIT License *//*
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.
Supports browser & node.js environment.
@@ -17,7 +17,7 @@
/////////////
var LIBVERSION = '0.7.39',
var LIBVERSION = '1.0.41',
EMPTY = '',
UNKNOWN = '?',
FUNC_TYPE = 'function',
@@ -48,11 +48,16 @@
EDGE = 'Edge',
FIREFOX = 'Firefox',
GOOGLE = 'Google',
HONOR = 'Honor',
HUAWEI = 'Huawei',
LENOVO = 'Lenovo',
LG = 'LG',
MICROSOFT = 'Microsoft',
MOTOROLA = 'Motorola',
NVIDIA = 'Nvidia',
ONEPLUS = 'OnePlus',
OPERA = 'Opera',
OPPO = 'OPPO',
SAMSUNG = 'Samsung',
SHARP = 'Sharp',
SONY = 'Sony',
@@ -232,17 +237,19 @@
// Mixed
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i // Baidu
], [VERSION, [NAME, 'Baidu']], [
/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i // Maxthon
], [VERSION, [NAME, 'Maxthon']], [
/(kindle)\/([\w\.]+)/i, // Kindle
/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,
// Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir
// Trident based
/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i, // Avant/IEMobile/SlimBrowser
/(avant|iemobile|slim(?:browser|boat|jet))[\/ ]?([\d\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet
/(?:ms|\()(ie) ([\w\.]+)/i, // Internet Explorer
// Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio
/(heytap|ovi)browser\/([\d\.]+)/i, // HeyTap/Ovi
// Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon
/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\/([-\w\.]+)/i,
// Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon
/(heytap|ovi|115)browser\/([\d\.]+)/i, // HeyTap/Ovi/115
/(weibo)__([\d\.]+)/i // Weibo
], [NAME, VERSION], [
/quark(?:pc)?\/([-\w\.]+)/i // Quark
@@ -276,30 +283,31 @@
/coast\/([\w\.]+)/i // Opera Coast
], [VERSION, [NAME, OPERA+' Coast']], [
/miuibrowser\/([\w\.]+)/i // MIUI Browser
], [VERSION, [NAME, 'MIUI '+BROWSER]], [
/fxios\/([-\w\.]+)/i // Firefox for iOS
], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [
/fxios\/([\w\.-]+)/i // Firefox for iOS
], [VERSION, [NAME, FIREFOX]], [
/\bqihu|(qi?ho?o?|360)browser/i // 360
], [[NAME, '360' + SUFFIX_BROWSER]], [
/\bqihoobrowser\/?([\w\.]*)/i // 360
], [VERSION, [NAME, '360']], [
/\b(qq)\/([\w\.]+)/i // QQ
], [[NAME, /(.+)/, '$1Browser'], VERSION], [
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
/samsungbrowser\/([\w\.]+)/i // Samsung Internet
], [VERSION, [NAME, SAMSUNG + ' Internet']], [
/(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon
], [[NAME, /_/g, ' '], VERSION], [
/metasr[\/ ]?([\d\.]+)/i // Sogou Explorer
], [VERSION, [NAME, 'Sogou Explorer']], [
/(sogou)mo\w+\/([\d\.]+)/i // Sogou Mobile
], [[NAME, 'Sogou Mobile'], VERSION], [
/(electron)\/([\w\.]+) safari/i, // Electron-based App
/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, // Tesla
/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i // QQBrowser/2345 Browser
/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i // QQ/2345
], [NAME, VERSION], [
/(lbbrowser|rekonq)/i, // LieBao Browser/Rekonq
/\[(linkedin)app\]/i // LinkedIn App for iOS & Android
], [NAME], [
/ome\/([\w\.]+) \w* ?(iron) saf/i, // Iron
/ome\/([\w\.]+).+qihu (360)[es]e/i // 360
], [VERSION, NAME], [
// WebView
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i // Facebook App for iOS & Android
@@ -307,6 +315,7 @@
/(Klarna)\/([\w\.]+)/i, // Klarna Shopping Browser for iOS & Android
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i, // Kakao App
/(naver)\(.*?(\d+\.[\w\.]+).*\)/i, // Naver InApp
/(daum)apps[\/ ]([\w\.]+)/i, // Daum App
/safari (line)\/([\w\.]+)/i, // Line App for iOS
/\b(line)\/([\w\.]+)\/iab/i, // Line App for Android
/(alipay)client\/([\w\.]+)/i, // Alipay
@@ -343,7 +352,7 @@
// Gecko based
/(navigator|netscape\d?)\/([-\w\.]+)/i // Netscape
], [[NAME, 'Netscape'], VERSION], [
/(wolvic)\/([\w\.]+)/i // Wolvic
/(wolvic|librewolf)\/([\w\.]+)/i // Wolvic/LibreWolf
], [NAME, VERSION], [
/mobile vr; rv:([\w\.]+)\).+firefox/i // Firefox Reality
], [VERSION, [NAME, FIREFOX+' Reality']], [
@@ -357,9 +366,9 @@
/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, // Mozilla
// Other
/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser
/(links) \(([\w\.]+)/i // Links
/(amaya|dillo|doris|icab|ladybird|lynx|mosaic|netsurf|obigo|polaris|w3m|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,
// Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser/Ladybird
/\b(links) \(([\w\.]+)/i // Links
], [NAME, [VERSION, /_/g, '.']], [
/(cobalt)\/([\w\.]+)/i // Cobalt
@@ -368,32 +377,30 @@
cpu : [[
/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i // AMD64 (x64)
/\b((amd|x|x86[-_]?|wow|win)64)\b/i // AMD64 (x64)
], [[ARCHITECTURE, 'amd64']], [
/(ia32(?=;))/i // IA32 (quicktime)
], [[ARCHITECTURE, lowerize]], [
/((?:i[346]|x)86)[;\)]/i // IA32 (x86)
/(ia32(?=;))/i, // IA32 (quicktime)
/\b((i[346]|x)86)(pc)?\b/i // IA32 (x86)
], [[ARCHITECTURE, 'ia32']], [
/\b(aarch64|arm(v?8e?l?|_?64))\b/i // ARM64
/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i // ARM64
], [[ARCHITECTURE, 'arm64']], [
/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i // ARMHF
/\b(arm(v[67])?ht?n?[fl]p?)\b/i // ARMHF
], [[ARCHITECTURE, 'armhf']], [
// PocketPC mistakenly identified as PowerPC
/windows (ce|mobile); ppc;/i
/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
], [[ARCHITECTURE, 'arm']], [
/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i // PowerPC
/((ppc|powerpc)(64)?)( mac|;|\))/i // PowerPC
], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [
/(sun4\w)[;\)]/i // SPARC
/ sun4\w[;\)]/i // SPARC
], [[ARCHITECTURE, 'sparc']], [
/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
// IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
], [[ARCHITECTURE, lowerize]]
],
@@ -426,31 +433,39 @@
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [
// Honor
/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
], [MODEL, [VENDOR, HONOR], [TYPE, TABLET]], [
/honor([-\w ]+)[;\)]/i
], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [
// Huawei
/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i
/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [
/(?:huawei|honor)([-\w ]+)[;\)]/i,
/(?:huawei)([-\w ]+)[;\)]/i,
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i
], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [
// Xiaomi
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
/\b((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i // Mi Pad tablets
],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i, // Xiaomi POCO
/\b; (\w+) build\/hm\1/i, // Xiaomi Hongmi 'numeric' models
/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, // Xiaomi Hongmi
/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, // Xiaomi Redmi
/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i, // Xiaomi Redmi 'numeric' models
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i // Xiaomi Mi
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i, // Xiaomi Mi
/ ([\w ]+) miui\/v?\d/i
], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [
/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i, // Redmi Pad
/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i // Mi Pad tablets
],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [
// OPPO
/; (\w+) bui.+ oppo/i,
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [
/\b(opd2\d{3}a?) bui/i
], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [
], [MODEL, [VENDOR, OPPO], [TYPE, MOBILE]], [
/\b(opd2(\d{3}a?))(?: bui|\))/i
], [MODEL, [VENDOR, strMapper, { 'OnePlus' : ['304', '403', '203'], '*' : OPPO }], [TYPE, TABLET]], [
// Vivo
/vivo (\w+)(?: bui|\))/i,
@@ -464,7 +479,7 @@
// Motorola
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
/\bmot(?:orola)?[- ](\w*)/i,
/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
/((?:moto(?! 360)[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i
], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [
@@ -473,28 +488,30 @@
/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i
], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [
/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,
/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,
/\blg[-e;\/ ]+((?!browser|netcast|android tv|watch)\w+)/i,
/\blg-?([\d\w]+) bui/i
], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [
// Lenovo
/(ideatab[-\w ]+)/i,
/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i
], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [
/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
/lenovo ?(b[68]0[08]0-?[hf]?|tab(?:[\w- ]+?)|tb[\w-]{6,7})( bui|;|\)|\/)/i
], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [
// Nokia
/(?:maemo|nokia).*(n900|lumia \d+)/i,
/nokia[-_ ]?([-\w\.]*)/i
], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [
/(nokia) (t[12][01])/i
], [VENDOR, MODEL, [TYPE, TABLET]], [
/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
/nokia[-_ ]?(([-\w\. ]*))/i
], [[MODEL, /_/g, ' '], [TYPE, MOBILE], [VENDOR, 'Nokia']], [
// Google
/(pixel c)\b/i // Google Pixel C
/(pixel (c|tablet))\b/i // Google Pixel C/Tablet
], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [
/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i // Google Pixel
], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [
// Sony
/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [
/sony tablet [ps]/i,
/\b(?:sony)?sgp\w+(?: bui|\))/i
@@ -503,7 +520,7 @@
// OnePlus
/ (kb2005|in20[12]5|be20[12][59])\b/i,
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [
], [MODEL, [VENDOR, ONEPLUS], [TYPE, MOBILE]], [
// Amazon
/(alexa)webm/i,
@@ -557,23 +574,47 @@
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [
// Energizer
/; (energy ?\w+)(?: bui|\))/i,
/; energizer ([\w ]+)(?: bui|\))/i
], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [
// Cat
/; cat (b35);/i,
/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [
// Smartfren
/((?:new )?andromax[\w- ]+)(?: bui|\))/i
], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [
// Nothing
/droid.+; (a(?:015|06[35]|142p?))/i
], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [
// Archos
/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
/archos ?(5|gamepad2?|([\w ]*[t1789]|hello) ?\d+[\w ]*)( b|\))/i
], [MODEL, [VENDOR, 'Archos'], [TYPE, TABLET]], [
/archos ([\w ]+)( b|\))/i,
/; (ac[3-6]\d\w{2,8})( b|\))/i
], [MODEL, [VENDOR, 'Archos'], [TYPE, MOBILE]], [
// MIXED
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron
/(imo) (tab \w+)/i, // IMO
/(infinix) (x1101b?)/i // Infinix XPad
], [VENDOR, MODEL, [TYPE, TABLET]], [
/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus(?! zenw)|dell|jolla|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\w]*)/i,
// BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan
/; (hmd|imo) ([\w ]+?)(?: bui|\))/i, // HMD/IMO
/(hp) ([\w ]+\w)/i, // HP iPAQ
/(asus)-?(\w+)/i, // Asus
/(microsoft); (lumia[\w ]+)/i, // Microsoft Lumia
/(lenovo)[-_ ]?([-\w]+)/i, // Lenovo
/(jolla)/i, // Jolla
/(lenovo)[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i, // Lenovo
/(oppo) ?([\w ]+) bui/i // OPPO
], [VENDOR, MODEL, [TYPE, MOBILE]], [
/(kobo)\s(ereader|touch)/i, // Kobo
/(archos) (gamepad2?)/i, // Archos
/(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad
/(kindle)\/([\w\.]+)/i, // Kindle
/(nook)[\w ]+build\/(\w+)/i, // Nook
@@ -631,8 +672,8 @@
], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [
/\btu_(1491) b/i // Rotor Tablets
], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [
/(shield[\w ]+) b/i // Nvidia Shield Tablets
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [
/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i // Nvidia Tablets
], [MODEL, [VENDOR, NVIDIA], [TYPE, TABLET]], [
/(sprint) (\w+)/i // Sprint Phones
], [VENDOR, MODEL, [TYPE, MOBILE]], [
/(kin\.[onetw]{3})/i // Microsoft Kin
@@ -658,19 +699,24 @@
], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [
/droid.+aft(\w+)( bui|\))/i // Fire TV
], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [
/(shield \w+ tv)/i // Nvidia Shield TV
], [MODEL, [VENDOR, NVIDIA], [TYPE, SMARTTV]], [
/\(dtv[\);].+(aquos)/i,
/(aquos-tv[\w ]+)\)/i // Sharp
], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[
/(bravia[\w ]+)( bui|\))/i // Sony
], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [
/(mitv-\w{5}) bui/i // Xiaomi
/(mi(tv|box)-?\w+) bui/i // Xiaomi
], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [
/Hbbtv.*(technisat) (.*);/i // TechniSAT
], [VENDOR, MODEL, [TYPE, SMARTTV]], [
/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, // Roku
/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i // HbbTV devices
], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [
/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i // SmartTV from Unidentified Vendors
// SmartTV from Unidentified Vendors
/droid.+; ([\w- ]+) (?:android tv|smart[- ]?tv)/i
], [MODEL, [TYPE, SMARTTV]], [
/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i
], [[TYPE, SMARTTV]], [
///////////////////
@@ -680,9 +726,9 @@
/(ouya)/i, // Ouya
/(nintendo) ([wids3utch]+)/i // Nintendo
], [VENDOR, MODEL, [TYPE, CONSOLE]], [
/droid.+; (shield) bui/i // Nvidia
], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [
/(playstation [345portablevi]+)/i // Playstation
/droid.+; (shield)( bui|\))/i // Nvidia Portable
], [MODEL, [VENDOR, NVIDIA], [TYPE, CONSOLE]], [
/(playstation \w+)/i // Playstation
], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [
/\b(xbox(?: one)?(?!; xbox))[\); ]/i // Microsoft Xbox
], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [
@@ -691,17 +737,35 @@
// WEARABLES
///////////////////
/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i // Samsung Galaxy Watch
/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i // Samsung Galaxy Watch
], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [
/((pebble))app/i // Pebble
/((pebble))app/i, // Pebble
/(asus|google|lg|oppo) ((pixel |zen)?watch[\w ]*)( bui|\))/i // Asus ZenWatch / LG Watch / Pixel Watch
], [VENDOR, MODEL, [TYPE, WEARABLE]], [
/(ow(?:19|20)?we?[1-3]{1,3})/i // Oppo Watch
], [MODEL, [VENDOR, OPPO], [TYPE, WEARABLE]], [
/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i // Apple Watch
], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [
/droid.+; (glass) \d/i // Google Glass
], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [
/(opwwe\d{3})/i // OnePlus Watch
], [MODEL, [VENDOR, ONEPLUS], [TYPE, WEARABLE]], [
/(moto 360)/i // Motorola 360
], [MODEL, [VENDOR, MOTOROLA], [TYPE, WEARABLE]], [
/(smartwatch 3)/i // Sony SmartWatch
], [MODEL, [VENDOR, SONY], [TYPE, WEARABLE]], [
/(g watch r)/i // LG G Watch R
], [MODEL, [VENDOR, LG], [TYPE, WEARABLE]], [
/droid.+; (wt63?0{2,3})\)/i
], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [
/(quest( \d| pro)?)/i // Oculus Quest
///////////////////
// XR
///////////////////
/droid.+; (glass) \d/i // Google Glass
], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [
/(pico) (4|neo3(?: link|pro)?)/i // Pico
], [VENDOR, MODEL, [TYPE, WEARABLE]], [
/; (quest( \d| pro)?)/i // Oculus Quest
], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [
///////////////////
@@ -712,6 +776,10 @@
], [VENDOR, [TYPE, EMBEDDED]], [
/(aeobc)\b/i // Echo Dot
], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [
/(homepod).+mac os/i // Apple HomePod
], [MODEL, [VENDOR, APPLE], [TYPE, EMBEDDED]], [
/windows iot/i
], [[TYPE, EMBEDDED]], [
////////////////////
// MIXED (GENERIC)
@@ -725,7 +793,7 @@
], [[TYPE, TABLET]], [
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile
], [[TYPE, MOBILE]], [
/(android[-\w\. ]{0,9});.+buil/i // Generic Android Device
/droid .+?; ([\w\. -]+)( bui|\))/i // Generic Android Device
], [MODEL, [VENDOR, 'Generic']]
],
@@ -734,16 +802,22 @@
/windows.+ edge\/([\w\.]+)/i // EdgeHTML
], [VERSION, [NAME, EDGE+'HTML']], [
/(arkweb)\/([\w\.]+)/i // ArkWeb
], [NAME, VERSION], [
/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i // Blink
], [VERSION, [NAME, 'Blink']], [
/(presto)\/([\w\.]+)/i, // Presto
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna
/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\/([\w\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo
/ekioh(flow)\/([\w\.]+)/i, // Flow
/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, // KHTML/Tasman/Links
/(icab)[\/ ]([23]\.[\d\.]+)/i, // iCab
/\b(libweb)/i
/\b(libweb)/i // LibWeb
], [NAME, VERSION], [
/ladybird\//i
], [[NAME, 'LibWeb']], [
/rv\:([\w\.]{1,9})\b.+(gecko)/i // Gecko
], [VERSION, NAME]
@@ -754,15 +828,15 @@
// Windows
/microsoft (windows) (vista|xp)/i // Windows (iTunes)
], [NAME, VERSION], [
/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i // Windows Phone
/(windows (?:phone(?: os)?|mobile|iot))[\/ ]?([\d\.\w ]*)/i // Windows Phone
], [NAME, [VERSION, strMapper, windowsVersionMap]], [
/windows nt 6\.2; (arm)/i, // Windows RT
/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,
/windows nt 6\.2; (arm)/i, // Windows RT
/windows[\/ ]([ntce\d\. ]+\w)(?!.+xbox)/i,
/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i
], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [
// iOS/macOS
/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS
/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i, // iOS
/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,
/cfnetwork\/.+darwin/i
], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [
@@ -772,15 +846,15 @@
// Mobile OSes
/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS
], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS
/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,
/(blackberry)\w*\/([\w\.]*)/i, // Blackberry
/(tizen|kaios)[\/ ]([\w\.]+)/i, // Tizen/KaiOS
/\((series40);/i // Series 40
], [VERSION, NAME], [
/(ubuntu) ([\w\.]+) like android/i // Ubuntu Touch
], [[NAME, /(.+)/, '$1 Touch'], VERSION], [
// Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen|webos)\w*[-\/; ]?([\d\.]*)/i
], [NAME, VERSION], [
/\(bb(10);/i // BlackBerry 10
], [VERSION, [NAME, BLACKBERRY]], [
/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i // Symbian
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i // Symbian
], [VERSION, [NAME, 'Symbian']], [
/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i // Firefox OS
], [VERSION, [NAME, FIREFOX+' OS']], [
@@ -811,7 +885,7 @@
/(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux
/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,
// Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire
/(hurd|linux) ?([\w\.]*)/i, // Hurd/Linux
/(hurd|linux)(?: arm\w*| x86\w*| ?)([\w\.]*)/i, // Hurd/Linux
/(gnu) ?([\w\.]*)/i, // GNU
/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly
/(haiku) (\w+)/i // Haiku

View File

@@ -1,12 +1,72 @@
[
{
"desc" : "115 Browser",
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36 115Browser/24.3.0.3",
"expect" :
{
"name" : "115",
"version" : "24.3.0.3",
"major" : "24"
}
},
{
"desc" : "2345 Browser",
"ua" : "Mozilla/5.0 (Linux; Android 7.0; MI NOTE Pro Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.98 Mobile Safari/537.36 Mb2345Browser/15.6.2",
"expect" :
{
"name" : "2345",
"version" : "15.6.2",
"major" : "15"
}
},
{
"desc" : "2345 Chrome",
"ua" : "Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML like Gecko) Chrome/39.0.2171.99 Safari/537.36 2345chrome v3.0.0.9739",
"expect" :
{
"name" : "2345",
"version" : "3.0.0.9739",
"major" : "3"
}
},
{
"desc" : "2345 Explorer",
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116",
"expect" :
{
"name" : "2345",
"version" : "9.2.1.17116",
"major" : "9"
}
},
{
"desc" : "360 Browser on iOS",
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 12_4_1 like Mac OS X) AppleWebKit/607.3.9 (KHTML, like Gecko) Mobile/16G102 QHBrowser/317 QihooBrowser/4.0.10",
"expect" :
{
"name" : "360 Browser",
"version" : "undefined",
"major" : "undefined"
"name" : "360",
"version" : "4.0.10",
"major" : "4"
}
},
{
"desc" : "360 Secure Browser on Windows 10",
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 QIHU 360SE",
"expect" :
{
"name" : "360",
"version" : "86.0.4240.198",
"major" : "86"
}
},
{
"desc" : "360 Speed Browser on Windows 10",
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 QIHU 360EE",
"expect" :
{
"name" : "360",
"version" : "86.0.4240.198",
"major" : "86"
}
},
{
@@ -404,11 +464,21 @@
"ua" : "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7",
"expect" :
{
"name" : "Comodo Dragon",
"name" : "Dragon",
"version" : "16.1.1.0",
"major" : "16"
}
},
{
"desc" : "Comodo Dragon",
"ua" : "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Dragon/98.0.4758.102 Chrome/98.0.4758.102 Safari/537.36",
"expect" :
{
"name" : "Dragon",
"version" : "98.0.4758.102",
"major" : "98"
}
},
{
"desc" : "Conkeror",
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:6.0.1) Gecko/20110831 conkeror/0.9.3",
@@ -848,6 +918,26 @@
"major" : "22"
}
},
{
"desc" : "Iron",
"ua" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Iron Safari/537.36",
"expect" :
{
"name" : "Iron",
"version" : "129.0.0.0",
"major" : "129"
}
},
{
"desc" : "Iron",
"ua" : "Mozilla/5.0 (Linux; Android 11; Pixel 4 XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Mobile Iron Safari/537.36",
"expect" :
{
"name" : "Iron",
"version" : "113.0.0.0",
"major" : "113"
}
},
{
"desc" : "Jasmine",
"ua" : "SAMSUNG-S8000/S8000XXIF3 SHP/VPP/R5 Jasmine/1.0 Nextreaming SMM-MMS/1.2.0 profile/MIDP-2.1 configuration/CLDC-1.1",
@@ -958,6 +1048,36 @@
"major" : "9"
}
},
{
"desc" : "LibreWolf",
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 LibreWolf/91.0",
"expect" :
{
"name" : "LibreWolf",
"version" : "91.0",
"major" : "91"
}
},
{
"desc" : "Ladybird",
"ua" : "Mozilla/5.0 (Linux; x86_64) Ladybird/1.0",
"expect" :
{
"name" : "Ladybird",
"version" : "1.0",
"major" : "1"
}
},
{
"desc" : "LibreWolf",
"ua" : "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0 LibreWolf/97.0.1",
"expect" :
{
"name" : "LibreWolf",
"version" : "97.0.1",
"major" : "97"
}
},
{
"desc" : "LINE on Android",
"ua" : "Mozilla/5.0 (Linux; Android 5.0; ASUS_Z00AD Build/LRX21V; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/51.0.2704.81 Mobile Safari/537.36 Line/6.5.1/IAB",
@@ -1009,7 +1129,57 @@
}
},
{
"desc" : "Maxthon",
"desc" : "Maxthon on Android",
"ua" : "Mozilla/5.0 (Linux; Android 5.1.1; KFAUWI Build/LVY48F; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.127 Safari/537.36 MxBrowser/4.3.5.2000",
"expect" :
{
"name" : "Maxthon",
"version" : "4.3.5.2000",
"major" : "4"
}
},
{
"desc" : "Maxthon on iOS",
"ua" : "Mozilla/5.0 (iPad; CPU OS 13_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.1 MXiOS/5.4.5.2",
"expect" :
{
"name" : "Maxthon",
"version" : "5.4.5.2",
"major" : "5"
}
},
{
"desc" : "Maxthon on Linux",
"ua" : "Mozilla/5.0 (X11; Linux i686; Ubuntu 14.04.3 LTS) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.0 Maxthon/1.0.5.3 Safari/537.36",
"expect" :
{
"name" : "Maxthon",
"version" : "1.0.5.3",
"major" : "1"
}
},
{
"desc" : "Maxthon on macOS",
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0.3 Safari/604.5.6 Maxthon/5.1.102",
"expect" :
{
"name" : "Maxthon",
"version" : "5.1.102",
"major" : "5"
}
},
{
"desc" : "Maxthon on Windows Server 2003",
"ua" : "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; MyIE2; .NET CLR 1.1.4322)",
"expect" :
{
"name" : "Maxthon",
"version" : "undefined",
"major" : "undefined"
}
},
{
"desc" : "Maxthon on Windows XP",
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)",
"expect" :
{
@@ -1018,6 +1188,16 @@
"major" : "undefined"
}
},
{
"desc" : "Maxthon on Windows 10",
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36 Maxthon/5.2.7.2000",
"expect" :
{
"name" : "Maxthon",
"version" : "5.2.7.2000",
"major" : "5"
}
},
{
"desc" : "Midori",
"ua" : "Midori/0.2.2 (X11; Linux i686; U; en-us) WebKit/531.2+",
@@ -1569,16 +1749,36 @@
"major" : "2"
}
},
{
"desc" : "SlimBoat",
"ua" : "Mozilla/5.0 (Windows NT 5.2) AppleWebKit/534.34 (KHTML, like Gecko) SlimBoat/1.1.23 Chrome/11.0.696.7 Version/5.1 Safari/534.34",
"expect" :
{
"name" : "SlimBoat",
"version" : "1.1.23",
"major" : "1"
}
},
{
"desc" : "SlimBrowser",
"ua" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SlimBrowser)",
"expect" :
{
"name" : "Slim",
"name" : "SlimBrowser",
"version" : "undefined",
"major" : "undefined"
}
},
{
"desc" : "Slimjet",
"ua" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36 Slimjet/20.0.2.0",
"expect" :
{
"name" : "Slimjet",
"version" : "20.0.2.0",
"major" : "20"
}
},
{
"desc" : "Swiftfox",
"ua" : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Firefox/2.0 (Swiftfox)",
@@ -2047,16 +2247,6 @@
"name" : "LBBROWSER"
}
},
{
"desc" : "2345 Browser",
"ua" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.90 Safari/537.36 2345Explorer/9.2.1.17116",
"expect" :
{
"name" : "2345Explorer",
"version" : "9.2.1.17116",
"major" : "9"
}
},
{
"desc" : "QQBrowserLite",
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14 QQBrowserLite/1.1.0",
@@ -2256,6 +2446,26 @@
"major" : "10"
}
},
{
"desc" : "Daum App Android",
"ua" : "Mozilla/5.0 (Linux; Android 11; SM-G970N Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 DaumApps/7.5.0 DaumDevice/mobile",
"expect" : {
"name" : "Daum",
"version": "7.5.0",
"major" : "7",
"type" : "inapp"
}
},
{
"desc" : "Daum App iOS",
"ua" : "Mozilla/5.0 (iPhone; CPU iPhone OS 18_1_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Safari/605.1.15 Mobile/15E148 DaumApps/7.5.1 DaumDevice/mobile",
"expect" : {
"name" : "Daum",
"version": "7.5.1",
"major" : "7",
"type" : "inapp"
}
},
{
"desc" : "TikTok",
"ua" : "Mozilla/5.0 (Linux; Android 11; 21061119AG Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/92.0.4515.131 Mobile Safari/537.36 trill_2022109040 JsSdk/1.0 NetType/MOBILE Channel/googleplay AppName/musical_ly app_version/21.9.4 ByteLocale/ru-RU ByteFullLocale/ru-RU Region/KG BytedanceWebview/d8a21c6",

View File

@@ -7,6 +7,14 @@
"architecture" : "ia32"
}
},
{
"desc" : "i686",
"ua" : "Mozilla/5.0 (X11; U; CrOS i686 9.10.0; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.253.0 Safari/532.5",
"expect" :
{
"architecture" : "ia32"
}
},
{
"desc" : "i386",
"ua" : "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7) Gecko/20040628 Epiphany/1.2.6",
@@ -167,6 +175,22 @@
"architecture" : "arm64"
}
},
{
"desc" : "Google Search App",
"ua" : "Mozilla/5.0 (Linux; Android 9; JAT-LX1 Build/HONORJAT-LX1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.96 Mobile Safari/537.36 GoogleApp/11.11.10.21.arm",
"expect" :
{
"architecture" : "arm"
}
},
{
"desc" : "Google Search App",
"ua" : "Mozilla/5.0 (Linux; Android 6.0; M5s Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.147 Mobile Safari/537.36 GSA/12.40.17.23.arm64",
"expect" :
{
"architecture" : "arm64"
}
},
{
"desc" : "Pocket PC",
"ua" : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",
@@ -246,5 +270,21 @@
{
"architecture" : "irix64"
}
},
{
"desc" : "68k",
"ua" : "'Mozilla/1.1 (Macintosh; U; 68K)'",
"expect" :
{
"architecture" : "68k"
}
},
{
"desc" : "x86",
"ua" : "Mozilla/5.0 (Photon; U; QNX x86pc; en-US; rv:1.8.1.20) Gecko/20090127 BonEcho/2.0.0.20",
"expect" :
{
"architecture" : "ia32"
}
}
]

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,13 @@
[
{
"desc" : "ArkWeb",
"ua" : "Mozilla/5.0 (Phone; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile",
"expect" :
{
"name" : "ArkWeb",
"version" : "4.1.6.1"
}
},
{
"desc" : "Blink",
"ua" : "Mozilla/5.0 (Linux; Android 7.0; SM-G920I Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/3.4.9 SamsungBrowser/4.0 Chrome/57.0.2987.146 Mobile VR Safari/537.36",
@@ -53,6 +62,15 @@
"version" : "4.5.4"
}
},
{
"desc" : "LibWeb",
"ua" : "Mozilla/5.0 (Linux; x86_64) Ladybird/1.0",
"expect" :
{
"name" : "LibWeb",
"version" : "undefined"
}
},
{
"desc" : "LibWeb",
"ua" : "Mozilla/4.0 (SerenityOS; x86) LibWeb+LibJS (Not KHTML, nor Gecko) LibWeb",
@@ -80,6 +98,15 @@
"version" : "2.8.149"
}
},
{
"desc" : "Servo",
"ua" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Servo/1.0 Firefox/111.0",
"expect" :
{
"name" : "Servo",
"version" : "1.0"
}
},
{
"desc" : "Tasman",
"ua" : "Mozilla/4.0 (compatible; MSIE 6.0; PPC Mac OS X 10.4.7; Tasman 1.0)",

View File

@@ -80,6 +80,15 @@
"version" : "10"
}
},
{
"desc" : "Windows IoT",
"ua" : "Mozilla/5.0 (Windows IoT 10.0; Android 6.0.1; WebView/3.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Mobile Safari/537.36 Edge/18.17763",
"expect" :
{
"name" : "Windows IoT",
"version" : "10.0"
}
},
{
"desc" : "WeChat Desktop for Windows Built-in Browser",
"ua" : "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400",
@@ -233,6 +242,15 @@
"version" : "2.2.2"
}
},
{
"desc" : "MIUI",
"ua" : "Dalvik/2.1.0 (Linux; U; Android 9; Mi MIX 3 5G MIUI/V10.3.2.0.PEMEUVF)",
"expect" :
{
"name" : "Android",
"version" : "9"
}
},
{
"desc" : "HarmonyOS",
"ua" : "Mozilla/5.0 (Linux; Android 10; HarmonyOS; YAL-AL10; HMSCore 6.3.0.327; GMSCore 21.48.15) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.105 HuaweiBrowser/12.0.3.310 Mobile Safari/537.36",
@@ -320,7 +338,7 @@
"expect" :
{
"name" : "QNX",
"version" : "x86pc"
"version" : "undefined"
}
},
{
@@ -350,6 +368,24 @@
"version" : "undefined"
}
},
{
"desc" : "Nokia N900 Linux mobile, on the Maemo browser",
"ua" : "Mozilla/5.0(X11; U; Linux armv7l; fr-FR; rv:1.9.2a1pre) Gecko/20091127 Firefox/3.5 Maemo Browser 1.5.6 RX-51 N900",
"expect" :
{
"name" : "Maemo",
"version" : "undefined"
}
},
{
"desc" : "Nokia N900 Linux mobile, on the Maemo browser",
"ua" : "Mozilla/5.0 (Linux; Maemo 5.0; Nokia N900; Build/4.0.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0 Mobile Safari/537.36",
"expect" :
{
"name" : "Maemo",
"version" : "5.0"
}
},
{
"desc" : "MeeGo",
"ua" : "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
@@ -360,7 +396,7 @@
}
},
{
"desc" : "Symbian",
"desc" : "Nokia 5250",
"ua" : "Nokia5250/10.0.011 (SymbianOS/9.4; U; Series60/5.0 Mozilla/5.0; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/525 (KHTML, like Gecko) Safari/525 3gpp-gba",
"expect" :
{
@@ -369,12 +405,57 @@
}
},
{
"desc" : "Symbian",
"desc" : "Nokia N79",
"ua" : "Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1",
"expect" :
{
"name" : "Symbian",
"version" : "9.3"
}
},
{
"desc" : "Nokia E71",
"ua" : "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaE71-1/110.07.127; Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413",
"expect" :
{
"name" : "Symbian",
"version" : "9.2"
}
},
{
"desc" : "Opera Mini on S60",
"ua" : "Opera/9.80 (Series 60; Opera Mini/7.1.32444/191.361; U; de) Presto/2.12.423 Version/12.16",
"expect" :
{
"name" : "Symbian",
"version" : "undefined"
}
},
{
"desc" : "NokiaBrowser on Nokia C7",
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaC7-00/024.001; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
"expect" :
{
"name" : "Symbian",
"version" : "5.2"
"version" : "3"
}
},
{
"desc" : "Nokia 808 PureView",
"ua" : "Mozilla/5.0 (Symbian/3; Series60/5.5 Nokia808PureView/113.010.1508; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/535.1 (KHTML, like Gecko) NokiaBrowser/8.3.2.21 Mobile Safari/535.1 3gpp-gba",
"expect" :
{
"name" : "Symbian",
"version" : "3"
}
},
{
"desc" : "Nokia 808 PureView",
"ua" : "Mozilla/5.0 (Symbian; U; Nokia808 PureView; en-GB) AppleWebKit/534.3 (KHTML, like Gecko) Version/3.0 Mobile/1A543a Mobile Safari/534.3",
"expect" :
{
"name" : "Symbian",
"version" : "undefined"
}
},
{
@@ -521,6 +602,15 @@
"version" : "undefined"
}
},
{
"desc" : "Ubuntu Touch",
"ua" : "Mozilla/5.0 (Linux; Ubuntu 16.04 like Android 4.4) AppleWebKit/537.36 Chromium/65.0.3325.151 Mobile Safari/537.36",
"expect" :
{
"name" : "Ubuntu Touch",
"version" : "16.04"
}
},
{
"desc" : "Kubuntu",
"ua" : "Mozilla/5.0 (compatible; Konqueror/4.4; Linux 2.6.32-22-generic; X11; en_US) KHTML/4.4.3 (like Gecko) Kubuntu",
@@ -800,6 +890,15 @@
"version" : "16.4.1"
}
},
{
"desc": "Apple HomePod",
"ua": "AppleCoreMedia/1.0.0.15D61 (HomePod; U; CPU OS 11_2_5 like Mac OS X; en_us)",
"expect" :
{
"name" : "iOS",
"version" : "11.2.5"
}
},
{
"desc" : "watchOS",
"ua" : "server-bag [Watch OS,8.4,19S546,Watch3,4]",
@@ -1103,7 +1202,7 @@
"expect" :
{
"name" : "Linux",
"version" : "x86_64"
"version" : "undefined"
}
},
{
@@ -1240,5 +1339,14 @@
"name" : "SerenityOS",
"version" : "undefined"
}
},
{
"desc" : "OpenHarmony",
"ua" : "Mozilla/5.0 (Phone; OpenHarmony 4.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ArkWeb/4.1.6.1 Mobile",
"expect" :
{
"name" : "OpenHarmony",
"version" : "4.1"
}
}
]