From be16c04a33c8c0833b08e43a3c784e4701f2dc66 Mon Sep 17 00:00:00 2001 From: Faisal Salman Date: Mon, 12 May 2025 14:00:58 +0700 Subject: [PATCH] Improve device detection: Nothing, Sony --- src/main/ua-parser.js | 4 +-- test/data/ua/device/nothing.json | 36 +++++++++++++++++++++++++ test/data/ua/device/sony.json | 45 ++++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 2 deletions(-) diff --git a/src/main/ua-parser.js b/src/main/ua-parser.js index a5ab086..09f2806 100755 --- a/src/main/ua-parser.js +++ b/src/main/ua-parser.js @@ -634,7 +634,7 @@ ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [ // Sony - /droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i + /droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [ /sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i @@ -715,7 +715,7 @@ ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [ // Nothing - /droid.+; (a(?:015|06[35]|142p?))/i + /droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [ // Archos diff --git a/test/data/ua/device/nothing.json b/test/data/ua/device/nothing.json index 56dc460..12b418d 100644 --- a/test/data/ua/device/nothing.json +++ b/test/data/ua/device/nothing.json @@ -17,6 +17,15 @@ "type": "mobile" } }, + { + "desc": "Nothing 2", + "ua": "Mozilla/5.0 (Linux; Android 15; AIN065 Build/AQ3A.240929.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/132.0.6834.90 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/496.0.0.45.65;IABMV/1;] FBNV/500", + "expect": { + "vendor": "Nothing", + "model": "AIN065", + "type": "mobile" + } + }, { "desc": "Nothing 2a", "ua": "Mozilla/5.0 (Linux; Android 14; A142 Build/UP1A.231005.007; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/126.0.6478.71 Mobile Safari/537.36", @@ -25,5 +34,32 @@ "model": "A142", "type": "mobile" } + }, + { + "desc": "Nothing 2a Plus", + "ua": "Mozilla/5.0 (Linux; Android 14; A142P Build/UP1A.231005.007) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.6723.107 Mobile Safari/537.36 OPX/2.6", + "expect": { + "vendor": "Nothing", + "model": "A142P", + "type": "mobile" + } + }, + { + "desc": "Nothing 3a", + "ua": "Mozilla/5.0 (Linux; Android 15; A059 Build/AQ3A.241015.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/127.0.6533.103 Mobile Safari/537.36", + "expect": { + "vendor": "Nothing", + "model": "A059", + "type": "mobile" + } + }, + { + "desc": "Nothing 3a Pro", + "ua": "Mozilla/5.0 (Linux; Android 15; A059P Build/AQ3A.241015.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/136.0.7103.57 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/511.0.0.73.36;IABMV/1;]", + "expect": { + "vendor": "Nothing", + "model": "A059P", + "type": "mobile" + } } ] \ No newline at end of file diff --git a/test/data/ua/device/sony.json b/test/data/ua/device/sony.json index 92151af..d4a3c21 100644 --- a/test/data/ua/device/sony.json +++ b/test/data/ua/device/sony.json @@ -98,6 +98,15 @@ "type": "mobile" } }, + { + "desc": "Sony Xperia 1 VI", + "ua": "Mozilla/5.0 (Linux; Android 14; XQ-EC44) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Mobile Safari/537.36", + "expect": { + "vendor": "Sony", + "model": "XQ-EC44", + "type": "mobile" + } + }, { "desc": "Sony Xperia 10ii", "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AU52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36", @@ -107,6 +116,24 @@ "type": "mobile" } }, + { + "desc": "Sony Xperia 10 III Lite", + "ua": "Mozilla/5.0 (Linux; Android 12; XQ-BT44 Build/62.1.A.1.227; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/101.0.4951.61 Mobile Safari/537.36 Sleipnir/3.6.0", + "expect": { + "vendor": "Sony", + "model": "XQ-BT44", + "type": "mobile" + } + }, + { + "desc": "Sony Xperia 10 VI", + "ua": "Mozilla/5.0 (Linux; Android 14; XQ-ES72 Build/70.0.A.2.233; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/129.0.6668.71 Mobile Safari/537.36 Line/14.16.0/IAB", + "expect": { + "vendor": "Sony", + "model": "XQ-ES72", + "type": "mobile" + } + }, { "desc": "Sony Xperia Pro", "ua": "Mozilla/5.0 (Linux; Android 10; XQ-AQ52) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.185 Mobile Safari/537.36", @@ -116,6 +143,24 @@ "type": "mobile" } }, + { + "desc": "Sony Xperia Pro", + "ua": "Mozilla/5.0 (Linux; Android 12; Sony XQ-AQ52) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/23.0 Chrome/115.0.0.0 Mobile Safari/537.36", + "expect": { + "vendor": "Sony", + "model": "XQ-AQ52", + "type": "mobile" + } + }, + { + "desc": "Sony Xperia Pro I", + "ua": "Mozilla/5.0 (Linux; arm_64; Android 11; XQ-BE72) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.148 YaBrowser/22.7.3.82.00 SA/3 Mobile Safari/537.36", + "expect": { + "vendor": "Sony", + "model": "XQ-BE72", + "type": "mobile" + } + }, { "desc": "Sony SGP521 (Xperia Z2 Tablet)", "ua": "Mozilla/5.0 (Linux; Android 4.4; SGP521 Build/17.1.A.0.432) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.99 Safari/537.36",