仿冒cpuid

2025-07-13 03:18:32      匈牙利世界杯

最近入手了十代U新平台, 兴高采烈想安装黑苹果, 然后直接替换了Mojave的EFI, 满怀期待, 结果卡在End RandomSeed... 以为是内存问题, 然后在BIOS里各种折腾, 未果... 以为是Clover引导问题, 然后从Clover换到OC, 还是一样卡End RandomSeed...折腾了5~6个小时, 内心是崩溃的, 最终, 在github上找到了10500es的OC EFI, 竟然可以引导了, 其中有一段是CPUID仿冒, 是仿冒为Broadwell:

Broadwell-E -> Broadwell:

Kernel -> Emulate:

Cpuid1Data: D4060300 00000000 00000000 00000000

Cpuid1Mask: FFFFFFFF 00000000 00000000 00000000明白了, Catalina 10.15.5原生支持Comet Lake, 但Mojave 10.14.6是不支持的, 需要仿冒CPUID才可以成功引导.

不过内心确有不甘, 为啥要仿冒这么老的U, 这样仿冒的CPUID与真实的型号相差太远, 会不会无法发挥CPU的性能甚至导致BUG?

本着探索的精神, 我决定弄清楚这Cpuid1Data仿冒的究竟是什么东西, 还有最终目标是仿冒i7 8700, 毕竟it 10400就是8700小(换)改(名)而来...

第一步, 我用D4060300搜索到了skylake的Cpuid1Data, 搜索过程中发现D4060300表示的是`sysctl -x machdep.cpu.signature`值的内存little-edian值, OK, 知道了最重要的东西: 仿冒的对象的CPU的signature.

下一步, 我要获取8700的cpu.signature值, 并写到OC配置里, 我到github上一番搜索, 搜索到 i7-8700B / i5-8500 / i7-9750H 的cpu.signature都是 591594(0x000906ea):

machdep.cpu.brand_string: Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz

machdep.cpu.family: 6

machdep.cpu.model: 158

machdep.cpu.extmodel: 9

machdep.cpu.extfamily: 0

machdep.cpu.stepping: 10

machdep.cpu.feature_bits: 9221960262849657855

machdep.cpu.leaf7_feature_bits: 43806655

machdep.cpu.extfeature_bits: 1241984796928

machdep.cpu.signature: 591594

machdep.cpu.brand_string: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz

machdep.cpu.family: 6

machdep.cpu.model: 158

machdep.cpu.extmodel: 9

machdep.cpu.extfamily: 0

machdep.cpu.stepping: 10

machdep.cpu.feature_bits: 9221959987971750911

machdep.cpu.leaf7_feature_bits: 43804591 1073741824

machdep.cpu.leaf7_feature_bits_edx: 2617254912

machdep.cpu.extfeature_bits: 1241984796928

machdep.cpu.signature: 591594最后一步, 将0x000906EA的little-edian表示(EA060900), 写到OC配置文件里, 就完成啦~

-> Coffee Lake:

Kernel -> Emulate:

Cpuid1Data: EA060900 00000000 00000000 00000000

Cpuid1Mask: FFFFFFFF 00000000 00000000 00000000重启, 验证, 完美!

命令行执行: sysctl -x machdep.cpu.signature

machdep.cpu.signature: 0x000906ea

命令行执行: sysctl machdep.cpu

machdep.cpu.max_basic: 22

machdep.cpu.max_ext: 2147483656

machdep.cpu.vendor: GenuineIntel

machdep.cpu.brand_string: Intel(R) Core(TM) i5-10400 CPU @ 2.90GHz

machdep.cpu.family: 6

machdep.cpu.model: 158

machdep.cpu.extmodel: 9

machdep.cpu.extfamily: 0

machdep.cpu.stepping: 10

machdep.cpu.feature_bits: 8645499235668327423

machdep.cpu.leaf7_feature_bits: 43804591 1073741824

machdep.cpu.leaf7_feature_bits_edx: 3154117632

machdep.cpu.extfeature_bits: 1241984796928

machdep.cpu.signature: 591594

machdep.cpu.brand: 0

machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C

machdep.cpu.leaf7_features: RDWRFSGS TSC_THREAD_OFFSET SGX BMI1 AVX2 SMEP BMI2 ERMS INVPCID FPU_CSDS MPX RDSEED ADX SMAP CLFSOPT IPT SGXLC MDCLEAR IBRS STIBP L1DF ACAPMSR SSBD

machdep.cpu.extfeatures: SYSCALL XD 1GBPAGE EM64T LAHF LZCNT PREFETCHW RDTSCP TSCI

machdep.cpu.logical_per_package: 16

machdep.cpu.cores_per_package: 8

machdep.cpu.microcode_version: 204

machdep.cpu.processor_flag: 1

machdep.cpu.mwait.linesize_min: 64

machdep.cpu.mwait.linesize_max: 64

machdep.cpu.mwait.extensions: 3

machdep.cpu.mwait.sub_Cstates: 286531872

machdep.cpu.thermal.sensor: 1

machdep.cpu.thermal.dynamic_acceleration: 1

machdep.cpu.thermal.invariant_APIC_timer: 1

machdep.cpu.thermal.thresholds: 2

machdep.cpu.thermal.ACNT_MCNT: 1

machdep.cpu.thermal.core_power_limits: 1

machdep.cpu.thermal.fine_grain_clock_mod: 1

machdep.cpu.thermal.package_thermal_intr: 1

machdep.cpu.thermal.hardware_feedback: 0

machdep.cpu.thermal.energy_policy: 1

machdep.cpu.xsave.extended_state: 31 832 1088 0

machdep.cpu.xsave.extended_state1: 15 832 256 0

machdep.cpu.arch_perf.version: 4

machdep.cpu.arch_perf.number: 4

machdep.cpu.arch_perf.width: 48

machdep.cpu.arch_perf.events_number: 7

machdep.cpu.arch_perf.events: 0

machdep.cpu.arch_perf.fixed_number: 3

machdep.cpu.arch_perf.fixed_width: 48

machdep.cpu.cache.linesize: 64

machdep.cpu.cache.L2_associativity: 4

machdep.cpu.cache.size: 256

machdep.cpu.tlb.inst.large: 8

machdep.cpu.tlb.data.small: 64

machdep.cpu.tlb.data.small_level1: 64

machdep.cpu.address_bits.physical: 39

machdep.cpu.address_bits.virtual: 48

machdep.cpu.core_count: 6

machdep.cpu.thread_count: 12

machdep.cpu.tsc_ccc.numerator: 242

machdep.cpu.tsc_ccc.denominator: 2(图片来自互联网, 侵删)

刘知几:《史通·外篇惑经第四》白话译文
记忆大师