From 0a6a858d68683b70fc101bfce23b1b0fb0c5eca7 Mon Sep 17 00:00:00 2001 From: Liviu-Mihail Concioiu Date: Tue, 8 Aug 2023 15:34:31 +0200 Subject: [PATCH] Adds detection for various browsers and apps (#7448) ref #7039 * Adds detection for KPN Veilig ref #7039 * Adds detection for ACT Shield * Adds detection for TalkTalk SuperSafe * Improves detection for Arvin browser * Adds detection for Pawxy browser * Adds detection for LUJO TV Browser * Adds detection for LogicUI TV Browser * Improves detection for Opera browser * Adds detection for Bifrost Wallet * Improves detection for Quark browser * Improves detection for Yahoo! Japan Browser * Adds detection for Open TV Browser * Adds detection for AnyDesk Remote Desktop * Adds detection for KUTO VPN * Adds detection for YouTube * Adds detection for OrNET Browser * Adds detection for BrowsBit browser * Adds detection for BlueWallet --- DeviceDetector.php | 7 +- Parser/Client/Browser.php | 10 +- Tests/Parser/Client/fixtures/browser.yml | 110 +++++++++++++++++ Tests/fixtures/clienthints-app.yml | 144 +++++++++++++++++++++++ Tests/fixtures/clienthints.yml | 60 ++++++++++ regexes/client/hints/apps.yml | 8 ++ regexes/client/hints/browsers.yml | 10 ++ 7 files changed, 345 insertions(+), 4 deletions(-) diff --git a/DeviceDetector.php b/DeviceDetector.php index 7e45094c68..f2452e22a3 100644 --- a/DeviceDetector.php +++ b/DeviceDetector.php @@ -1041,9 +1041,12 @@ protected function parseDevice(): void } /** - * Devices running Kylo or Espital TV Browsers are assumed to be a TV + * Devices running Kylo or Espial TV Browsers are assumed to be a TV */ - if (null === $this->device && \in_array($clientName, ['Kylo', 'Espial TV Browser'])) { + if (\in_array($clientName, [ + 'Kylo', 'Espial TV Browser', 'LUJO TV Browser', 'LogicUI TV Browser', 'Open TV Browser', + ]) + ) { $this->device = AbstractDeviceParser::DEVICE_TYPE_TV; } diff --git a/Parser/Client/Browser.php b/Parser/Client/Browser.php index 916750f081..47f5fdbfdf 100644 --- a/Parser/Client/Browser.php +++ b/Parser/Client/Browser.php @@ -137,6 +137,7 @@ class Browser extends AbstractClientParser 'BX' => 'BrowseX', 'BZ' => 'Browzar', 'B7' => 'Browlser', + '4B' => 'BrowsBit', 'BY' => 'Biyubi', 'BF' => 'Byffox', 'B4' => 'BF Browser', @@ -307,10 +308,12 @@ class Browser extends AbstractClientParser 'LH' => 'Light', 'L1' => 'Lilo', 'LI' => 'Links', + 'LC' => 'LogicUI TV Browser', 'IF' => 'Lolifox', 'LO' => 'Lovense Browser', 'LT' => 'LT Browser', 'LU' => 'LuaKit', + 'LJ' => 'LUJO TV Browser', 'LL' => 'Lulumi', 'LS' => 'Lunascape', 'LN' => 'Lunascape Lite', @@ -381,11 +384,13 @@ class Browser extends AbstractClientParser 'OR' => 'Oregano', 'O0' => 'Origin In-Game Overlay', 'OY' => 'Origyn Web Browser', + 'O8' => 'OrNET Browser', 'OV' => 'Openwave Mobile Browser', 'O3' => 'OpenFin', 'O4' => 'Open Browser', '4U' => 'Open Browser 4U', '5G' => 'Open Browser fast 5G', + 'O7' => 'Open TV Browser', 'OW' => 'OmniWeb', 'OT' => 'Otter Browser', 'PL' => 'Palm Blazer', @@ -398,6 +403,7 @@ class Browser extends AbstractClientParser '2P' => 'Puffin Web Browser', 'PW' => 'Palm WebPro', 'PA' => 'Palmscape', + 'P7' => 'Pawxy', 'PE' => 'Perfect Browser', 'P1' => 'Phantom.me', 'PH' => 'Phantom Browser', @@ -589,7 +595,7 @@ class Browser extends AbstractClientParser 'HO', 'A5', 'X1', '18', 'B5', 'B6', 'TC', 'A6', '2X', 'F4', 'YG', 'WR', 'NA', 'DM', '1M', 'A7', 'XN', 'XT', 'XB', 'W1', 'HT', 'B8', 'F5', 'B9', 'WA', 'T0', 'HC', - 'O6', + 'O6', 'P7', 'LJ', 'LC', 'O7', ], 'Firefox' => [ 'AX', 'BI', 'BF', 'BH', 'BN', 'C0', 'CU', 'EI', 'F1', @@ -627,7 +633,7 @@ class Browser extends AbstractClientParser 'O4', 'XO', 'U0', 'B0', 'VA', 'X0', 'A5', 'X1', '18', 'B5', 'B6', 'TC', 'A6', '2X', 'F4', 'YG', 'WR', 'NA', 'DM', '1M', 'A7', 'XN', 'XT', 'XB', 'W1', 'HT', 'B7', - 'B9', 'T0', 'I8', 'O6', + 'B9', 'T0', 'I8', 'O6', 'P7', 'O8', '4B', ]; /** diff --git a/Tests/Parser/Client/fixtures/browser.yml b/Tests/Parser/Client/fixtures/browser.yml index 1ea3ad4955..c64775913b 100644 --- a/Tests/Parser/Client/fixtures/browser.yml +++ b/Tests/Parser/Client/fixtures/browser.yml @@ -7362,3 +7362,113 @@ engine: Blink engine_version: 77.0.3865.92 family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Arvin/2.0.0 Chrome/113.0.5672.162 Mobile Safari/537.36 + client: + type: browser + name: Arvin + version: 2.0.0 + engine: Blink + engine_version: 113.0.5672.162 + family: Chrome + headers: + http-x-requested-with: com.arvin.browser +- + user_agent: Mozilla/5.0 (Linux; Android 13; SM-A546E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.196 Mobile Safari/537.36 + client: + type: browser + name: Pawxy + version: "" + engine: Blink + engine_version: 114.0.5735.196 + family: Chrome + headers: + http-x-requested-with: com.pawxy.browser +- + user_agent: Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.115 Mobile Safari/537.36 + client: + type: browser + name: LUJO TV Browser + version: "" + engine: Blink + engine_version: 111.0.5563.115 + family: Chrome + headers: + http-x-requested-with: com.internet.tvbrowser +- + user_agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.196 Safari/537.36 + client: + type: browser + name: LogicUI TV Browser + version: "" + engine: Blink + engine_version: 114.0.5735.196 + family: Chrome + headers: + http-x-requested-with: com.logicui.tvbrowser2 +- + user_agent: Mozilla/5.0 (Linux; U; Android 13; en-in; 21091116UI Build/TP1A.220624.014) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/61.0.3163.128 Mobile Safari/537.36 Lite Browser/75.2.3978.72588 + client: + type: browser + name: Opera + version: "" + engine: Blink + engine_version: 61.0.3163.128 + family: Opera + headers: + http-x-requested-with: com.opera.browser.afin +- + user_agent: Mozilla/5.0 (Linux; U; Android 12; zh-Hans-DZ; LIO-AN00m Build/HUAWEILIO-AN00m) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/100.0.4896.58 Quark/6.2.8.250 Mobile Safari/537.36 + client: + type: browser + name: Quark + version: 6.2.8.250 + engine: WebKit + engine_version: "537.36" + family: Chrome + headers: + http-x-requested-with: com.quark.browser +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; SM-G610F Build/M1AJQ; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36 YJApp-ANDROID jp.co.yahoo.android.ybrowser/3.32.0.1 + client: + type: browser + name: Yahoo! Japan Browser + version: 3.32.0.1 + engine: WebKit + engine_version: "537.36" + family: Chrome + headers: + http-x-requested-with: jp.co.yahoo.android.ybrowser +- + user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 + client: + type: browser + name: Open TV Browser + version: "" + engine: Blink + engine_version: 111.0.0.0 + family: Chrome + headers: + http-x-requested-with: com.tv.browser.open +- + user_agent: Mozilla/5.0 (Linux; Android 13; SM-A715F Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/109.0.5414.118 Mobile Safari/537.36 + client: + type: browser + name: OrNET Browser + version: "" + engine: Blink + engine_version: 109.0.5414.118 + family: Chrome + headers: + http-x-requested-with: com.ornet.torbrowser +- + user_agent: Mozilla/5.0 (Linux; Android 10; moto g power (2021) Build/QZBS30.Q4-43-59-5; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/110.0.5481.154 Mobile Safari/537.36 + client: + type: browser + name: BrowsBit + version: "" + engine: Blink + engine_version: 110.0.5481.154 + family: Chrome + headers: + http-x-requested-with: com.browsbit diff --git a/Tests/fixtures/clienthints-app.yml b/Tests/fixtures/clienthints-app.yml index 45efc3381b..a6994188c8 100644 --- a/Tests/fixtures/clienthints-app.yml +++ b/Tests/fixtures/clienthints-app.yml @@ -1783,3 +1783,147 @@ model: "" os_family: Android browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 12; SM-A326B Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.79 Mobile Safari/537.36 + headers: + http-x-requested-with: com.fsecure.ms.kpn.veilig + os: + name: Android + version: "12" + platform: "" + client: + type: mobile app + name: KPN Veilig + version: "" + device: + type: smartphone + brand: Samsung + model: Galaxy A32 5G + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 11; Redmi Note 8 Build/RKQ1.201004.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.128 Mobile Safari/537.36 + headers: + http-x-requested-with: com.fsecure.ms.actshield + os: + name: Android + version: "11" + platform: "" + client: + type: mobile app + name: ACT Shield + version: "" + device: + type: phablet + brand: Xiaomi + model: Redmi Note 8 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 12; SM-A125F Build/SP1A.210812.016; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.101 Mobile Safari/537.36 + headers: + http-x-requested-with: com.fsecure.ms.talktalksa + os: + name: Android + version: "12" + platform: "" + client: + type: mobile app + name: TalkTalk SuperSafe + version: "" + device: + type: smartphone + brand: Samsung + model: Galaxy A12 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 13; SM-A715F Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.196 Mobile Safari/537.36 + headers: + http-x-requested-with: com.bifrostwallet.app + os: + name: Android + version: "13" + platform: "" + client: + type: mobile app + name: Bifrost Wallet + version: "" + device: + type: smartphone + brand: Samsung + model: Galaxy A71 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 12; Lenovo TB128XU Build/SKQ1.220119.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.196 Safari/537.36 + headers: + http-x-requested-with: com.anydesk.anydeskandroid + os: + name: Android + version: "12" + platform: "" + client: + type: mobile app + name: AnyDesk Remote Desktop + version: "" + device: + type: tablet + brand: Lenovo + model: Tab M10 Plus (Gen 3) + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 9; en-gb; MRD-LX1 Build/HUAWEIMRD-LX1;) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.116 Mobile Safari/537.36 + headers: + http-x-requested-with: com.kuto.vpn + os: + name: Android + version: "9" + platform: "" + client: + type: mobile app + name: KUTO VPN + version: "" + device: + type: smartphone + brand: Huawei + model: Y6 (2019) + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 13; SM-G998B Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.60 Mobile Safari/537.36 + headers: + http-x-requested-with: com.google.android.youtube + os: + name: Android + version: "13" + platform: "" + client: + type: mobile app + name: YouTube + version: "" + device: + type: smartphone + brand: Samsung + model: Galaxy S21 Ultra 5G + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 13; SM-A336B Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 + headers: + http-x-requested-with: io.bluewallet.bluewallet + os: + name: Android + version: "13" + platform: "" + client: + type: mobile app + name: BlueWallet + version: "" + device: + type: smartphone + brand: Samsung + model: Galaxy A33 5G + os_family: Android + browser_family: Unknown diff --git a/Tests/fixtures/clienthints.yml b/Tests/fixtures/clienthints.yml index ec9fb8d72a..a51abd03a8 100644 --- a/Tests/fixtures/clienthints.yml +++ b/Tests/fixtures/clienthints.yml @@ -919,3 +919,63 @@ model: M5 os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.115 Mobile Safari/537.36 + headers: + http-x-requested-with: com.internet.tvbrowser + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: LUJO TV Browser + version: "" + engine: Blink + engine_version: 111.0.5563.115 + device: + type: tv + brand: "" + model: "" + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/114.0.5735.196 Safari/537.36 + headers: + http-x-requested-with: com.logicui.tvbrowser2 + os: + name: GNU/Linux + version: "" + platform: x86 + client: + type: browser + name: LogicUI TV Browser + version: "" + engine: Blink + engine_version: 114.0.5735.196 + device: + type: tv + brand: "" + model: "" + os_family: GNU/Linux + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 + headers: + http-x-requested-with: com.tv.browser.open + os: + name: Windows + version: "10" + platform: x64 + client: + type: browser + name: Open TV Browser + version: "" + engine: Blink + engine_version: 111.0.0.0 + device: + type: tv + brand: "" + model: "" + os_family: Windows + browser_family: Chrome diff --git a/regexes/client/hints/apps.yml b/regexes/client/hints/apps.yml index f2507fb6e5..7dd40fb13d 100644 --- a/regexes/client/hints/apps.yml +++ b/regexes/client/hints/apps.yml @@ -92,6 +92,13 @@ 'mobi.deallauncher.coupons.shopping': 'Coupons & Deals' 'com.wukongtv.wkcast.intl': 'Quick Cast' 'com.tt.android.dm.view': 'Download Manager' +'com.fsecure.ms.kpn.veilig': 'KPN Veilig' +'com.fsecure.ms.actshield': 'ACT Shield' +'com.fsecure.ms.talktalksa': 'TalkTalk SuperSafe' +'com.bifrostwallet.app': 'Bifrost Wallet' +'com.anydesk.anydeskandroid': 'AnyDesk Remote Desktop' +'com.google.android.youtube': 'YouTube' +'io.bluewallet.bluewallet': 'BlueWallet' # Vpns 'org.torproject.android': 'Orbot' @@ -100,3 +107,4 @@ 'com.v2.vpn.security.free': 'V2Free' 'com.surfshark.vpnclient.android': 'Surfshark' 'com.omshyapps.vpn': 'Omshy VPN' +'com.kuto.vpn': 'KUTO VPN' diff --git a/regexes/client/hints/browsers.yml b/regexes/client/hints/browsers.yml index 3d5b7d91af..6b0e2bb1ac 100644 --- a/regexes/client/hints/browsers.yml +++ b/regexes/client/hints/browsers.yml @@ -193,3 +193,13 @@ 'com.ivvi.browser': 'IVVI Browser' 'com.nomone.vrbrowser': 'NOMone VR Browser' 'com.opus.browser': 'Opus Browser' +'com.arvin.browser': 'Arvin' +'com.pawxy.browser': 'Pawxy' +'com.internet.tvbrowser': 'LUJO TV Browser' +'com.logicui.tvbrowser2': 'LogicUI TV Browser' +'com.opera.browser.afin': 'Opera' +'com.quark.browser': 'Quark' +'jp.co.yahoo.android.ybrowser': 'Yahoo! Japan Browser' +'com.tv.browser.open': 'Open TV Browser' +'com.ornet.torbrowser': 'OrNET Browser' +'com.browsbit': 'BrowsBit'