From 0c06547c12e4e89fcd49c1f4a001e615f8240208 Mon Sep 17 00:00:00 2001 From: Tutik Alexsandr Date: Mon, 11 Apr 2022 12:54:08 +0300 Subject: [PATCH] Detect new brands: Airtel, MAXX, TENPLUS, HAOVM, COMPUMAX and Detect devices for several existing brands (#7084) * feat(device) detect new brand Airtel models: AirPad 7S * feat(device) detect new brand MAXX: T1270G feat(device) detect brand Samsung: Galaxy Tab S8 11.0" WiFi (SM-X700) feat(device) detect brand Oysters: T12 3G, T12V 3G * feat(device) detect brand Jesy: J9s Pro * feat(device) detect brand Xiaomi: Pocophone F1 (beryllium) feat(device) detect brand Wileyfox: Swift (crackling) feat(device) detect brand Asus: MeMO Pad FHD 10 LTE (AOSP on Duma) feat(device) detect brand Unknown: Audi KS (ks1280x480) * feat(device) detect new brand TENPLUS: X12 feat(device) detect brand Xiaomi: Redmi Note 11 Pro 5G (2201116SG) feat(device) detect brand Tecno Mobile: Camon iAir 2+ (TECNO ID3k) feat(device) detect brand Casper: VIA L30 feat(device) detect brand Chuwi: SurPad feat(device) detect brand Allview: Viva 1003G Lite feat(device) detect brand Sony: Bravia 8K UR3 issue #7083 * feat(device) detect brand Tecno Mobile: Camon i2 (TECNO ID5a), Camon iAce 2 (TECNO KB2) * feat(device) detect new brand HAOVM: T2000 feat(device) detect brand Tecno Mobile: Camon iTwin (TECNO IA5) feat(device) detect brand Realme: C21Y (RMX3262) feat(device) detect brand Wiko: View 4 (W-V830-ID) feat(device) detect brand Zebra: TC21 * feat(device) detect new brand COMPUMAX: Blue S10 feat(device) detect brand Philco: Hit P10 feat(device) detect brand Chuwi: HiPad Plus * feat(device) detect brand Infinix: Note 11, Zero X Neo, Zero X Pro, Smart 6, Hot 11 (X662), Note 10 Pro feat(device) detect brand iTel: P37 Pro (P681LM) feat(device) detect brand Hotwav: Cyber 9 Pro * fix: tests --- Parser/Device/AbstractDeviceParser.php | 5 + Tests/fixtures/phablet.yml | 90 +++++++++ Tests/fixtures/smartphone-25.yml | 198 ++++++++++++++++++ Tests/fixtures/smartphone-29.yml | 234 +++++++++++++++++++++ Tests/fixtures/tablet-7.yml | 270 +++++++++++++++++++++++++ Tests/fixtures/tv-1.yml | 18 ++ Tests/fixtures/unknown.yml | 36 ++++ regexes/device/mobiles.yml | 127 +++++++++--- 8 files changed, 952 insertions(+), 26 deletions(-) diff --git a/Parser/Device/AbstractDeviceParser.php b/Parser/Device/AbstractDeviceParser.php index 51a3b2e6da..c51214faa2 100644 --- a/Parser/Device/AbstractDeviceParser.php +++ b/Parser/Device/AbstractDeviceParser.php @@ -105,6 +105,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'AZ' => 'Ainol', 'AI' => 'Airness', 'AT' => 'Airties', + '7U' => 'Airtel', 'U0' => 'AIRON', '0A' => 'AIS', 'AW' => 'Aiwa', @@ -270,6 +271,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'CL' => 'Compal', 'CQ' => 'Compaq', 'C7' => 'ComTrade Tesla', + '7Z' => 'COMPUMAX', 'C8' => 'Concord', 'CC' => 'ConCorde', 'C5' => 'Condor', @@ -484,6 +486,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'GV' => 'Gtel', '9Z' => 'H96', 'HF' => 'Hafury', + '9F' => 'HAOVM', 'HA' => 'Haier', 'XH' => 'Haipai', 'HE' => 'HannSpree', @@ -722,6 +725,7 @@ abstract class AbstractDeviceParser extends AbstractParser 'ZM' => 'Maximus', '6X' => 'Maxtron', '0D' => 'MAXVI', + 'XZ' => 'MAXX', 'MW' => 'Maxwest', 'M0' => 'Maze', 'YM' => 'Maze Speed', @@ -1141,6 +1145,7 @@ abstract class AbstractDeviceParser extends AbstractParser '9T' => 'Tetratab', 'TZ' => 'teXet', '29' => 'Teknosa', + 'JC' => 'TENPLUS', 'T4' => 'ThL', 'TN' => 'Thomson', 'O0' => 'Thuraya', diff --git a/Tests/fixtures/phablet.yml b/Tests/fixtures/phablet.yml index 95675d4de2..10bd43d530 100644 --- a/Tests/fixtures/phablet.yml +++ b/Tests/fixtures/phablet.yml @@ -8346,3 +8346,93 @@ model: Redmi Note 11S os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; 2201116SG) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: phablet + brand: Xiaomi + model: Redmi Note 11 Pro 5G + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X663) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: phablet + brand: Infinix + model: Note 11 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X6810) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: phablet + brand: Infinix + model: Zero X Neo + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X6811 Build/RP1A.200720.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Webview + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: phablet + brand: Infinix + model: Zero X Pro + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X695D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.87 + engine: Blink + engine_version: 98.0.4758.87 + device: + type: phablet + brand: Infinix + model: Note 10 Pro + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/smartphone-25.yml b/Tests/fixtures/smartphone-25.yml index b6ba37ffd7..653c5a7b7e 100644 --- a/Tests/fixtures/smartphone-25.yml +++ b/Tests/fixtures/smartphone-25.yml @@ -9827,3 +9827,201 @@ model: K5S os_family: Android browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; U; Android 4.4.2; en-US; thl T12 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.108 UCBrowser/12.11.8.1186 Mobile Safari/537.36 + os: + name: Android + version: 4.4.2 + platform: "" + client: + type: browser + name: UC Browser + version: 12.11.8.1186 + engine: WebKit + engine_version: "537.36" + device: + type: smartphone + brand: ThL + model: T12 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 7.0; J9S_PRO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Mobile Safari/537.36 + os: + name: Android + version: "7.0" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 97.0.4692.98 + engine: Blink + engine_version: 97.0.4692.98 + device: + type: smartphone + brand: Jesy + model: J9s Pro + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; iQG550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: 8.1.0 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: MLS + model: Style 4G + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; OMIX X300) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: OMIX + model: X300 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; blueline) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.69 + engine: Blink + engine_version: 95.0.4638.69 + device: + type: smartphone + brand: Google + model: Pixel 3 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; SM-A025U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.40 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.40 + engine: Blink + engine_version: 95.0.4638.40 + device: + type: smartphone + brand: Samsung + model: Galaxy A02s + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; XQ-BE52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: Sony + model: Xperia Pro I + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; TC21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: Zebra + model: TC21 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X6511B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: smartphone + brand: Infinix + model: Smart 6 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X689F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: smartphone + brand: Infinix + model: Hot 11 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; itel P681LM) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.87 + engine: Blink + engine_version: 98.0.4758.87 + device: + type: smartphone + brand: iTel + model: P37 Pro + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/smartphone-29.yml b/Tests/fixtures/smartphone-29.yml index 31f86200fb..ca5f331b81 100644 --- a/Tests/fixtures/smartphone-29.yml +++ b/Tests/fixtures/smartphone-29.yml @@ -6365,3 +6365,237 @@ model: X1 Light LTE os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 9; itel L5503L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.87 Mobile Safari/537.36 + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 97.0.4692.87 + engine: Blink + engine_version: 97.0.4692.87 + device: + type: smartphone + brand: iTel + model: A46 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Mobile; LYF/F120B/LYF-F120B-001-02-05-011118_audio_patch-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5 + os: + name: KaiOS + version: "2.5" + platform: "" + client: + type: browser + name: Firefox Mobile + version: "48.0" + engine: Gecko + engine_version: "48.0" + device: + type: smartphone + brand: LYF + model: F120B + os_family: Firefox OS + browser_family: Firefox +- + user_agent: Mozilla/5.0 (Linux; Android 10; beryllium) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 74.0.3729.157 + engine: Blink + engine_version: 74.0.3729.157 + device: + type: smartphone + brand: Xiaomi + model: Pocophone F1 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 5.1.1; crackling) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36 + os: + name: Android + version: 5.1.1 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 78.0.3904.96 + engine: Blink + engine_version: 78.0.3904.96 + device: + type: smartphone + brand: Wileyfox + model: Swift + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; TECNO ID3k) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: 8.1.0 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: Tecno Mobile + model: Camon iAir 2+ + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; TECNO ID5a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.50 Mobile Safari/537.36 + os: + name: Android + version: 8.1.0 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.50 + engine: Blink + engine_version: 95.0.4638.50 + device: + type: smartphone + brand: Tecno Mobile + model: Camon i2 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; TECNO KB2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: 8.1.0 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: Tecno Mobile + model: Camon iAce 2 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.0.0; TECNO IA5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.50 Mobile Safari/537.36 + os: + name: Android + version: 8.0.0 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.50 + engine: Blink + engine_version: 95.0.4638.50 + device: + type: smartphone + brand: Tecno Mobile + model: Camon iTwin + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; RMX3262) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: Realme + model: C21Y + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; W-V830-ID) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.50 Mobile Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.50 + engine: Blink + engine_version: 95.0.4638.50 + device: + type: smartphone + brand: Wiko + model: View 4 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; Hit P10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Mobile Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: smartphone + brand: Philco + model: Hit P10 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Cyber 9 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.87 + engine: Blink + engine_version: 98.0.4758.87 + device: + type: smartphone + brand: Hotwav + model: Cyber 9 Pro + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; Infinix X662) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.101 Mobile Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 98.0.4758.101 + engine: Blink + engine_version: 98.0.4758.101 + device: + type: smartphone + brand: Infinix + model: Hot 11 + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/tablet-7.yml b/Tests/fixtures/tablet-7.yml index 16e0afd13b..d51be933b5 100644 --- a/Tests/fixtures/tablet-7.yml +++ b/Tests/fixtures/tablet-7.yml @@ -1977,3 +1977,273 @@ model: ImPad P101 os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 6.0; Airtel Airpad 7-s) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Safari/537.36 + os: + name: Android + version: "6.0" + platform: "" + client: + type: browser + name: Chrome + version: 97.0.4692.98 + engine: Blink + engine_version: 97.0.4692.98 + device: + type: tablet + brand: Airtel + model: AirPad 7S + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 9; SM-T827R4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Safari/537.36 + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: Chrome + version: 97.0.4692.98 + engine: Blink + engine_version: 97.0.4692.98 + device: + type: tablet + brand: Samsung + model: Galaxy Tab S3 9.7" LTE + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; BQ-1081G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Safari/537.36 + os: + name: Android + version: 8.1.0 + platform: "" + client: + type: browser + name: Chrome + version: 97.0.4692.98 + engine: Blink + engine_version: 97.0.4692.98 + device: + type: tablet + brand: bq + model: Grace 3G + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 12; SM-X700) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.174 YaApp_Android/22.17.1/apad YaSearchBrowser/22.17.1/apad BroPP/1.0 SA/3 Mobile Safari/537.36 + os: + name: Android + version: "12" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 22.17.1 + engine: Blink + engine_version: 96.0.4664.174 + device: + type: tablet + brand: Samsung + model: Galaxy Tab S8 11.0" WiFi + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; U; Android 4.2.2; ru; T12 3G Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.8.0.435 U3/0.8.0 Mobile Safari/533.1 + os: + name: Android + version: 4.2.2 + platform: "" + client: + type: browser + name: UC Browser + version: 9.8.0.435 + engine: WebKit + engine_version: "533.1" + device: + type: tablet + brand: Oysters + model: T12 3G + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 4.2.2; T12V 3G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Safari/537.36 + os: + name: Android + version: 4.2.2 + platform: "" + client: + type: browser + name: Chrome + version: 71.0.3578.99 + engine: Blink + engine_version: 71.0.3578.99 + device: + type: tablet + brand: Oysters + model: T12V 3G + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 4.4.2; T1270G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36 OPR/56.1.2780.51589 + os: + name: Android + version: 4.4.2 + platform: "" + client: + type: browser + name: Opera Mobile + version: 56.1.2780.51589 + engine: Blink + engine_version: 78.0.3904.108 + device: + type: tablet + brand: MAXX + model: T1270G + os_family: Android + browser_family: Opera +- + user_agent: Mozilla/5.0 (Linux; Android 7.1.1; AOSP on Duma) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR/58.2.2878.53403 + os: + name: Android + version: 7.1.1 + platform: "" + client: + type: browser + name: Opera + version: 58.2.2878.53403 + engine: Blink + engine_version: 81.0.4044.138 + device: + type: tablet + brand: Asus + model: MeMO Pad FHD 10 LTE + os_family: Android + browser_family: Opera +- + user_agent: Mozilla/5.0 (Linux; Android 10; VIA_L30_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome + version: 98.0.4758.87 + engine: Blink + engine_version: 98.0.4758.87 + device: + type: tablet + brand: Casper + model: VIA L30 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; Surpad) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome + version: 98.0.4758.87 + engine: Blink + engine_version: 98.0.4758.87 + device: + type: tablet + brand: Chuwi + model: SurPad + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; TENPLUS X12) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.87 Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome + version: 98.0.4758.87 + engine: Blink + engine_version: 98.0.4758.87 + device: + type: tablet + brand: TENPLUS + model: X12 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 8.1.0; Viva_1003G_Lite) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36 + os: + name: Android + version: 8.1.0 + platform: "" + client: + type: browser + name: Chrome + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: tablet + brand: Allview + model: Viva 1003G Lite + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 11; T2000) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36 + os: + name: Android + version: "11" + platform: "" + client: + type: browser + name: Chrome + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: tablet + brand: HAOVM + model: T2000 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; BlueS10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: tablet + brand: COMPUMAX + model: Blue S10 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 10; HiPad Plus) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36 + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Chrome + version: 95.0.4638.74 + engine: Blink + engine_version: 95.0.4638.74 + device: + type: tablet + brand: Chuwi + model: HiPad Plus + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/tv-1.yml b/Tests/fixtures/tv-1.yml index 3c42c5d077..1725f9cfc5 100644 --- a/Tests/fixtures/tv-1.yml +++ b/Tests/fixtures/tv-1.yml @@ -6087,3 +6087,21 @@ model: HiSmart 2K ATV4 os_family: Android browser_family: Chrome +- + user_agent: Dalvik/2.1.0 (Linux; U; Android 9; BRAVIA 8K UR3 Build/PTT1.190515.001.S104) + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: Android Browser + version: "" + engine: WebKit + engine_version: "" + device: + type: tv + brand: Sony + model: Bravia 8K UR3 + os_family: Android + browser_family: Android Browser diff --git a/Tests/fixtures/unknown.yml b/Tests/fixtures/unknown.yml index 97f80ca8fe..8a01dc9d55 100644 --- a/Tests/fixtures/unknown.yml +++ b/Tests/fixtures/unknown.yml @@ -3213,3 +3213,39 @@ model: "" os_family: GNU/Linux browser_family: Chrome +- + user_agent: Dalvik/2.1.0 (Linux; U; Android 10; audi_ks1280x480 Build/PPR1.180610.011) + os: + name: Android + version: "10" + platform: "" + client: + type: browser + name: Android Browser + version: "" + engine: WebKit + engine_version: "" + device: + type: car browser + brand: "" + model: Audi KS + os_family: Android + browser_family: Android Browser +- + user_agent: Mozilla/5.0 (Linux; Android 7.0; ks1280x480) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.98 Mobile Safari/537.36 + os: + name: Android + version: "7.0" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 97.0.4692.98 + engine: Blink + engine_version: 97.0.4692.98 + device: + type: car browser + brand: "" + model: Audi KS + os_family: Android + browser_family: Chrome diff --git a/regexes/device/mobiles.yml b/regexes/device/mobiles.yml index 6385437882..cfe05d30a0 100644 --- a/regexes/device/mobiles.yml +++ b/regexes/device/mobiles.yml @@ -2403,6 +2403,9 @@ Allview: - regex: 'H1003_LTE_PRO' device: 'tablet' model: 'Viva H1003 LTE Pro' + - regex: 'Viva_1003G_Lite' + device: 'tablet' + model: 'Viva 1003G Lite' - regex: 'Viva_(H801|100[13]G|(?:H802|H100[12]|H701)_LTE|C701|i701G|803G)' device: 'tablet' model: 'Viva $1' @@ -2821,7 +2824,7 @@ Garmin-Asus: # Asus Asus: - regex: 'Asus(?! Update)|Transformer|ZenFone Max|MeMOPad 10|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|(?:P(?:00[128ACIL]|01[MTVWYZ]|01MA|01T_1|02[13478])(?: Build|\))|X015D|X018D|X003|X00[7ABT]D|Z00D|Z00[MTY]D|Z01[7FGHKMR]D)|K01[579N]|AST21)(?:[);/ ]|$)|G55[023]KL|ZB(631|602|633|55[135]|50[01])KL|ZC(55[134]|520|600)KL|ZA550KL|ZE(5[02]0|620|55[2345])KL|ZD55[23]KL|ZS6(?:61|7[02136])KS|ZS(6[0236]0|55[10])KL|ZS590KS|ZB(500KG|601KL)|MeMo Pad FHD 10 LTE|Z00[SV]D|P01Y_S|Zenfone 5Z' + regex: 'Asus(?! Update)|Transformer|ZenFone Max|MeMOPad 10|TF300T|Slider SL101|PadFone|ME302(?:C|KL)|ME301T|ME371MG|ME17(?:1|2V|3X)|(?:K0[01][0-9a-z]|(?:P(?:00[128ACIL]|01[MTVWYZ]|01MA|01T_1|02[13478])(?: Build|\))|X015D|X018D|X003|X00[7ABT]D|Z00D|Z00[MTY]D|Z01[7FGHKMR]D)|K01[579N]|AST21)(?:[);/ ]|$)|G55[023]KL|ZB(631|602|633|55[135]|50[01])KL|ZC(55[134]|520|600)KL|ZA550KL|ZE(5[02]0|620|55[2345])KL|ZD55[23]KL|ZS6(?:61|7[02136])KS|ZS(6[0236]0|55[10])KL|ZS590KS|ZB(500KG|601KL)|MeMo Pad FHD 10 LTE|Z00[SV]D|P01Y_S|Zenfone 5Z|AOSP on Duma' device: 'smartphone' models: # explicit tablet models @@ -2837,7 +2840,7 @@ Asus: - regex: 'ME302C(?:[);/ ]|$)' model: 'MeMO Pad FHD 10' device: 'tablet' - - regex: '(ME302KL|MeMOPad 10FHD LTE|MeMo Pad FHD 10 LTE)(?:[);/ ]|$)' + - regex: '(?:ME302KL|MeMOPad 10FHD LTE|MeMo Pad FHD 10 LTE|AOSP on Duma)(?:[);/ ]|$)' model: 'MeMO Pad FHD 10 LTE' device: 'tablet' - regex: 'ME301T(?:[);/ ]|$)' @@ -4608,7 +4611,7 @@ Casio: # Casper (casper.com.tr) Casper: - regex: 'CASPER[_ ]|VIA[- _]([XF]20|T7D|A[34]|E[43]|F[123]|G[345]|M4|[LS]8|S7|P[23]|V8C|A[13]_Plus(?:_64)?|A1(?:_1)?|S[13]0|S48|S|T17_M|T1[07]|T7|T7-3G|T8B|T8D-3G|S1[78]|S48_0)(?:[);/ ]|$)' + regex: 'CASPER[_ ]|VIA[- _]([XF]20|T7D|A[34]|E[43]|F[123]|G[345]|M4|[LS]8|S7|P[23]|V8C|A[13]_Plus(?:_64)?|A1(?:_1)?|S[13]0|S48|S|T17_M|T1[07]|T7|T7-3G|T8B|T8D-3G|S1[78]|S48_0|L30_0)(?:[);/ ]|$)' device: 'smartphone' models: - regex: '(?:CASPER[_ ])?VIA_A1_Plus(?:_64)?' @@ -4629,7 +4632,7 @@ Casper: - regex: 'VIA[- _](T7D|S[13]0|S48|[LS]8|S7|T17_M|T1[07]|T7|T8B|S1[78])(?:[);/ ]|$)' model: 'VIA $1' device: 'tablet' - - regex: 'VIA[- _](S48)(?:_0)?(?:[);/ ]|$)' + - regex: 'VIA[- _](S48|L30)(?:_0)?(?:[);/ ]|$)' model: 'VIA $1' device: 'tablet' @@ -5665,9 +5668,17 @@ Digiland: model: 'DL1008M' - regex: 'DL(1016|1023|1036|9002|[78]006|721-RB)' model: 'DL$1' - - regex: '(Compumax Blue)' + - regex: '(Compumax Blue)' # Compumax model: '$1' +# Compumax or COMPUMAX COMPUTER S.A.S (www.compumax.com.co) +COMPUMAX: + regex: 'BlueS10(?:[);/ ]|$)' + device: 'tablet' + models: + - regex: 'BlueS10' + model: 'Blue S10' + # Digma Digma: regex: 'Digma[_ ]([^;/]+) Build|HIT HT707[10]MG|CITI (?:7 E401 4G|8 E400 4G|ATL 4G|Kids|Octa [178]0|1902 3G|10 E402|Z530 3G)|(CITI[_ ](?:[A-Z0-9]+)[_ ][34]G)[ _][TC][ST](?:[0-9]{4}[PM][LG])|HIT 4G|HT7074ML|IDX5|(iDx10|iDx7)|MVM900H(?:WZ|C)|MVM908HCZ|(iDxD8 3G|iDxD10 3G|iDrQ10 3G|iDxD[45]|iDxQ5|iD[nx]D7(?:[_ ]3G)?)|PS604M|PT452E|Linx.+ [34]G L[TS][0-9]{4}[PM][GL]|Linx PS474S|PS1043MG|HT7071MG|HT5035PG|HT4039PG|NS6902QL|NS9797MG|TS7854M|TS1012E 3G|TT1004PG|TT702[045]MG|TT1002MG|TT7026MW|VRL42|((?:Optima|Platina|Plane)[ _](?:[EM])?(?:[0-9\.ST]+|Prime)(?:[ _][43]G)?)|(VOX[ _](?:[0-9\.A-Z]+)[_ ][43]G)|DM-LED(?:43SR23|24SR20)' @@ -6676,7 +6687,7 @@ Sony: device: 'wearable' # SONY: Bravia or TV Box - - regex: '(?:BRAVIA )(2K GB ATV3|4K UR[123]|4K GB ATV3|4K GB|4K VH2|4K 2015|2015|VH1|VU1)(?:[);/ ]|$)' + - regex: '(?:BRAVIA )(2K GB ATV3|[48]K UR[123]|4K GB ATV3|4K GB|4K VH2|4K 2015|2015|VH1|VU1)(?:[);/ ]|$)' model: 'Bravia $1' device: 'tv' - regex: 'SVP-DTV15(?:[);/ ]|$)' @@ -9581,6 +9592,12 @@ Infinix: - regex: 'Infinix[ _-]X687' device: 'phablet' model: 'Zero 8' + - regex: 'Infinix[ _-]X6811' + device: 'phablet' + model: 'Zero X Pro' + - regex: 'Infinix[ _-]X6810' + device: 'phablet' + model: 'Zero X Neo' - regex: 'Infinix[ _-]X507' model: 'Hot' @@ -9626,6 +9643,8 @@ Infinix: model: 'Hot 10' - regex: 'Infinix[ _-]X689C' model: 'Hot 10T' + - regex: 'Infinix[ _-]X689F' + model: 'Hot 11' - regex: 'Infinix X689D' model: 'Hot 10s NFC' - regex: 'Infinix X689' @@ -9636,6 +9655,8 @@ Infinix: model: 'Hot S3' - regex: 'Infinix[ _-]X6812' model: 'Hot 11S' + - regex: 'Infinix[ _-]X662' + model: 'Hot 11' - regex: 'Infinix[ _-]X612' model: 'Smart HD (2021)' @@ -14533,7 +14554,7 @@ OnePlus: # Realme (sub brand Oppo) Realme: - regex: 'Realme[ _]|(?:RMX(?:19(03|4[1235]|19|9[23]|2[1579]|[01379]1|73)|20(?:[025-7]1|42|[0357]2|03|2[257]|63|7[56]|8[1356]|[2-5]0)|21(?:0[13]|1[27]|[12]1|4[24]|5[156]|6[13]|7[036]|8[059]|9[345])|220[0125]|18(0[13579]|11|3[13]|2[1257]|[45]1|53|45)|32(?:0[13]|42|[346]1)|30(?:[3468]1|4[23]|9[23]|63|85)|31(?:2[12]|15|42|9[1357]|51|6[16]|71)|3125|33[57]0|330[01]|3357|3393|336[036]|326[3589]|3235|3430|3472|34[69]1|33[86]1)|(?:OPPO[ _]?)?CPH1861|RMP210[23])(?:[);/ ]|$)' + regex: 'Realme[ _]|(?:RMX(?:19(03|4[1235]|19|9[23]|2[1579]|[01379]1|73)|20(?:[025-7]1|42|[0357]2|03|2[257]|63|7[56]|8[1356]|[2-5]0)|21(?:0[13]|1[27]|[12]1|4[24]|5[156]|6[13]|7[036]|8[059]|9[345])|220[0125]|18(0[13579]|11|3[13]|2[1257]|[45]1|53|45)|32(?:0[13]|42|[346]1)|30(?:[3468]1|4[23]|9[23]|63|85)|31(?:2[12]|15|42|9[1357]|51|6[16]|71)|3125|33[57]0|330[01]|3357|3393|336[036]|326[23589]|3235|3430|3472|34[69]1|33[86]1)|(?:OPPO[ _]?)?CPH1861|RMP210[23])(?:[);/ ]|$)' device: 'smartphone' models: - regex: '(?:OPPO[ _]?)?RMX3142(?:[);/ ]|$)' @@ -14634,7 +14655,7 @@ Realme: model: 'C20' - regex: 'RMX320[13]' model: 'C21' - - regex: 'RMX326[13]' + - regex: 'RMX326[123]' model: 'C21Y' - regex: 'RMX319[13]' model: 'C25' @@ -15214,7 +15235,7 @@ Overmax: # Oysters Oysters: - regex: 'Oysters|T84ERI[ _]3G|T72HM(s_)?3G|T102MS_3G|T102ER3G|(T74HMi|T84Bi)[_ ]4G|T74MR4G|T84Ni[_ ][34]G|Pacific(?:[ ]?800i|E)|T104B_[34]G|IndianV|T72HA_3G|T74D_3G|T74N_3G|T74SC_3G|T74Mai_3G|T104MBi_3G|T104SCi_3G|T104ER4G|Atlantic4G|AntarcticE|T7V 3G|Pacific(?:VS?|4G)' + regex: 'Oysters|T84ERI[ _]3G|T72HM(s_)?3G|T102MS_3G|T102ER3G|(T74HMi|T84Bi)[_ ]4G|T74MR4G|T84Ni[_ ][34]G|Pacific(?:[ ]?800i|E)|T104B_[34]G|IndianV|T72HA_3G|T12V? 3G|T74D_3G|T74N_3G|T74SC_3G|T74Mai_3G|T104MBi_3G|T104SCi_3G|T104ER4G|Atlantic4G|AntarcticE|T7V 3G|Pacific(?:VS?|4G)' device: 'tablet' models: - regex: 'Pacific[ ]?800i' @@ -15240,7 +15261,7 @@ Oysters: model: '$1' - regex: '(T84ERI[ _]3G|T72HM(s_)?3G|(?:(T74HMi|T84Bi)[_ ]4G)|T84Ni[_ ][34]G)' model: '$1' - - regex: '(T74MR|T102MS|T104B|T74SC|T74[DN]|T72HA|T102ER|T104SCi|T104MBi|T104ER|T7V)[ _]?([34]G)' + - regex: '(T74MR|T102MS|T104B|T74SC|T74[DN]|T72HA|T102ER|T104SCi|T104MBi|T104ER|T7V|T12V?)[ _]?([34]G)' model: '$1 $2' - regex: 'T74Mai_3G' model: 'T74MAi 3G' @@ -16063,6 +16084,9 @@ Samsung: - regex: '(?:SAMSUNG-)?SM-T866N(?:[);/ ]|$)' device: 'tablet' model: 'Galaxy Tab S6 10.5" 5G' + - regex: '(?:SAMSUNG-)?SM-X700' + device: 'tablet' + model: 'Galaxy Tab S8 11.0" WiFi' - regex: '(?:SAMSUNG-)?SM-T111' device: 'tablet' model: 'Galaxy Tab 3 Lite 7.0"' @@ -18996,8 +19020,16 @@ Tecno Mobile: model: 'F4 Pro' - regex: 'TECNO[ _]IN5(?:[);/ ]|$)' model: 'Camon i' + - regex: 'TECNO[ _]IA5(?:[);/ ]|$)' + model: 'Camon iTwin' + - regex: 'TECNO[ _]ID3k(?:[);/ ]|$)' + model: 'Camon iAir 2+' + - regex: 'TECNO[ _]KB2(?:[);/ ]|$)' + model: 'Camon iAce 2' - regex: 'TECNO[ _]ID5b(?:[);/ ]|$)' model: 'Camon i2X' + - regex: 'TECNO[ _]ID5a(?:[);/ ]|$)' + model: 'Camon i2' - regex: 'TECNO[ _]ID6(?:[);/ ]|$)' model: 'Camon iClick 2' - regex: 'TECNO[ _]IN2(?:[);/ ]|$)' @@ -20548,7 +20580,7 @@ Wink: # Wiko (wikomobile.com) Wiko: - regex: '(?:WIKO[_ -])|(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink([^/;]*)|Highway([^/;]*)|Iggy|Stairway|Rainbow ?(Jam|Lite|Up)?|Darkside|Darkmoon|Darkfull|Darknight|Freddy|FEVER|Jerry[2]?|Sublim|Ozzy|JIMMY|Barry|Birdy|Bloom|Getaway|Goa(?!nna|lPlus)|Kite|Robby|Lenny[2-9]?|Slide|Sunset[2-9]?|Sunny[2-9]?|Tommy[2-9]?|PULP(?: Fab)?|Wax|HARRY|Ridge(?! Plus)(?: Fab)?|U FEEL(?: Prime| Lite)?|U PULSE(?: LITE)?|View2 (?:Go|Plus)|View XL|View Prime)(?: Plus)?(?: 4G)?(?: Build|$)?|W_(?:C8[06]0|K[346]00|P130|P200|C200SN)|WC300|W-(?:V7[23]0|V745|V755|V8[035]0|P[36]11|K130|K211|K3[68]0|K420|K510S?|K560|K610|K630)-(?:BYT|EEA|FRA|OPE|SUN|SWI|TIM|TMV|TVM|DU|T[HV])|WIM Lite|W-V851|W-V6[08]0|W-V750BN|W-K200|W-U300|U307AS|CINK PEAX 2|HIGHWAY PURE|C210AE|v3913|U614AS|V3991AN' + regex: '(?:WIKO[_ -])|(?:WIKO-)?CINK_[a-z0-9_]+|(?:WIKO-)?HIGHWAY_[a-z0-9_]+|(?:WIKO-)?(?:Cink([^/;]*)|Highway([^/;]*)|Iggy|Stairway|Rainbow ?(Jam|Lite|Up)?|Darkside|Darkmoon|Darkfull|Darknight|Freddy|FEVER|Jerry[2]?|Sublim|Ozzy|JIMMY|Barry|Birdy|Bloom|Getaway|Goa(?!nna|lPlus)|Kite|Robby|Lenny[2-9]?|Slide|Sunset[2-9]?|Sunny[2-9]?|Tommy[2-9]?|PULP(?: Fab)?|Wax|HARRY|Ridge(?! Plus)(?: Fab)?|U FEEL(?: Prime| Lite)?|U PULSE(?: LITE)?|View2 (?:Go|Plus)|View XL|View Prime)(?: Plus)?(?: 4G)?(?: Build|$)?|W_(?:C8[06]0|K[346]00|P130|P200|C200SN)|WC300|W-(?:V7[23]0|V745|V755|V8[035]0|P[36]11|K130|K211|K3[68]0|K420|K510S?|K560|K610|K630)-(?:BYT|EEA|FRA|OPE|SUN|SWI|TIM|TMV|TVM|DU|T[HV]|ID)|WIM Lite|W-V851|W-V6[08]0|W-V750BN|W-K200|W-U300|U307AS|CINK PEAX 2|HIGHWAY PURE|C210AE|v3913|U614AS|V3991AN' device: 'smartphone' models: - regex: '(?:WIKO-)?W-V745' @@ -20749,7 +20781,7 @@ Wiko: model: 'View 3' - regex: 'W-P611-(?:EEA|OPE)' model: 'View 3 Pro' - - regex: 'W-V830-(?:EEA|OPE)' + - regex: 'W-V830-(?:EEA|OPE|ID)' model: 'View 4' - regex: 'W-V730-(?:EEA|TVM)' model: 'View 4 Lite' @@ -20780,7 +20812,7 @@ Weimei: # Wileyfox Wileyfox: - regex: 'Wileyfox|Swift 2(?:[);/ ]|$)' + regex: 'Wileyfox|(?:Swift 2|crackling)(?:[);/ ]|$)' device: 'smartphone' models: - regex: 'Wileyfox Spark \+' @@ -20797,6 +20829,8 @@ Wileyfox: model: 'Swift 2 $1' - regex: 'Swift 2(?:[);/ ]|$)' model: 'Swift 2' + - regex: 'crackling' + model: 'Swift' # Wolder Wolder: @@ -20974,7 +21008,7 @@ Zopo: # Xiaomi Xiaomi: - regex: 'Xiaomi(?!/(?:Miui|Mint[ ])Browser)|MiTV-\w|Mi9 Pro 5G|(?:MI [a-z0-9]+|Mi-4c|MI-One[ _]?[a-z0-9]+|MIX(?: 2S?)?|pomelo)(?:[);/ ]|$)|HM (?:[^/;]+) (?:Build|MIUI)|(?:2014501|2014011|201481[12378]|201302[23]|2013061) Build|Redmi|POCOPHONE|(?:SHARK )?(KLE|KSR|MBU)-[AH]0|SK[RW]-[AH]0|PRS-[AH]0|POCO F1|DLT-[AH]0|MIBOX[234]([_ ]PRO)?|MiTV4[ACSX]?|AWM-A0|MI CC 9 Meitu Edition|MiBOX1S|M2006J10C|M2006C3(?:L[IGC]|LVG|MN?G|MT)|M2007J1(?:7[CGI]|SC)|M2002J9[SEG]|HM2014819|WT88047|210611(?:8C|19BI)|M2004J(?:7[AB]|19)C|M2012K11(?:[CGI]|A[CI])|M2011K2[CG]|M2011J18C|M2006C3[ML]II|M2003J15SC|M2007J3S[ICYGP]|M2007J22[CG]|M2103K19[CGYI]|M2101K(?:[79]AG|7AI|7B[GI]|6[GIRP]|7BNY|9[GCR])|M2010J19S[CGYIL]|M1908C3JGG|M2102(?:K1AC|K1[CG]|J2SC)|HM NOTE 1(?:LTE|W)|MI[_ ]PLAY|XIG01|Qin 1s\+|Qin 2(?: Pro)?|MI_(NOTE_Pro|5X|4i|(?:A2|8)_Lite)|A001XM|lancelot|XIG02|21061119(?:[AD]G|AL)|2107119DC|M2101K(?:7BL|9AI)|M2012K10C|M2104K10AC|M1901F71|21051182[CG]|21081111RG|2109119D[GI]|21091116(?:AI|[AU]?C|i)|220111(?:7T[GIY]|19TI)|21121(?:119S[CG]|23AC)|2201117SG|2107113S[GR]|M2105K81A?C|2109119BC|220112[23]C|2201117SY|joyeuse|galahad|begonia| MDG1' + regex: 'Xiaomi(?!/(?:Miui|Mint[ ])Browser)|MiTV-\w|Mi9 Pro 5G|(?:MI [a-z0-9]+|Mi-4c|MI-One[ _]?[a-z0-9]+|MIX(?: 2S?)?|pomelo)(?:[);/ ]|$)|HM (?:[^/;]+) (?:Build|MIUI)|(?:2014501|2014011|201481[12378]|201302[23]|2013061) Build|Redmi|POCOPHONE|(?:SHARK )?(KLE|KSR|MBU)-[AH]0|SK[RW]-[AH]0|PRS-[AH]0|POCO F1|DLT-[AH]0|MIBOX[234]([_ ]PRO)?|MiTV4[ACSX]?|AWM-A0|MI CC 9 Meitu Edition|MiBOX1S|M2006J10C|M2006C3(?:L[IGC]|LVG|MN?G|MT)|M2007J1(?:7[CGI]|SC)|M2002J9[SEG]|HM2014819|WT88047|210611(?:8C|19BI)|M2004J(?:7[AB]|19)C|M2012K11(?:[CGI]|A[CI])|M2011K2[CG]|M2011J18C|M2006C3[ML]II|M2003J15SC|M2007J3S[ICYGP]|M2007J22[CG]|M2103K19[CGYI]|M2101K(?:[79]AG|7AI|7B[GI]|6[GIRP]|7BNY|9[GCR])|M2010J19S[CGYIL]|M1908C3JGG|M2102(?:K1AC|K1[CG]|J2SC)|HM NOTE 1(?:LTE|W)|MI[_ ]PLAY|XIG01|Qin 1s\+|Qin 2(?: Pro)?|MI_(NOTE_Pro|5X|4i|(?:A2|8)_Lite)|A001XM|lancelot|XIG02|21061119(?:[AD]G|AL)|2107119DC|M2101K(?:7BL|9AI)|M2012K10C|M2104K10AC|M1901F71|21051182[CG]|21081111RG|2109119D[GI]|21091116(?:AI|[AU]?C|i)|220111(?:7T[GIY]|19TI)|21121(?:119S[CG]|23AC)|220111[67]SG|2107113S[GR]|M2105K81A?C|2109119BC|220112[23]C|2201117SY|joyeuse|galahad|begonia|beryllium| MDG1' device: 'smartphone' models: # specific smartphone models @@ -21114,7 +21148,7 @@ Xiaomi: model: 'Mi Mix' - regex: 'Mi Note 3(?:[);/ ]|$)' model: 'Mi Note 3' - - regex: 'POCOPHONE[ _]F1|POCO F1' + - regex: 'POCOPHONE[ _]F1|POCO F1|beryllium' model: 'Pocophone F1' - regex: 'Redmi 5 Plus' model: 'Redmi 5 Plus' @@ -21321,6 +21355,9 @@ Xiaomi: - regex: '21091116C(?:[);/ ]|$)' model: 'Redmi Note 11 Pro' device: 'phablet' + - regex: '2201116S[GR](?:[);/ ]|$)' + model: 'Redmi Note 11 Pro 5G' + device: 'phablet' - regex: '21091116UC(?:[);/ ]|$)' model: 'Redmi Note 11 Pro+' device: 'phablet' @@ -23327,7 +23364,7 @@ Unihertz: # Chuwi Chuwi: - regex: '(?:CW-(Hi8-super|Hi12|V99i?|V17HD3G|VX8-3G|V88-QUAD|V9-DUAL|V88S|Vi[78]|[HV]i10 (?:pro|plus))|Hi10 (?:Pro|plus)|HiPad[ -](?:X|Pro|Air)|HiBox-hero|HiBook(?: pro)?|Hi[89] ?(?:Air|Pro)|HiPadPlus|Hi8SE|Vi8 plus|Vi10(?: ?Pro)?)(?:[);/ ]|$)' + regex: '(?:CW-(Hi8-super|Hi12|V99i?|V17HD3G|VX8-3G|V88-QUAD|V9-DUAL|V88S|Vi[78]|[HV]i10 (?:pro|plus))|Hi10 (?:Pro|plus)|HiPad[ -](?:X|Pro|Air)|HiBox-hero|HiBook(?: pro)?|Hi[89] ?(?:Air|Pro)|HiPad ?Plus|Hi8SE|Vi8 plus|Vi10(?: ?Pro)?|Surpad)(?:[);/ ]|$)' device: 'tablet' models: - regex: '(CW-Hi8-super)(?:[);/ ]|$)' @@ -23352,7 +23389,7 @@ Chuwi: model: 'HiPad Pro' - regex: 'HiPad-Air(?:[);/ ]|$)' model: 'HiPad Air' - - regex: 'HiPadPlus(?:[);/ ]|$)' + - regex: 'HiPad ?Plus(?:[);/ ]|$)' model: 'HiPad Plus' - regex: 'Hi([89]) ?Air(?:[);/ ]|$)' model: 'Hi$1 Air' @@ -23366,6 +23403,8 @@ Chuwi: model: 'Vi10 Pro' - regex: 'Vi10(?:[);/ ]|$)' model: 'Vi10' + - regex: 'Surpad(?:[);/ ]|$)' + model: 'SurPad' - regex: 'HiBox-hero(?:[);/ ]|$)' @@ -24345,10 +24384,10 @@ Maxtron: # Philco (philco.com.br) Philco: - regex: 'PHILCO |(PCS0[12]|PH350B|PTB[78]R|PTB7PAP_PTB7PAB_PTB7PAR|Hit Max)(?:[);/ ]|$)' + regex: 'PHILCO |(PCS0[12]|PH350B|PTB[78]R|PTB7PAP_PTB7PAB_PTB7PAR|Hit Max|Hit P10)(?:[);/ ]|$)' device: 'smartphone' models: - - regex: '(PCS0[12]|PH350B|Hit Max)(?:[);/ ]|$)' + - regex: '(PCS0[12]|PH350B|Hit Max|Hit P10)(?:[);/ ]|$)' model: '$1' - regex: '(PTB[78]R)(?:[);/ ]|$)' device: 'tablet' @@ -25173,7 +25212,7 @@ Sunstech: # Hotwav (www.hotwav.com) Hotwav: - regex: '(?:Venus[_ ](?:X[12]|X1[0245679]|R8 PLUS|R[236-9]|R1[028]|X16-1)|Cosmos[ _](?:V8_lite|V19_Plus|V2[0-3]|U2|V1[359]|V[45689]|V8-2)|Pearl K2|Magic Q8|Magic 5 Plus|Magic (?:[89]|1[13])|Hot[_ ]6|Symbol (?:M1|X|Max|R60))(?:[);/ ]|$)' + regex: '(?:Venus[_ ](?:X[12]|X1[0245679]|R8 PLUS|R[236-9]|R1[028]|X16-1)|Cosmos[ _](?:V8_lite|V19_Plus|V2[0-3]|U2|V1[359]|V[45689]|V8-2)|Pearl K2|Magic Q8|Magic 5 Plus|Magic (?:[89]|1[13])|Hot[_ ]6|Symbol (?:M1|X|Max|R60)|Cyber 9 Pro)(?:[);/ ]|$)' device: 'smartphone' models: - regex: 'Cosmos[ _]V8_lite(?:[);/ ]|$)' @@ -25186,6 +25225,8 @@ Hotwav: model: 'Venus X16' - regex: 'Venus[_ ](X[12]|X1[0245679]|R[236-9]|R1[028])(?:[);/ ]|$)' model: 'Venus $1' + - regex: 'Cyber 9 Pro' + model: 'Cyber 9 Pro' - regex: 'Symbol M1' model: 'Symbol M1' - regex: 'Symbol R60' @@ -26054,10 +26095,10 @@ Winmax: # Zebra (zebra.com) Zebra: - regex: ' (TC5[16]|TC2[056]|TC75|TC7[05]x|TC5[27]|TC700H|ET51)(?:[);/ ]|$)' + regex: ' (TC5[16]|TC2[0156]|TC75|TC7[05]x|TC5[27]|TC700H|ET51)(?:[);/ ]|$)' device: 'smartphone' models: - - regex: '(TC5[16]|TC2[056]|TC75|TC7[05]x|TC5[27]|TC700H)(?:[);/ ]|$)' + - regex: '(TC5[16]|TC2[0156]|TC75|TC7[05]x|TC5[27]|TC700H)(?:[);/ ]|$)' model: '$1' - regex: '(ET51)(?:[);/ ]|$)' device: 'tablet' @@ -26643,9 +26684,13 @@ MIVO: # Jesy (en.jesy.com) Jesy: - regex: 'Jesy_(J7)' + regex: 'Jesy_(J7)|J9S_PRO(?:[);/ ]|$)' device: 'smartphone' - model: '$1' + models: + - regex: 'J9S_PRO' + model: 'J9s Pro' + - regex: 'Jesy_(J7)' + model: '$1' # Teknosa or Tekno S.A Teknosa: @@ -28923,7 +28968,7 @@ VOGA: - regex: 'VOGA 55909' model: 'V' -# Huagan +# Haipai Haipai: regex: 'Haipai' device: 'smartphone' @@ -28973,9 +29018,36 @@ Benesse: device: 'tablet' model: '$1' +# Airtel +Airtel: + regex: 'Airtel[ _]' + model: 'smartphone' + models: + - regex: 'Airpad 7-s' + device: 'tablet' + model: 'AirPad 7S' + +# MAXX +MAXX: + regex: '(T1270G)(?:[);/ ]|$)' + device: 'tablet' + model: '$1' + +# TENPLUS +TENPLUS: + regex: 'TENPLUS[_ ]([^/;)]+)(?: Build|[);])' + device: 'tablet' + model: '$1' + +# HAOVM +HAOVM: + regex: '(T2000)(?: Build|[);])' + device: 'tablet' + model: '$1' + # Devices with undectable brand, but detectable model Unknown: - regex: 'Plasma Mobile|WebTV/(\d+\.\d+)|(?:M10 Ultra|FO-R15|TVBOX|Smart[ _]?TV|SmartATV|M8S\+ 4K|PCBox|rk3368-box|H10 PLAY|Smart AIO TV|TVBOX_L|L-BOX|TVBOX-5G|mips.+(?:Opera TV|wireless|wired)|smartbox|TV BOX|I12Pro Max)(?:[);/ ]|$)' + regex: 'Plasma Mobile|WebTV/(\d+\.\d+)|(?:M10 Ultra|FO-R15|TVBOX|Smart[ _]?TV|SmartATV|M8S\+ 4K|PCBox|rk3368-box|H10 PLAY|Smart AIO TV|TVBOX_L|L-BOX|TVBOX-5G|mips.+(?:Opera TV|wireless|wired)|smartbox|TV BOX|I12Pro Max|(?:audi_)?ks1280x480)(?:[);/ ]|$)' device: 'smartphone' models: - regex: 'WebTV/(\d+\.\d+)' @@ -29001,3 +29073,6 @@ Unknown: model: '' - regex: 'I12Pro Max(?:[);/ ]|$)' model: 'i12 Pro Max' + - regex: '(?:audi_)?ks1280x480' + device: 'car browser' + model: 'Audi KS'