From 5d1fa4033214ce22806c5ff7f88589ab3c0c21d4 Mon Sep 17 00:00:00 2001 From: Liviu-Mihail Concioiu Date: Thu, 11 Nov 2021 19:39:39 +0100 Subject: [PATCH] Adds detection for various apps and detect some devices(#6905) * Adds detection for MetaTrader and improves detection for M.T.T. brand * Adds detection for Paint by Number * Adds detection for ZEPETO * Adds detection for Jungle Disk * Adds detection for Nextcloud * Improves detection for Teams * Adds detection for GoNative * Adds detection for Pandora * Adds detection for Blackboard * Adds detection for QQMusic * Adds detection for eToro * Adds detection for Avid Link * Improves detection for Blackboard * Adds detection for Facebook Audience Network * Adds detection for Netflix * Adds detection for Google Tag Manager * Adds detection for Adobe Synchronizer * Improves detection for Nextcloud * Adds detection for BlueStacks * Adds detection for PowerShell * Adds detection for GlobalProtect * Adds detection for Theyub * Improve detection for Apple iPhone XS Max * Improves detection for Apple iPhone 7 * Adds detection for Amazon Fire TV Stick 4K and improves detection for Fire OS --- Tests/Parser/Client/fixtures/mobile_app.yml | 138 ++++++++++++++++++++ Tests/Parser/fixtures/oss.yml | 8 ++ Tests/fixtures/phablet.yml | 16 +++ Tests/fixtures/smartphone-3.yml | 16 +++ Tests/fixtures/tv-1.yml | 16 +++ regexes/client/mobile_apps.yml | 103 +++++++++++++++ regexes/device/mobiles.yml | 15 ++- regexes/oss.yml | 4 + 8 files changed, 310 insertions(+), 6 deletions(-) diff --git a/Tests/Parser/Client/fixtures/mobile_app.yml b/Tests/Parser/Client/fixtures/mobile_app.yml index 92f4006b1a..52c1953624 100644 --- a/Tests/Parser/Client/fixtures/mobile_app.yml +++ b/Tests/Parser/Client/fixtures/mobile_app.yml @@ -827,3 +827,141 @@ type: mobile app name: Bible KJV version: 2.83.0 +- + user_agent: MetaTrader 5 Terminal/5.2981 (Windows NT 10.0.19042; x64) + client: + type: mobile app + name: MetaTrader + version: "5.2981" +- + user_agent: ios/14.8 com.paint.bynumber/2.72.0 + client: + type: mobile app + name: Paint by Number + version: 2.72.0 +- + user_agent: ios.zepeto_global/3.6.2 (ios; U; iOS 14.7.1; en-CA; occ-CA; iPhone 11);ZEPETO + client: + type: mobile app + name: ZEPETO + version: 3.6.2 +- + user_agent: Jungle Disk Workgroup HTTP/110 (Windows 10.0 64-bit) + client: + type: mobile app + name: Jungle Disk + version: "" +- + user_agent: Mozilla/5.0 (Android) Nextcloud-android/3.17.1 + client: + type: mobile app + name: Nextcloud + version: 3.17.1 +- + user_agent: Mozilla/5.0 (iPad; CPU OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 TeamsMobile-iOS + client: + type: mobile app + name: Teams + version: "" +- + user_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 GoNativeIOS/1.0 gonative + client: + type: mobile app + name: GoNative + version: "1.0" +- + user_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Pandora/2108.1.1 + client: + type: mobile app + name: Pandora + version: 2108.1.1 +- + user_agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Safari/605.1 Blackboard/6.9 + client: + type: mobile app + name: Blackboard + version: "6.9" +- + user_agent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_8 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 QQMusic/10.18.0 Mskin/white Mcolor/22d59cff Bcolor/00000000 skinid[902] NetType/2G WebView/UIWebView Released[1] zh-Hans-JP DeviceModel/iPhone13,4 skin_css/skin2_1_902 Pixel/1284 FreeFlow/0 teenMode/0 nft_released/[1] FontMode/0] pixel/1284 model/iPhone13,4' + client: + type: mobile app + name: QQMusic + version: 10.18.0 +- + user_agent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 etoro-cordova-app' + client: + type: mobile app + name: eToro + version: "" +- + user_agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_16_0) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.11.1 Chrome/65.0.3325.230 Safari/537.36 Avid Link Desktop App/20.4.0.1302 + client: + type: mobile app + name: Avid Link + version: 20.4.0.1302 +- + user_agent: Mozilla/5.0 (Linux; Android 11; SM-N981U Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.50 Mobile Safari/537.36 Blackboard/unspecified + client: + type: mobile app + name: Blackboard + version: "" +- + user_agent: 'Mozilla/5.0 (Linux; Android 11; SM-G973F Build/RP1A.200720.012; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/95.0.4638.74 Mobile Safari/537.36 [FBAN/AudienceNetworkForAndroid;FBSN/Android;FBSV/11;FBAB/com.dopuz.klotski.riddle;FBAV/5.1701;FBBV/51701;FBVS/6.7.0;FBLC/en_GB]' + client: + type: mobile app + name: Facebook Audience Network + version: "5.1701" +- + user_agent: 'Gibbon/2020.2.2.0/2020.2.2.0: Netflix/2020.2.2.0 (DEVTYPE=NFANDROID2-PRV-FIRETVSTICK2018; CERTVER=0)' + client: + type: mobile app + name: Netflix + version: 2020.2.2.0 +- + user_agent: GoogleTagManager/4.00 (Linux; U; Android 9; en-us; U693CL Build/U693CL_01.02.03) + client: + type: mobile app + name: Google Tag Manager + version: "4.00" +- + user_agent: Mozilla/3.0 (compatible; Adobe Synchronizer 21.7.20095) + client: + type: mobile app + name: Adobe Synchronizer + version: 21.7.20095 +- + user_agent: Mozilla/5.0 (Linux) mirall/2.5.1 + client: + type: mobile app + name: Nextcloud + version: 2.5.1 +- + user_agent: BlueStacks/4.260.0.1020/87750099-46c9-43c0-8eb9-90c8687934ce gzip + client: + type: mobile app + name: BlueStacks + version: 4.260.0.1020 +- + user_agent: BlueStacks 5/5.0.230.1001/a86919c0-9431-426e-8862-c346ce1e4f38 gzip + client: + type: mobile app + name: BlueStacks + version: 5.0.230.1001 +- + user_agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) WindowsPowerShell/5.1.18362.1714 + client: + type: mobile app + name: PowerShell + version: 5.1.18362.1714 +- + user_agent: PAN GlobalProtect/5.2.6-87 (Microsoft Windows 10 Enterprise , 64-bit) Mozilla/5.0 (Windows NT 6.2; Win64; x64; Trident/7.0; rv:11.0) like Gecko + client: + type: mobile app + name: GlobalProtect + version: 5.2.6 +- + user_agent: Theyub v7.4.8 IOS iPhoneXSMax CA en + client: + type: mobile app + name: Theyub + version: 7.4.8 diff --git a/Tests/Parser/fixtures/oss.yml b/Tests/Parser/fixtures/oss.yml index 9a5cce1cbe..b765ffc216 100644 --- a/Tests/Parser/fixtures/oss.yml +++ b/Tests/Parser/fixtures/oss.yml @@ -2775,3 +2775,11 @@ version: "" platform: "" family: iOS +- + user_agent: 'Gibbon/2020.2.2.0/2020.2.2.0: Netflix/2020.2.2.0 (DEVTYPE=NFANDROID2-PRV-FIRETVSTICK2018; CERTVER=0)' + os: + name: Fire OS + short_name: FIR + version: "6" + platform: "" + family: Android diff --git a/Tests/fixtures/phablet.yml b/Tests/fixtures/phablet.yml index 32e2cca063..adbef64536 100644 --- a/Tests/fixtures/phablet.yml +++ b/Tests/fixtures/phablet.yml @@ -7364,3 +7364,19 @@ model: Mi Mix Fold os_family: Android browser_family: Chrome +- + user_agent: Theyub v7.4.8 IOS iPhoneXSMax CA en + os: + name: iOS + version: "" + platform: "" + client: + type: mobile app + name: Theyub + version: 7.4.8 + device: + type: phablet + brand: Apple + model: iPhone XS Max + os_family: iOS + browser_family: Unknown diff --git a/Tests/fixtures/smartphone-3.yml b/Tests/fixtures/smartphone-3.yml index 90c7e77c3a..732a78595f 100644 --- a/Tests/fixtures/smartphone-3.yml +++ b/Tests/fixtures/smartphone-3.yml @@ -10260,3 +10260,19 @@ model: Moto G 5G Plus os_family: Android browser_family: Chrome +- + user_agent: Theyub v7.4.8 IOS iphone7 GB en 1044620220 + os: + name: iOS + version: "" + platform: "" + client: + type: mobile app + name: Theyub + version: 7.4.8 + device: + type: smartphone + brand: Apple + model: iPhone 7 + os_family: iOS + browser_family: Unknown diff --git a/Tests/fixtures/tv-1.yml b/Tests/fixtures/tv-1.yml index 0a91b50025..c773f60b3c 100644 --- a/Tests/fixtures/tv-1.yml +++ b/Tests/fixtures/tv-1.yml @@ -2567,3 +2567,19 @@ model: LEAP-S1 os_family: Android browser_family: Chrome +- + user_agent: 'Gibbon/2020.2.2.0/2020.2.2.0: Netflix/2020.2.2.0 (DEVTYPE=NFANDROID2-PRV-FIRETVSTICK2018; CERTVER=0)' + os: + name: Fire OS + version: "6" + platform: "" + client: + type: mobile app + name: Netflix + version: 2020.2.2.0 + device: + type: tv + brand: Amazon + model: Fire TV Stick 4K + os_family: Android + browser_family: Unknown diff --git a/regexes/client/mobile_apps.yml b/regexes/client/mobile_apps.yml index 2f5458fee2..426e8bce92 100644 --- a/regexes/client/mobile_apps.yml +++ b/regexes/client/mobile_apps.yml @@ -19,6 +19,11 @@ name: 'bPod' version: '' +# Facebook Audience Network +- regex: 'AudienceNetworkForAndroid.+(?:FBAV)(?:[ /]([\d\.]+))?' + name: 'Facebook Audience Network' + version: '$1' + # Facebook Messenger Lite - regex: 'MessengerLiteForiOS.(?:FBAV)(?:[ /]([\d\.]+))?' name: 'Facebook Messenger Lite' @@ -621,6 +626,10 @@ name: 'Teams' version: '$1' +- regex: 'TeamsMobile-iOS' + name: 'Teams' + version: '' + # Streamlabs OBS (https://streamlabs.com/) - regex: 'StreamlabsOBS/(\d+[\.\d]+)' name: 'Streamlabs OBS' @@ -864,3 +873,97 @@ - regex: 'com.meevii.bibleKJV/(\d+[\.\d]+)' name: 'Bible KJV' version: '$1' + +# MetaTrader (https://www.metatrader5.com/) +- regex: 'MetaTrader 5 Terminal/(\d+[\.\d]+)' + name: 'MetaTrader' + version: '$1' + +# Paint by Number (https://apps.apple.com/us/app/paint-by-number-coloring-games/id1420058690) +- regex: 'com.paint.bynumber/(\d+[\.\d]+)' + name: 'Paint by Number' + version: '$1' + +# ZEPETO (https://apps.apple.com/app/id1350301428) +- regex: 'zepeto_global/(\d+[\.\d]+)' + name: 'ZEPETO' + version: '$1' + +# Jungle Disk (https://www.jungledisk.com/) +- regex: 'Jungle Disk Workgroup HTTP' + name: 'Jungle Disk' + version: '' + +# Nextcloud (https://play.google.com/store/apps/details?id=com.nextcloud.client) +- regex: '(?:mirall|Nextcloud-android)/(\d+[\.\d]+)' + name: 'Nextcloud' + version: '$1' + +# GoNative (https://gonative.io/) +- regex: 'GoNativeIOS/(\d+[\.\d]+)' + name: 'GoNative' + version: '$1' + +# Pandora (https://apps.apple.com/us/app/pandora-music-podcasts/id284035177) +- regex: 'Pandora/(\d+[\.\d]+)' + name: 'Pandora' + version: '$1' + +# Blackboard (https://apps.apple.com/us/app/blackboard/id950424861) +- regex: 'Blackboard/(\d+[\.\d]+)' + name: 'Blackboard' + version: '$1' + +- regex: 'Blackboard/unspecified' + name: 'Blackboard' + version: '' + +# QQMusic (https://apps.apple.com/cn/app/qq%E9%9F%B3%E4%B9%90-%E5%90%AC%E6%88%91%E6%83%B3%E5%90%AC/id414603431) +- regex: 'QQMusic/(\d+[\.\d]+)' + name: 'QQMusic' + version: '$1' + +# eToro (https://www.etoro.com/) +- regex: 'etoro-cordova-app' + name: 'eToro' + version: '' + +# Avid Link (https://www.avid.com/products/avid-link) +- regex: 'Avid Link Desktop App/(\d+[\.\d]+)' + name: 'Avid Link' + version: '$1' + +# Netflix (https://www.netflix.com/) +- regex: 'Netflix/(\d+[\.\d]+)' + name: 'Netflix' + version: '$1' + +# Google Tag Manager (https://www.google.com/) +- regex: 'GoogleTagManager/(\d+[\.\d]+)' + name: 'Google Tag Manager' + version: '$1' + +# Adobe Synchronizer (https://www.adobe.com/) +- regex: 'Adobe Synchronizer (\d+[\.\d]+)' + name: 'Adobe Synchronizer' + version: '$1' + +# BlueStacks (https://www.bluestacks.com/) +- regex: 'BlueStacks(?: 5)?/(\d+[\.\d]+)' + name: 'BlueStacks' + version: '$1' + +# PowerShell (https://www.microsoft.com/en-us/) +- regex: 'WindowsPowerShell/(\d+[\.\d]+)' + name: 'PowerShell' + version: '$1' + +# GlobalProtect (https://www.paloaltonetworks.com/products/globalprotect) +- regex: 'PAN GlobalProtect/(\d+[\.\d]+)' + name: 'GlobalProtect' + version: '$1' + +# Theyub +- regex: 'Theyub v(\d+[\.\d]+)' + name: 'Theyub' + version: '$1' diff --git a/regexes/device/mobiles.yml b/regexes/device/mobiles.yml index 3e935965f7..aaa728a1ab 100644 --- a/regexes/device/mobiles.yml +++ b/regexes/device/mobiles.yml @@ -947,7 +947,7 @@ Apple: - regex: '(?:Apple-|.+_)?iPh(?:one)?8[C,_]4| SE\)$' model: 'iPhone SE' device: 'smartphone' - - regex: '(?:Apple-|.+_)?iPh(?:one)?9[C,_][13]| 7\)$' + - regex: '(?:Apple-|.+_)?iPh(?:one)?9[C,_][13]|iphone7 | 7\)$' model: 'iPhone 7' device: 'smartphone' - regex: '(?:Apple-|.+_)?iPh(?:one)?9[C,_][24]| 7PLUS\)$' @@ -965,7 +965,7 @@ Apple: - regex: '(?:Apple-|.+_)?iPh(?:one)?11[C,_][2]| XS\)$' model: 'iPhone XS' device: 'smartphone' - - regex: '(?:Apple-|.+_)?iPh(?:one)?11[C,_][46]| XSMAX\)$' + - regex: '(?:Apple-|.+_)?iPh(?:one)?11[C,_][46]|iPhoneXSMax| XSMAX\)$' model: 'iPhone XS Max' device: 'phablet' - regex: '(?:Apple-|.+_)?iPh(?:one)?11[C,_][8]| XR\)$' @@ -12405,13 +12405,13 @@ Myria: # M.T.T. M.T.T.: - regex: 'M.T.T.' + regex: 'M\.T\.T\.' device: 'smartphone' models: - - regex: 'M.T.T. ?Tablet([^;/]+)? Build' + - regex: 'M\.T\.T\. ?Tablet([^;/]+)? Build' device: 'tablet' model: 'Tablet$1' - - regex: 'M.T.T. ?([^;/]+) Build' + - regex: 'M\.T\.T\. ?([^;/]+) Build' model: '$1' # Navon @@ -16996,7 +16996,7 @@ Anker: # Kindle Amazon: - regex: '(?:AFT[ABMNRST]|AFTSSS?|SD4930UR|AEO(?:BC|C[HW]|KN)|KF(?:OT|ONWI|TT|JWI|JWA|[DFS]OWI|A[PRSU]WI|T[BH]WI|TRP?WI|SAW[IA]|GIWI|KAWI|MAWI|MEWI|MUWI|SUWI))(?:[);/ ]|$)|Kindle|AlexaMediaPlayer|Amazon (?:Tate|Jem)|Silk/\d+\.\d+|Echo/1' + regex: '(?:AFT[ABMNRST]|AFTSSS?|SD4930UR|AEO(?:BC|C[HW]|KN)|KF(?:OT|ONWI|TT|JWI|JWA|[DFS]OWI|A[PRSU]WI|T[BH]WI|TRP?WI|SAW[IA]|GIWI|KAWI|MAWI|MEWI|MUWI|SUWI))(?:[);/ ]|$)|Kindle|AlexaMediaPlayer|Amazon (?:Tate|Jem)|Silk/\d+\.\d+|Echo/1|.+FIRETVSTICK' device: 'tablet' models: - regex: 'AFTA' @@ -17020,6 +17020,9 @@ Amazon: - regex: 'AFT[MST]' model: 'Fire TV stick' device: 'tv' + - regex: '.+FIRETVSTICK2018' + model: 'Fire TV Stick 4K' + device: 'tv' - regex: 'KFFOWI(?:[);/ ]|$)' model: 'Fire 7"' - regex: 'KFMUWI(?:[);/ ]|$)' diff --git a/regexes/oss.yml b/regexes/oss.yml index 7e7a2efec0..c030887e16 100644 --- a/regexes/oss.yml +++ b/regexes/oss.yml @@ -120,6 +120,10 @@ name: 'Fire OS' version: '$1' +- regex: '.+FIRETVSTICK2018' + name: 'Fire OS' + version: '6' + - regex: 'AFTSO001' name: 'Fire OS' version: '7'