From c4ee6069552d48527b07ac86c721e7d42bf4c73e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=80=9A=E6=B4=B2?= Date: Tue, 7 Jan 2025 16:28:34 +0800 Subject: [PATCH] CPU (Android): check for MTK D9X00 SOCs --- src/detection/cpu/cpu_linux.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/detection/cpu/cpu_linux.c b/src/detection/cpu/cpu_linux.c index badc3ae57..48e88a543 100644 --- a/src/detection/cpu/cpu_linux.c +++ b/src/detection/cpu/cpu_linux.c @@ -144,6 +144,36 @@ static void detectQualcomm(FFCPUResult* cpu) ffStrbufSetStatic(&cpu->name, "Qualcomm Snapdragon 4 Gen 1 [SM4375]"); } +static void detectMediaTek(FFCPUResult* cpu) +{ + // https://en.wikipedia.org/wiki/List_of_MediaTek_systems_on_chips + + if (ffStrbufEqualS(&cpu->name, "MT6991")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9400 [MT6991]"); + else if (ffStrbufEqualS(&cpu->name, "MT6991Z")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9400 [MT6991Z]"); + else if (ffStrbufEqualS(&cpu->name, "MT6989Z")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9300+ [MT6989Z]"); + else if (ffStrbufEqualS(&cpu->name, "MT8796Z")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9300+ [MT8796Z]"); + else if (ffStrbufEqualS(&cpu->name, "MT6989")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9300 [MT6989]"); + else if (ffStrbufEqualS(&cpu->name, "MT8796")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9300 [MT8796]"); + else if (ffStrbufEqualS(&cpu->name, "MT6985W")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9200+ [MT6985W]"); + else if (ffStrbufEqualS(&cpu->name, "MT6985")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9200 [MT6985]"); + else if (ffStrbufEqualS(&cpu->name, "MT6983W")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9000+ [MT6983W]"); + else if (ffStrbufEqualS(&cpu->name, "MT8798Z/T")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9000+ [MT8798Z/T]"); + else if (ffStrbufEqualS(&cpu->name, "MT6983Z")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9000 [MT6983Z]"); + else if (ffStrbufEqualS(&cpu->name, "MT8798Z/C")) + ffStrbufSetStatic(&cpu->name, "MediaTek Dimensity 9000 [MT8798Z/C]"); +} + static void detectAndroid(FFCPUResult* cpu) { if (cpu->name.length == 0) @@ -161,6 +191,8 @@ static void detectAndroid(FFCPUResult* cpu) if (ffStrbufEqualS(&cpu->vendor, "QTI") && ffStrbufStartsWithS(&cpu->name, "SM")) detectQualcomm(cpu); + else if (ffStrbufEqualS(&cpu->vendor, "MTK") && ffStrbufStartsWithS(&cpu->name, "MT")) + detectMediaTek(cpu); } #endif