From d3d0184bc4f0d503b8607a7163105e60fc574ee5 Mon Sep 17 00:00:00 2001 From: Alexsandr Tutik Date: Thu, 6 Feb 2025 11:30:01 +0300 Subject: [PATCH 1/2] feat(device) detect brand OSCAL: Tiger 13 feat(device) detect brand Huawei: Honor Magic 7 Pro (PTP-AN70) feat(device) detect brand Cricket: Magic 2 5G (U655AC) feat(device) detect brand Ulefone: Armor Pad Pro feat(device) detect brand Symphony: SymTab 20 feat(device) detect brand Lenovo: Tab Plus (TB351FU), Legion Y700 (TB321FU) feat(device) detect brand Asano: 40LF7010T 40.0" --- Tests/fixtures/smartphone-40.yml | 54 ++++++++++++++++++++++++ Tests/fixtures/tablet-12.yml | 72 ++++++++++++++++++++++++++++++++ Tests/fixtures/tv-4.yml | 18 ++++++++ regexes/device/mobiles.yml | 21 ++++++---- 4 files changed, 157 insertions(+), 8 deletions(-) diff --git a/Tests/fixtures/smartphone-40.yml b/Tests/fixtures/smartphone-40.yml index 77b7e2a582..e077667828 100644 --- a/Tests/fixtures/smartphone-40.yml +++ b/Tests/fixtures/smartphone-40.yml @@ -8930,3 +8930,57 @@ model: Pixel 9 os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 14; TIGER 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.74 YaSearchBrowser/24.106.1 BroPP/1.0 YaSearchApp/24.106.1 webOmni SA/3 Mobile Safari/537.36 + os: + name: Android + version: "14" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.106.1 + engine: Blink + engine_version: 128.0.6613.74 + device: + type: smartphone + brand: OSCAL + model: Tiger 13 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 15; PTP-AN70) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.33 YaBrowser/24.10.6.33.00 SA/3 Mobile Safari/537.36 + os: + name: Android + version: "15" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.10.6.33.00 + engine: Blink + engine_version: 128.0.6613.33 + device: + type: smartphone + brand: Huawei + model: Honor Magic 7 Pro + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 14; U655AC) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.50 YaBrowser/24.10.5.50.00 SA/3 Mobile Safari/537.36 + os: + name: Android + version: "14" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.10.5.50.00 + engine: Blink + engine_version: 128.0.6613.50 + device: + type: smartphone + brand: Cricket + model: Magic 2 5G + os_family: Android + browser_family: Unknown diff --git a/Tests/fixtures/tablet-12.yml b/Tests/fixtures/tablet-12.yml index d0fecc21fd..416ca85224 100644 --- a/Tests/fixtures/tablet-12.yml +++ b/Tests/fixtures/tablet-12.yml @@ -1529,3 +1529,75 @@ model: A133P os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 13; Armor Pad Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36 + os: + name: Android + version: "13" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 131.0.0.0 + engine: Blink + engine_version: 131.0.0.0 + device: + type: tablet + brand: Ulefone + model: Armor Pad Pro + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 4.4.2; Symtab20) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Safari/537.36 + os: + name: Android + version: 4.4.2 + platform: "" + client: + type: browser + name: Chrome + version: 71.0.3578.99 + engine: Blink + engine_version: 71.0.3578.99 + device: + type: tablet + brand: Symphony + model: SymTab 20 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 14; TB351FU) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.33 YaBrowser/24.10.6.33.01 Safari/537.36 + os: + name: Android + version: "14" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.10.6.33.01 + engine: Blink + engine_version: 128.0.6613.33 + device: + type: tablet + brand: Lenovo + model: Tab Plus + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 14; TB321FU) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.279 YaBrowser/24.12.0.279.01 Safari/537.36 + os: + name: Android + version: "14" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.12.0.279.01 + engine: Blink + engine_version: 130.0.6723.279 + device: + type: tablet + brand: Lenovo + model: Legion Y700 + os_family: Android + browser_family: Unknown diff --git a/Tests/fixtures/tv-4.yml b/Tests/fixtures/tv-4.yml index a12c14325e..f35f25a202 100644 --- a/Tests/fixtures/tv-4.yml +++ b/Tests/fixtures/tv-4.yml @@ -7338,3 +7338,21 @@ model: Smart TV (2017) os_family: GNU/Linux browser_family: Opera +- + user_agent: Mozilla/5.0 (Linux; Android 9; 40LF7010T Build/PPR2.180905.006.A1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.158 Safari/537.36 + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: Chrome Webview + version: 66.0.3359.158 + engine: Blink + engine_version: 66.0.3359.158 + device: + type: tv + brand: Asano + model: 40LF7010T 40.0" + os_family: Android + browser_family: Chrome diff --git a/regexes/device/mobiles.yml b/regexes/device/mobiles.yml index 2086575154..54fb0df123 100644 --- a/regexes/device/mobiles.yml +++ b/regexes/device/mobiles.yml @@ -6736,7 +6736,7 @@ Cosmote: # Cricket Cricket: - regex: 'Cricket-([a-z0-9]+)|CKT_|(?:U(?:102|304|325|380|6080|668|680|705|1030)AC|V350C|EC1002|EC21100[1-4]|SL100EA|SL101AE|WTCKT01|SL112C|SN304AE)(?:[);/ ]|$)' + regex: 'Cricket-([a-z0-9]+)|CKT_|(?:U(?:102|304|325|380|6080|655|668|680|705|1030)AC|V350C|EC1002|EC21100[1-4]|SL100EA|SL101AE|WTCKT01|SL112C|SN304AE)(?:[);/ ]|$)' device: 'smartphone' models: - regex: '(?:CKT_)?U102AC' @@ -6749,6 +6749,8 @@ Cricket: model: 'Debut Smart' - regex: 'U6080AC' model: 'Magic 5G' + - regex: 'U655AC' + model: 'Magic 2 5G' - regex: 'U380AC' model: 'Debut S2' - regex: 'U680AC' @@ -10887,7 +10889,7 @@ TD Tech: # Huawei Huawei: - regex: '(HW-)?(?:Huawei(?!Browser)|nova (?:Y\d|[678])|Maimang \d|MediaPad T1|Ultym5|Ideos|Honor[ _]?|(?:(?:AGS|AGS2|ALE|ALP|AMN|ANA|ANE|ARE|ARS|ASK|ATH|ATU|AUM|BAC|BAH[234]?|BG2|BGO|B[ZK]K|BKL|BL[ALN]|BND|BTV|CA[GMNZ]|CH[CMW]|CHE[12]?|CLT|CMR|COL|COR|CPN|CRO|CRR|CUN|DIG|DLI|DRA|DUA|DUB|DUK|EDI|EL[EN]|EML|EVA|EVR|FDR|FIG|FLA|FRD|FRL|GEM|GRA|HDN|HLK|HMA|Hol|HRY|HWI|H[36]0|INE|JAT|JEF|JDN|JDN2|JKM|JMM|JSN|KII|KIW|KNT|KOB|KSA|LDN|LEO|LIO|LLD|LND|LON|LRA|LUA|LY[AO]|MAR|MHA|MRD|MYA|NCE|NEN|NEM|NEO|NXT|PAR(?!-[AH]0)|PCT|PIC|PLE|PLK|POT|PPA|PRA|RIO|RNE|RVL|SCC|SCL|SCM|SEA|SHT|SLA|SNE|SPN|STF|STK|TAG|TIT|TNY|TRT|VCE|VEN|VIE|VKY|VNS|VOG|VRD|VTR|WAS|YAL|G(?:527|620S|621|630|735)|Y(?:221|330|550|6[23]5))-(?:[A-Z]{0,2}[0-9]{1,4}[A-Z]{0,3}?)|H1711|U(?:8230|8500|8661|8665|8667|8800|8818|8860|9200|9508))(?:[);/ ]|$))|hi6210sft|PE-(UL00|TL[12]0|TL00M)|T1-(A21?[Lw]|A2[23]L|701u|823L)|G7-(?:L01|TL00)|HW-01K|JNY-(LX[12]|[AT]L10|L[02]1)|OXF-AN[01]0|TAS-(A[LN]00|L[02]9|TL00)|WLZ-(AL10|AN00)|YOK-AN[10]0|NIC-LX1A|MRX-(AN19|AL[01]9|W[0-3]9)|CDY-(?:[AT]N00|AN[29][05]|NX9[AB]|TN[29]0)|GLK-(?:[AT]L00|LX1U|LX[23])|JER-(?:[AT]N20|[AT]N10)|ELS-(?:[AT]N[10]0|NX9|N[23]9|N04)|AKA-(AL10|L29)|MON-(W|AL)19|BMH-(?:TN10|AN[12]0)|AQM-([AT]L[01]0|LX1)|MOA-([AT]L[02]0|LX9N)|NTS-AL00|ART-(?:[AT]L00[xm]?|L29N?|L28)|MED-(?:[AT]L00|LX[29]N?|AL20)|EBG-(?:AN[01]0|TN00|N19)|ANA-(?:[AT]N00|NX9)|BZ[AK]-W00|BZT-(W09|AL[01]0)|HDL-(AL09|W09)|HWV3[123]|HW-02L|TEL-[AT]N(?:00a?|10)|KKG-AN[07]0|MXW-[AT]N00|JKM-(?:AL00[ab]|L03)|TAH-(?:N29|AN00)m?|C8817D|T1-821W|d-01[JKH]|d-02[HK]|KRJ-(?:W09|AN00)|HWT31|Y320-U10|Y541-U02|VAT-L19|70[14]HW|60[58]HW|NOH-(?:NX9|AN0[01]|AN[58]0|AL[01]0)|TNNH?-AN00|LIO-(?:[TA]L00|[LN]29|AN00)|KOB2K-L09|KOB2-(?:AL00|[LW]09|L03)|AGS3-(?:[WL]09|AL0[09]|W00[DE]|W9)|DNN-LX9|NEY-NX9|LON-AL00|HLK-L41|503HW|AGR-(?:[LW]09|AL09)|PPA-LX[12]|ANG-(?:AN00|LX[12])|NOP-AN00|ALA-AN70|DVC-[AT]N[02]0|302HW|Nexus 6P|DBY-W09|WKG-(?:LX9|[AT]N00)|JSC-(?:AN00|AL50)|OCE-A[NL][015]0|NZA-AL00|BRQ-A[LN]00|BZC-(?:AL|W)00|NEN-L(?:X1|22)|KOZ-(?:AL[04]0|AL00CM)|NTH-(?:AN00|NX9)|MRR-W[23]9|WGR-(?:W[10]9|AN19)|TET-AN[10]0|SCMR-(?:W09|AL09)|OXP-AN00|HJC-(?:AN90|LX9)|CDL-AN50|CND-AN00|NTN-(?:LX[13]|AN20|L22)|RNA-[AT]N00|CHL-(?:A[LN]00|AL60)|ELZ-AN[012]0|NAM-(?:LX9|AL00)|JLH-AN00|JAD-(?:AL[0568]0|LX9)|AGS6-[WL]09|AGS5-(?:L09|W0[09])|AGS3K-(?:W20|[WL]0[09])|AGRK-[WL]09|MT2L03|LSA-AN00|KJR-W09|TET-A[NL][05]0|TYH601M|RTE-AL00|BAL-(?:AL[08]0|AL60|AN20|L49)|BZI-(?:AL00|W00)|BZT3-(?:AL00|W09)|BZD-(?:W00|AL00)|MLD-AL[01]0|AGM3-(?:W09|AL09)HN|ABR-(?:AL[0689]0|LX9)|GIA-AN[08]0|LEO-DLXXE?|BZA-L00|MGI-AN00|CMA-(?:LX[123]|AN[04]0)|NEW-AN90|KRJ2-(?:W09|AN00)|BRT-(?:W09|AN09)|ANY-(?:[LN]X1|LX[23]|AN00)|JLN-(?:LX[13]|AL00)|LGE-(?:NX[19]|AN[012]0|N49B)|TNA-AN00|TFY-(?:LX[123]|AN[04]0)|DIO-AN00|BZW-AL[01]0|MOGOLIA|CM990|MGA-(?:AL[04]0|LX[39])|60[56]HW|Peppa-(?:L2[23]B|L0[23]B)|KANT-\d{3}[BCS]?|Kobe3-L09|FNE-(?:NX9|AN00)|HPB-AN00|Mate ?(?:[34]0 RS|Xs|30)|Y530|SDY-AN00|EC6108V[89]|CTR-(?:LX[123]|AL[02]|L81)|VNE-(?:LX[123]|N41|AN[04]0)|HMW-W09|GLA-(?:LX[13]|AL00)|HEY2?-[NW]09|GOT-(?:AL[01]9|W[02]9)|PAL-(?:AL00|LX9)|PAN-L29|NNH-AN00|P Smart S|NCO-(?:LX[13]|AL00)|DCO-(?:AL00|LX9)|CET-(?:AL[06]0|LX9)|ADT-AN00|RMO-(?:AN00|NX[13])|RKY-(?:AN[01]0|LX[123])|M300-L09|EVE-(?:AL00|LX[39]N?)|BNE-(?:LX[13]|AL00)|dtab01|BZT4-W19|ROD-W09|ANP-AN00|WGRR-W09|HN3-U01|Holly-U19|BLM-00|ANN-AN00|VNA-(?:LX[23]|L29)|CRT-(?:NX[13]|LX[123]|AN00)|AGM-W09HN|PGT-(?:AN[012]0|N[01]9)|GLL-AL01|MNA-(?:LX9|AL00)|LNA-(?:AL00|LX9)|ALT-(?:L29|AL[01]0|AN00|LX[12]|NX[13])|MAO-(?:LX9N?|AL00)|Enjoy (?:20 SE|20 5G|Z 5G|20 Plus|20 Pro|[12]0e)|ANB-AN00|STG-(?:AL00|LX[12])|LTK-LX3|GOA-(?:LX9|AL80)|nova (?:6 5G|6SE|Lite3Plus|5T Pro)| Angela-L|DBR-(?:W[01]9|W10)|WOD-LX[123]|REP-AN00|WDY-(?:LX[123]|AN00)|FOA-(?:LX9|AL00)|ALI-(?:AN00|NX[13])|DBY2-(?:W0[09]|L09)|REA-(?:NX9|AN00)|AMZ-L29|AGT-AN00|VER-(?:AN[01]0|N49)|ELN-[WL]09|BTK-(?:AL09|W09)|FRI-(?:NX9|AN[01]0)|LLY-(?:LX[123]|AN00|NX1)|MAA-AN[01]0|BVL-(?:N[45]9|AN(?:16|[02]0))|MAG-AN00|RBN-NX[13]|PCE-(?:W29|W[34]0)|ALN-AL[018]0|FIN-AL60|ADA-AL[01]0U?|BON-AL00|BRA-AL00|CLK-(?:LX[123]|AN00|NX[123])|FGD-AL00|GDI-W09|GAR-AN[06]0|CHA-AL80|MLA-L1[12]|LEM-AL00|ADY-(?:AL[01]0|LX9)|VCA-AN00|JuliaQN-(?:L[02]1B|L23A)|HBP-(?:AL00|LX9)|ARC-AL00|BLK-AL00|HBN-(?:AL[018]0|LX9)|JDY-(?:LX[123]|AN00)|ELI-(?:AN00|NX9)|GFY-(?:AL00|LX2P)|PE-CL00|DBY2-L09CK|ELP-(?:AN00|NX9)|LRA-(?:AN00|TL00)|GBD-NX9|FCP-(?:AN10|N49)|CAM-L03|TGR-W09|Yale-(?:L71A|L61D)|Wukong-L29A|RTG-NX9|Bach-W09|ROD2-W09|FLC-AN00|NDL-[WL]09|Marie-L21BX|LYN-AN00|Y6(?: (?:Pro )?2019| ?Prime)|GRL-AL10|PTP-AN[016]0|IVY-LX2|BRP-(?:NX1|AN[08]0)|BRC-AN00' + regex: '(HW-)?(?:Huawei(?!Browser)|nova (?:Y\d|[678])|Maimang \d|MediaPad T1|Ultym5|Ideos|Honor[ _]?|(?:(?:AGS|AGS2|ALE|ALP|AMN|ANA|ANE|ARE|ARS|ASK|ATH|ATU|AUM|BAC|BAH[234]?|BG2|BGO|B[ZK]K|BKL|BL[ALN]|BND|BTV|CA[GMNZ]|CH[CMW]|CHE[12]?|CLT|CMR|COL|COR|CPN|CRO|CRR|CUN|DIG|DLI|DRA|DUA|DUB|DUK|EDI|EL[EN]|EML|EVA|EVR|FDR|FIG|FLA|FRD|FRL|GEM|GRA|HDN|HLK|HMA|Hol|HRY|HWI|H[36]0|INE|JAT|JEF|JDN|JDN2|JKM|JMM|JSN|KII|KIW|KNT|KOB|KSA|LDN|LEO|LIO|LLD|LND|LON|LRA|LUA|LY[AO]|MAR|MHA|MRD|MYA|NCE|NEN|NEM|NEO|NXT|PAR(?!-[AH]0)|PCT|PIC|PLE|PLK|POT|PPA|PRA|RIO|RNE|RVL|SCC|SCL|SCM|SEA|SHT|SLA|SNE|SPN|STF|STK|TAG|TIT|TNY|TRT|VCE|VEN|VIE|VKY|VNS|VOG|VRD|VTR|WAS|YAL|G(?:527|620S|621|630|735)|Y(?:221|330|550|6[23]5))-(?:[A-Z]{0,2}[0-9]{1,4}[A-Z]{0,3}?)|H1711|U(?:8230|8500|8661|8665|8667|8800|8818|8860|9200|9508))(?:[);/ ]|$))|hi6210sft|PE-(UL00|TL[12]0|TL00M)|T1-(A21?[Lw]|A2[23]L|701u|823L)|G7-(?:L01|TL00)|HW-01K|JNY-(LX[12]|[AT]L10|L[02]1)|OXF-AN[01]0|TAS-(A[LN]00|L[02]9|TL00)|WLZ-(AL10|AN00)|YOK-AN[10]0|NIC-LX1A|MRX-(AN19|AL[01]9|W[0-3]9)|CDY-(?:[AT]N00|AN[29][05]|NX9[AB]|TN[29]0)|GLK-(?:[AT]L00|LX1U|LX[23])|JER-(?:[AT]N20|[AT]N10)|ELS-(?:[AT]N[10]0|NX9|N[23]9|N04)|AKA-(AL10|L29)|MON-(W|AL)19|BMH-(?:TN10|AN[12]0)|AQM-([AT]L[01]0|LX1)|MOA-([AT]L[02]0|LX9N)|NTS-AL00|ART-(?:[AT]L00[xm]?|L29N?|L28)|MED-(?:[AT]L00|LX[29]N?|AL20)|EBG-(?:AN[01]0|TN00|N19)|ANA-(?:[AT]N00|NX9)|BZ[AK]-W00|BZT-(W09|AL[01]0)|HDL-(AL09|W09)|HWV3[123]|HW-02L|TEL-[AT]N(?:00a?|10)|KKG-AN[07]0|MXW-[AT]N00|JKM-(?:AL00[ab]|L03)|TAH-(?:N29|AN00)m?|C8817D|T1-821W|d-01[JKH]|d-02[HK]|KRJ-(?:W09|AN00)|HWT31|Y320-U10|Y541-U02|VAT-L19|70[14]HW|60[58]HW|NOH-(?:NX9|AN0[01]|AN[58]0|AL[01]0)|TNNH?-AN00|LIO-(?:[TA]L00|[LN]29|AN00)|KOB2K-L09|KOB2-(?:AL00|[LW]09|L03)|AGS3-(?:[WL]09|AL0[09]|W00[DE]|W9)|DNN-LX9|NEY-NX9|LON-AL00|HLK-L41|503HW|AGR-(?:[LW]09|AL09)|PPA-LX[12]|ANG-(?:AN00|LX[12])|NOP-AN00|ALA-AN70|DVC-[AT]N[02]0|302HW|Nexus 6P|DBY-W09|WKG-(?:LX9|[AT]N00)|JSC-(?:AN00|AL50)|OCE-A[NL][015]0|NZA-AL00|BRQ-A[LN]00|BZC-(?:AL|W)00|NEN-L(?:X1|22)|KOZ-(?:AL[04]0|AL00CM)|NTH-(?:AN00|NX9)|MRR-W[23]9|WGR-(?:W[10]9|AN19)|TET-AN[10]0|SCMR-(?:W09|AL09)|OXP-AN00|HJC-(?:AN90|LX9)|CDL-AN50|CND-AN00|NTN-(?:LX[13]|AN20|L22)|RNA-[AT]N00|CHL-(?:A[LN]00|AL60)|ELZ-AN[012]0|NAM-(?:LX9|AL00)|JLH-AN00|JAD-(?:AL[0568]0|LX9)|AGS6-[WL]09|AGS5-(?:L09|W0[09])|AGS3K-(?:W20|[WL]0[09])|AGRK-[WL]09|MT2L03|LSA-AN00|KJR-W09|TET-A[NL][05]0|TYH601M|RTE-AL00|BAL-(?:AL[08]0|AL60|AN20|L49)|BZI-(?:AL00|W00)|BZT3-(?:AL00|W09)|BZD-(?:W00|AL00)|MLD-AL[01]0|AGM3-(?:W09|AL09)HN|ABR-(?:AL[0689]0|LX9)|GIA-AN[08]0|LEO-DLXXE?|BZA-L00|MGI-AN00|CMA-(?:LX[123]|AN[04]0)|NEW-AN90|KRJ2-(?:W09|AN00)|BRT-(?:W09|AN09)|ANY-(?:[LN]X1|LX[23]|AN00)|JLN-(?:LX[13]|AL00)|LGE-(?:NX[19]|AN[012]0|N49B)|TNA-AN00|TFY-(?:LX[123]|AN[04]0)|DIO-AN00|BZW-AL[01]0|MOGOLIA|CM990|MGA-(?:AL[04]0|LX[39])|60[56]HW|Peppa-(?:L2[23]B|L0[23]B)|KANT-\d{3}[BCS]?|Kobe3-L09|FNE-(?:NX9|AN00)|HPB-AN00|Mate ?(?:[34]0 RS|Xs|30)|Y530|SDY-AN00|EC6108V[89]|CTR-(?:LX[123]|AL[02]|L81)|VNE-(?:LX[123]|N41|AN[04]0)|HMW-W09|GLA-(?:LX[13]|AL00)|HEY2?-[NW]09|GOT-(?:AL[01]9|W[02]9)|PAL-(?:AL00|LX9)|PAN-L29|NNH-AN00|P Smart S|NCO-(?:LX[13]|AL00)|DCO-(?:AL00|LX9)|CET-(?:AL[06]0|LX9)|ADT-AN00|RMO-(?:AN00|NX[13])|RKY-(?:AN[01]0|LX[123])|M300-L09|EVE-(?:AL00|LX[39]N?)|BNE-(?:LX[13]|AL00)|dtab01|BZT4-W19|ROD-W09|ANP-AN00|WGRR-W09|HN3-U01|Holly-U19|BLM-00|ANN-AN00|VNA-(?:LX[23]|L29)|CRT-(?:NX[13]|LX[123]|AN00)|AGM-W09HN|PGT-(?:AN[012]0|N[01]9)|GLL-AL01|MNA-(?:LX9|AL00)|LNA-(?:AL00|LX9)|ALT-(?:L29|AL[01]0|AN00|LX[12]|NX[13])|MAO-(?:LX9N?|AL00)|Enjoy (?:20 SE|20 5G|Z 5G|20 Plus|20 Pro|[12]0e)|ANB-AN00|STG-(?:AL00|LX[12])|LTK-LX3|GOA-(?:LX9|AL80)|nova (?:6 5G|6SE|Lite3Plus|5T Pro)| Angela-L|DBR-(?:W[01]9|W10)|WOD-LX[123]|REP-AN00|WDY-(?:LX[123]|AN00)|FOA-(?:LX9|AL00)|ALI-(?:AN00|NX[13])|DBY2-(?:W0[09]|L09)|REA-(?:NX9|AN00)|AMZ-L29|AGT-AN00|VER-(?:AN[01]0|N49)|ELN-[WL]09|BTK-(?:AL09|W09)|FRI-(?:NX9|AN[01]0)|LLY-(?:LX[123]|AN00|NX1)|MAA-AN[01]0|BVL-(?:N[45]9|AN(?:16|[02]0))|MAG-AN00|RBN-NX[13]|PCE-(?:W29|W[34]0)|ALN-AL[018]0|FIN-AL60|ADA-AL[01]0U?|BON-AL00|BRA-AL00|CLK-(?:LX[123]|AN00|NX[123])|FGD-AL00|GDI-W09|GAR-AN[06]0|CHA-AL80|MLA-L1[12]|LEM-AL00|ADY-(?:AL[01]0|LX9)|VCA-AN00|JuliaQN-(?:L[02]1B|L23A)|HBP-(?:AL00|LX9)|ARC-AL00|BLK-AL00|HBN-(?:AL[018]0|LX9)|JDY-(?:LX[123]|AN00)|ELI-(?:AN00|NX9)|GFY-(?:AL00|LX2P)|PE-CL00|DBY2-L09CK|ELP-(?:AN00|NX9)|LRA-(?:AN00|TL00)|GBD-NX9|FCP-(?:AN10|N49)|CAM-L03|TGR-W09|Yale-(?:L71A|L61D)|Wukong-L29A|RTG-NX9|Bach-W09|ROD2-W09|FLC-AN00|NDL-[WL]09|Marie-L21BX|LYN-AN00|Y6(?: (?:Pro )?2019| ?Prime)|GRL-AL10|PTP-AN[0167]0|IVY-LX2|BRP-(?:NX1|AN[08]0)|BRC-AN00' device: 'smartphone' models: - regex: 'ADY-(?:AL[01]0|LX9)' @@ -11276,7 +11278,7 @@ Huawei: model: 'Honor Magic 6' - regex: 'PTP-AN[06]0' model: 'Honor Magic 7' - - regex: 'PTP-AN10' + - regex: 'PTP-AN[17]0' model: 'Honor Magic 7 Pro' - regex: 'RVL-AL09' model: 'Honor Note 10' @@ -15321,7 +15323,7 @@ Aligator: # lenovo (lenovo.com) Lenovo: - regex: '(?:LNV-)?Lenovo|IdeaTab|IdeaPad|Thinkpad|Yoga Tablet|Tab2A[0-9]-[0-9]{2}[a-z]?|ZUK[ -_]|TB-X306|(?:TB2-X30L|TB3-710I|TB128FU|YT3-X50[MFL]|K50a40|TB-(?:Q706Z|X103F|8504F|X304F|X704V|X704A)|A5500-H|A2107A-H|A3500-HV|A2109A|S6000|Z2 Plus|Vibe[ _](?:P1|S6i Plus|S[23567]i|C|[ZX]2|K5(?: Plus)?|V7)|P2A42|L38011|L18011|[5-8]01LV|[67]02LV|Z2131|K350t|K31-t3|Tab A1020|TAB 2 A8-50LC|S90-A|A101LV|P70-A|VR-1541F|d-42A|lineage_A6020|EveryPad2|A2010l36|F0CU0028RK|TB310XU|TB301[FX]U|TB132FU|TB32(?:8[FX]U|0FC)|TB138FC|PB-6505Y|TB-X505[FLX]|TB-8704V|TB3[05]0[FX]U|TB-X606[XFM]|L38043|TB3-X70L|TB-X605[LF]C?|A7600-HV?|YT-X703F|TB330XU|TB371FC|TB3[17]0FU|TB331FC|A397i|TB330FU|NL5H00X|L79031|XT2091-[78]|L71061|L70081|L78031|20JJS0CU1M|A6020l3[67]|A6020a46|TB360ZU|TB375FC|L58091|L39051|L19041|L19111|L780[157]1)(?:[);/ ]|$)' + regex: '(?:LNV-)?Lenovo|IdeaTab|IdeaPad|Thinkpad|Yoga Tablet|Tab2A[0-9]-[0-9]{2}[a-z]?|ZUK[ -_]|TB-X306|(?:TB2-X30L|TB3-710I|TB128FU|YT3-X50[MFL]|K50a40|TB-(?:Q706Z|X103F|8504F|X304F|X704V|X704A)|A5500-H|A2107A-H|A3500-HV|A2109A|S6000|Z2 Plus|Vibe[ _](?:P1|S6i Plus|S[23567]i|C|[ZX]2|K5(?: Plus)?|V7)|P2A42|L38011|L18011|[5-8]01LV|[67]02LV|Z2131|K350t|K31-t3|Tab A1020|TAB 2 A8-50LC|S90-A|A101LV|P70-A|VR-1541F|d-42A|lineage_A6020|EveryPad2|A2010l36|F0CU0028RK|TB310XU|TB301[FX]U|TB132FU|TB32(?:8[FX]U|0FC)|TB138FC|PB-6505Y|TB-X505[FLX]|TB-8704V|TB351FU|TB3[05]0[FX]U|TB-X606[XFM]|L38043|TB3-X70L|TB-X605[LF]C?|A7600-HV?|YT-X703F|TB330XU|TB371FC|TB3[17]0FU|TB331FC|TB321FU|A397i|TB330FU|NL5H00X|L79031|XT2091-[78]|L71061|L70081|L78031|20JJS0CU1M|A6020l3[67]|A6020a46|TB360ZU|TB375FC|L58091|L39051|L19041|L19111|L780[157]1)(?:[);/ ]|$)' device: 'smartphone' models: - regex: 'Lenovo ?G780' @@ -15441,6 +15443,9 @@ Lenovo: - regex: 'TB370FU' device: 'tablet' model: 'Tab P12' + - regex: 'TB351FU' + device: 'tablet' + model: 'Tab Plus' - regex: 'TB-J606[FN]' device: 'tablet' model: 'Tab K11' @@ -15634,7 +15639,7 @@ Lenovo: - regex: 'TB-8705[FX]' model: 'Tab M8 FHD' device: 'tablet' - - regex: '(?:TB-9707F|TB320FC)(?:[);/ ]|$)' + - regex: '(?:TB-9707F|TB320FC|TB321FU)(?:[);/ ]|$)' device: 'tablet' model: 'Legion Y700' - regex: 'Lenovo (TB[0-9]?\-[a-z0-9-]+) Build' @@ -33412,7 +33417,7 @@ Winds: # Asano Asano: - regex: '(?:32LH7010T|32LH8030S|43L[FU]8120T|43LU8030S|43LU8130S|32LH8[10]10T|32LH7030S|32LF7130S|28LH701[10]T|43LU8010T|24LH7011T|24L[HF]7020T|24LH8010T|28LH81[12]0T|40LF7030S|5[05]LU8120T|42LF7110T|32LF7120T|32LF8120T|50LU8110T|50LU8130S|40LF8120T|50LF7010T|43LF7010T|32LH8011T|32LF7111T|42LF8130S|32LH5000T)(?:[);/ ]|$)' + regex: '(?:32LH7010T|32LH8030S|43L[FU]8120T|43LU8030S|43LU8130S|32LH8[10]10T|32LH7030S|32LF7130S|28LH701[10]T|43LU8010T|24LH7011T|24L[HF]7020T|24LH8010T|28LH81[12]0T|40LF7030S|40LF7010T|5[05]LU8120T|42LF7110T|32LF7120T|32LF8120T|50LU8110T|50LU8130S|40LF8120T|50LF7010T|43LF7010T|32LH8011T|32LF7111T|42LF8130S|32LH5000T)(?:[);/ ]|$)' device: 'tv' models: - regex: '(\d{2})(L[FHU]\d+[ST])(?:[);/ ]|$)' @@ -40847,7 +40852,7 @@ Revomovil: # OSCAL (www.oscal.hk) OSCAL: - regex: '(?:Spider 8|S60Pro|MODERN 8|PILOT 2|FLAT 1C|Tiger 1[02]|android 13(?:[\d.]*);(?: [\w-]+;)? (?:Pad 1[158]|Pad 8)|android 12(?:[\d.]*);(?: [\w-]+;)? (?:C[678]0|C30 Pro|Pad (?:[167]0|13))|Pad [78]0 WiFi)(?:[);/ ]|$)' + regex: '(?:Spider 8|S60Pro|MODERN 8|PILOT 2|FLAT 1C|Tiger 1[023]|android 13(?:[\d.]*);(?: [\w-]+;)? (?:Pad 1[158]|Pad 8)|android 12(?:[\d.]*);(?: [\w-]+;)? (?:C[678]0|C30 Pro|Pad (?:[167]0|13))|Pad [78]0 WiFi)(?:[);/ ]|$)' device: 'smartphone' models: - regex: 'MODERN 8' @@ -40860,7 +40865,7 @@ OSCAL: model: 'Flat 1C' - regex: 'S60Pro' model: 'S60 Pro' - - regex: 'Tiger (1[02])' + - regex: 'Tiger (1[023])' model: 'Tiger $1' - regex: '(C[678]0)(?:[);/ ]|$)' model: '$1' From 268aa3290681180a037071d3e5453840cf94959c Mon Sep 17 00:00:00 2001 From: Alexsandr Tutik Date: Thu, 6 Feb 2025 12:16:09 +0300 Subject: [PATCH 2/2] feat(device) detect new brand HAVIT: PJ209 Pro feat(device) detect brand Samsung: Galaxy Xcover 7 (SM-G556B) feat(device) detect brand OPPO: A60 (CPH3669) feat(device) detect brand Vivo: iQOO Neo 10 (V2425A) feat(device) detect brand POCO: X7 Pro (2412DPC0AG) feat(device) detect brand IconBIT: Movie 2100 (XLR3089) feat(device) detect brand Tecno Mobile: MegaPad 11 (TECNO T1101) feat(device) detect brand Huawei: MatePad Pro 12.2" (2024) WiFi (MRO-W09) --- Parser/Device/AbstractDeviceParser.php | 1 + Tests/fixtures/peripheral.yml | 18 +++++++ Tests/fixtures/smartphone-40.yml | 72 ++++++++++++++++++++++++++ Tests/fixtures/tablet-12.yml | 54 +++++++++++++++++++ Tests/fixtures/tv-4.yml | 18 +++++++ regexes/device/mobiles.yml | 41 ++++++++++++--- 6 files changed, 196 insertions(+), 8 deletions(-) diff --git a/Parser/Device/AbstractDeviceParser.php b/Parser/Device/AbstractDeviceParser.php index 6a76c7c18a..59dbae03a7 100644 --- a/Parser/Device/AbstractDeviceParser.php +++ b/Parser/Device/AbstractDeviceParser.php @@ -768,6 +768,7 @@ abstract class AbstractDeviceParser extends AbstractParser '8H' => 'Hamlet', 'HAM' => 'Hammer', 'HAT' => 'Hathway', + 'HAV' => 'HAVIT', 'HEM' => 'Hemilton', 'H6' => 'Helio', 'HQ' => 'HERO', diff --git a/Tests/fixtures/peripheral.yml b/Tests/fixtures/peripheral.yml index 4bacae6d4c..ee3a74e25e 100644 --- a/Tests/fixtures/peripheral.yml +++ b/Tests/fixtures/peripheral.yml @@ -1702,3 +1702,21 @@ model: Horizon Pro os_family: Android browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 9; HAVIT PJ209 PRO) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36 + os: + name: Android + version: "9" + platform: "" + client: + type: browser + name: Chrome + version: 87.0.4280.101 + engine: Blink + engine_version: 87.0.4280.101 + device: + type: peripheral + brand: HAVIT + model: PJ209 Pro + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/smartphone-40.yml b/Tests/fixtures/smartphone-40.yml index e077667828..42bf05eea1 100644 --- a/Tests/fixtures/smartphone-40.yml +++ b/Tests/fixtures/smartphone-40.yml @@ -8984,3 +8984,75 @@ model: Magic 2 5G os_family: Android browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 14; SM-G556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36 + os: + name: Android + version: "14" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 131.0.0.0 + engine: Blink + engine_version: 131.0.0.0 + device: + type: smartphone + brand: Samsung + model: Galaxy Xcover 7 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 14; CPH3669 Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/132.0.6834.163 Mobile Safari/537.36 + os: + name: Android + version: "14" + platform: "" + client: + type: browser + name: Chrome Webview + version: 132.0.6834.163 + engine: Blink + engine_version: 132.0.6834.163 + device: + type: smartphone + brand: OPPO + model: A60 + os_family: Android + browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 15; V2425A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.797 YaApp_Android/24.123.1 YaSearchBrowser/24.123.1 BroPP/1.0 SA/3 Mobile Safari/537.36 + os: + name: Android + version: "15" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.123.1 + engine: Blink + engine_version: 130.0.6723.797 + device: + type: smartphone + brand: Vivo + model: iQOO Neo 10 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 15; 2412DPC0AG) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Mobile Safari/537.36 + os: + name: Android + version: "15" + platform: "" + client: + type: browser + name: Chrome Mobile + version: 132.0.0.0 + engine: Blink + engine_version: 132.0.0.0 + device: + type: smartphone + brand: POCO + model: X7 Pro + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/tablet-12.yml b/Tests/fixtures/tablet-12.yml index 416ca85224..4d869d2a93 100644 --- a/Tests/fixtures/tablet-12.yml +++ b/Tests/fixtures/tablet-12.yml @@ -1601,3 +1601,57 @@ model: Legion Y700 os_family: Android browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; arm_64; Android 12; MRO-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.53 YaBrowser/24.10.5.53.01 Safari/537.36 + os: + name: Android + version: "12" + platform: ARM + client: + type: browser + name: Yandex Browser + version: 24.10.5.53.01 + engine: Blink + engine_version: 128.0.6613.53 + device: + type: tablet + brand: Huawei + model: MatePad Pro 12.2" (2024) WiFi + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 14; TECNO T1101 Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/131.0.6778.201 Safari/537.36 YandexSearch/7.54/apad YandexSearchBrowser/7.54 + os: + name: Android + version: "14" + platform: "" + client: + type: browser + name: Yandex Browser + version: "7.54" + engine: Blink + engine_version: 131.0.6778.201 + device: + type: tablet + brand: Tecno Mobile + model: MegaPad 11 + os_family: Android + browser_family: Unknown +- + user_agent: Mozilla/5.0 (Linux; Android 7.1.1; SM-P555M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Mobile Safari/537.36 + os: + name: Android + version: 7.1.1 + platform: "" + client: + type: browser + name: Chrome Mobile + version: 90.0.4430.72 + engine: Blink + engine_version: 90.0.4430.72 + device: + type: tablet + brand: Samsung + model: Galaxy Tab A 9.7" LTE + os_family: Android + browser_family: Chrome diff --git a/Tests/fixtures/tv-4.yml b/Tests/fixtures/tv-4.yml index f35f25a202..6aaa205304 100644 --- a/Tests/fixtures/tv-4.yml +++ b/Tests/fixtures/tv-4.yml @@ -7356,3 +7356,21 @@ model: 40LF7010T 40.0" os_family: Android browser_family: Chrome +- + user_agent: Mozilla/5.0 (Linux; Android 12; iconBIT XLR3089) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 + os: + name: Android + version: "12" + platform: "" + client: + type: browser + name: Chrome + version: 131.0.0.0 + engine: Blink + engine_version: 131.0.0.0 + device: + type: tv + brand: IconBIT + model: Movie 2100 + os_family: Android + browser_family: Chrome diff --git a/regexes/device/mobiles.yml b/regexes/device/mobiles.yml index 54fb0df123..ef8eb51a4f 100644 --- a/regexes/device/mobiles.yml +++ b/regexes/device/mobiles.yml @@ -4522,7 +4522,7 @@ VGO TEL: # Vivo (vivo.com.cn, vivo.com) Vivo: - regex: '((?:VIV-|BBG-)?(?