9b17bdfa33
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>
26 lines
1.4 KiB
Diff
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);
|