Files
qemu-spoof/patches/0024-smbios-bios-type0.patch
T
lirent 9b17bdfa33 spoof: SMBIOS type0 BIOS vendor/version/date
Force a real, platform-anchored OEM BIOS identity into SMBIOS type0 (patch 0024 +
spoof_bios_version/spoof_bios_date getters) so the guest does not read an empty or
firmware-default BIOS vendor via WMI/dmidecode. Vendor coheres with the board;
version uses the vendor real format. Inert without a seed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 22:14:12 +03:00

26 lines
1.4 KiB
Diff

qemu-spoof: SMBIOS type0 BIOS vendor / version / date
Stock QEMU leaves type0 vendor/version/date unset, so the guest reads an empty or
firmware-default ("SeaBIOS") BIOS identity via WMI Win32_BIOS / dmidecode -- a tell.
Force a real, platform-anchored OEM BIOS identity (vendor coheres with the board;
version uses the vendor's real format) through smbios_set_defaults, so an explicit
-smbios type=0 still wins and an un-seeded VM stays stock. (spoof.h include added by
0015-smbios-vm-bit.)
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 7d71418..13ffa93 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -1027,6 +1027,12 @@ void smbios_set_defaults(const char *manufacturer, const char *product,
{
smbios_have_defaults = true;
+ /* qemu-spoof: a real OEM BIOS identity (type0). Stock leaves vendor/version/date
+ * unset, so the guest reads an empty / firmware-default ("SeaBIOS") BIOS — a tell.
+ * Platform-anchored so the BIOS vendor coheres with the board. Inert without a seed. */
+ SMBIOS_SET_DEFAULT(smbios_type0.vendor, spoof_bios_vendor(NULL));
+ SMBIOS_SET_DEFAULT(smbios_type0.version, spoof_bios_version(NULL));
+ SMBIOS_SET_DEFAULT(smbios_type0.date, spoof_bios_date(NULL));
SMBIOS_SET_DEFAULT(smbios_type1.manufacturer, manufacturer);
SMBIOS_SET_DEFAULT(smbios_type1.product, product);
SMBIOS_SET_DEFAULT(smbios_type1.version, version);