cpuinfo icon indicating copy to clipboard operation
cpuinfo copied to clipboard

Fairly large number of Unknown SoCs detected

Open bc-lee opened this issue 3 months ago • 6 comments

After Unknown SoC case matters like (https://github.com/pytorch/cpuinfo/issues/322), I decided to check real-world data to see which Android devices report their SoC name as unknown (via the cpuinfo_package.name field). It turns out that quite a few devices report an unknown SoC. We should investigate these cases to correctly identify their SoCs.

Here are several examples I found:

brand(ro.product.brand)	model(ro.product.model)	is_exist_on_play_store	device_code(from play store)	marketing_name catalog_soc(from play store)
samsung	SM-A057F,SM-A057G,SM-A057M	TRUE	a05s	Galaxy A05s	QTI SM6225
Redmi	25028RN03A,25028RN03I,25028RN03Y	TRUE	serenity	Redmi A5	Spreadtrum UMS9230E
samsung	SM-S928B	TRUE	e3q	Galaxy S24 Ultra	QTI SM8650
Redmi	23124RA7EO	TRUE	sapphiren	Redmi Note 13	QTI SM6225
OPPO	CPH2641	TRUE	OP5B16L1	A3x	Qualcomm SM6115
OPPO	CPH2641	TRUE	OP5B16L1	A3x/A20	Qualcomm SM6115
samsung	SM-S918B,SM-S918N	TRUE	dm3q	Galaxy S23 Ultra	QTI SM8550
Redmi	2312DRA50G,2312DRA50I	TRUE	garnet	Redmi Note 13 Pro 5G	Qualcomm SM7435
OPPO	CPH2631	TRUE	OP5AE7L1	A60	QTI SM6225
samsung	SM-S938B	TRUE	pa3q	Galaxy S25 Ultra	QTI SM8750
samsung	SM-S911B	TRUE	dm1q	Galaxy S23	QTI SM8550
OPPO	CPH2669	TRUE	OP5B16L1	A3	Qualcomm SM6115
OPPO	CPH2669	TRUE	OP5B16L1	A40/A40m	Qualcomm SM6115
samsung	SM-A047F	TRUE	a04s	Galaxy A04s	Samsung Exynos 850
samsung	SM-A217F,SM-A217M	TRUE	a21s	Galaxy A21s	Samsung Exynos 850
OPPO	CPH2669	TRUE	OP5B16L1	A40/A3/A40m	Qualcomm SM6115
samsung	SM-A127F	TRUE	a12s	Galaxy A12	Samsung Exynos 850
vivo	V2419	TRUE	V2419	Y19s pro	Spreadtrum T612
vivo	V2419	TRUE	V2419	vivo Y19s	Spreadtrum T612
iQOO	I2218,I2219,I2220,I2401	FALSE

bc-lee avatar Sep 03 '25 05:09 bc-lee

cc @fbarchard @GregoryComer

digantdesai avatar Sep 08 '25 16:09 digantdesai

Yeah, I need to revert the other PR with a more targeted fix for the UNISOCs. It may be a few days, but I'll see if I can get the merged soon.

GregoryComer avatar Sep 08 '25 19:09 GregoryComer

I've checked some Google devices which reports as Unknown:

Pixel 6A Tensor Octa-core (2x2.80 GHz Cortex-X1 & 2x2.25 GHz Cortex-A76 & 4x1.80 GHz Cortex-A55) Mali-G78 MP20

Pixel 9A Tensor G4 - tegu Octa-core (1x3.1 GHz Cortex-X4 & 3x2.6 GHz Cortex-A720 & 4x1.9 GHz Cortex-A520) Mali-G715 MP7

Let me know if I can help with logs/data to add support for those CPU from Google.

3c71 avatar Oct 04 '25 19:10 3c71

There is no Exynos or Tensor support. I think the field we want is soc. eq Samsung S23: [ro.soc.model]: [SM8550]

fbarchard avatar Oct 28 '25 22:10 fbarchard

The pixel 6a reports Tensor in ro.soc.model.

The pixel 9a reports Tensor G4. So that seems a good fallback.

For Exynos, I use that file: /sys/devices/system/chip-id/ap_id

3c71 avatar Oct 29 '25 21:10 3c71

I have a Samsung S23 handy, and can confirm SoC is 'unknown'

SoC name: Unknown Microarchitectures: 1x Cortex-X3 4x Cortex-A715 3x Cortex-A510 Cores: 0: 1 processor (0), ARM Cortex-X3 1: 1 processor (1), ARM Cortex-A715 2: 1 processor (2), ARM Cortex-A715 3: 1 processor (3), ARM Cortex-A715 4: 1 processor (4), ARM Cortex-A715 5: 1 processor (5), ARM Cortex-A510 6: 1 processor (6), ARM Cortex-A510 7: 1 processor (7), ARM Cortex-A510 Clusters: 0: 1 processor (0), 0: 1 core (0), ARM Cortex-X3 1: 4 processors (1-4), 1: 4 cores (1-4), ARM Cortex-A715 2: 3 processors (5-7), 2: 3 cores (5-7), ARM Cortex-A510 Logical processors (System ID): 0 (7) 1 (3) 2 (4) 3 (5) 4 (6) 5 (0) 6 (1) 7 (2)

The property works adb shell getprop ro.product.model SM-S918U1

In general Qualcomm, Exynos and Pixel fail

MediaTek works SoC name: MediaTek MT6993 but the name is different than the property adb shell getprop ro.product.model V2509A These are properties that use the MT6993 name adb shell getprop | grep mt.*6993 -i [ro.board.platform]: [mt6993] [ro.boot.hardware]: [mt6993] [ro.gfx.driver.0]: [com.mediatek.mt6993.gamedriver] [ro.hardware]: [mt6993] [ro.soc.model]: [MT6993] [ro.vendor.mediatek.platform]: [MT6993] [ro.vendor.soc.model]: [MT6993] [ro.vendor.soc.model.external_name]: [MT6993W/CZA] [ro.vendor.soc.model.part_name]: [MT6993W/CZA] [ro.vivo.product.platform]: [MTK6993]

I've noticed ro.soc.model usually matches what we expect, for newer SoC. But is missing on older devices. Pixel 8 Pro (husky) SoC name: Unknown Microarchitectures: 9x Cortex-A510

[ro.product.model]: [Pixel 8 Pro]

adb shell getprop | grep tensor -i [ro.soc.model]: [Tensor G3]

ro.product.model identifies the phone/laptop... it isnt what cpuinfo needs to know ro.soc.model is the soc that goes in that phone. We should add that and use it when available.

e.g. Pixel 2 XL doesnt have an 'soc' field adb shell getprop | grep model [ro.product.model]: [Pixel 2 XL] [ro.product.odm.model]: [Pixel 2 XL] [ro.product.product.model]: [Pixel 2 XL] [ro.product.system.model]: [Pixel 2 XL] [ro.product.system_ext.model]: [Pixel 2 XL] [ro.product.vendor.model]: [Pixel 2 XL]

But /proc/cpuinfo has the 'Hardware' adb shell more /proc/cpuinfo | grep Hardware Hardware : Qualcomm Technologies, Inc MSM8998 If I search for that, it has an old property adb shell getprop | grep 8998 [ro.board.platform]: [msm8998]

I suggest ro.soc.model will fix Qualcomm, Exynos and Tensor.

fbarchard avatar Nov 19 '25 21:11 fbarchard