Skip to content

Commit 0543fb2

Browse files
committed
Backport - Improve CPU detection: ARM
(cherry picked from commit 93552e0)
1 parent 98f1c00 commit 0543fb2

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

src/ua-parser.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -377,30 +377,30 @@
377377

378378
cpu : [[
379379

380-
/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i // AMD64 (x64)
380+
/\b((amd|x|x86[-_]?|wow|win)64)\b/i // AMD64 (x64)
381381
], [[ARCHITECTURE, 'amd64']], [
382382

383383
/(ia32(?=;))/i, // IA32 (quicktime)
384384
/\b((i[346]|x)86)(pc)?\b/i // IA32 (x86)
385385
], [[ARCHITECTURE, 'ia32']], [
386386

387-
/\b(aarch64|arm(v?8e?l?|_?64))\b/i // ARM64
387+
/\b(aarch64|arm(v?[89]e?l?|_?64))\b/i // ARM64
388388
], [[ARCHITECTURE, 'arm64']], [
389389

390-
/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i // ARMHF
390+
/\b(arm(v[67])?ht?n?[fl]p?)\b/i // ARMHF
391391
], [[ARCHITECTURE, 'armhf']], [
392392

393393
// PocketPC mistakenly identified as PowerPC
394-
/windows (ce|mobile); ppc;/i
394+
/( (ce|mobile); ppc;|\/[\w\.]+arm\b)/i
395395
], [[ARCHITECTURE, 'arm']], [
396396

397-
/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i // PowerPC
397+
/((ppc|powerpc)(64)?)( mac|;|\))/i // PowerPC
398398
], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [
399399

400-
/(sun4\w)[;\)]/i // SPARC
400+
/ sun4\w[;\)]/i // SPARC
401401
], [[ARCHITECTURE, 'sparc']], [
402402

403-
/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i
403+
/\b(avr32|ia64(?=;)|68k(?=\))|\barm(?=v([1-7]|[5-7]1)l?|;|eabi)|(irix|mips|sparc)(64)?\b|pa-risc)/i
404404
// IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC
405405
], [[ARCHITECTURE, lowerize]]
406406
],

test/cpu-test.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,22 @@
175175
"architecture" : "arm64"
176176
}
177177
},
178+
{
179+
"desc" : "Google Search App",
180+
"ua" : "Mozilla/5.0 (Linux; Android 9; JAT-LX1 Build/HONORJAT-LX1; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.96 Mobile Safari/537.36 GoogleApp/11.11.10.21.arm",
181+
"expect" :
182+
{
183+
"architecture" : "arm"
184+
}
185+
},
186+
{
187+
"desc" : "Google Search App",
188+
"ua" : "Mozilla/5.0 (Linux; Android 6.0; M5s Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.147 Mobile Safari/537.36 GSA/12.40.17.23.arm64",
189+
"expect" :
190+
{
191+
"architecture" : "arm64"
192+
}
193+
},
178194
{
179195
"desc" : "Pocket PC",
180196
"ua" : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",

0 commit comments

Comments
 (0)