qemu-spoof: SMBIOS type0 BIOS + type1 system identity Stock QEMU leaves type0 vendor/version/date unset (guest reads an empty/firmware- default "SeaBIOS" BIOS via WMI/dmidecode) and type1 system manufacturer/product fall back to the bare machine values. Force the persona identity through smbios_set_defaults: - real-OEM persona: vendor-formatted BIOS + board-brand system manufacturer/product; - hyperv persona: Microsoft "Virtual Machine". Config (-smbios) still wins; 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..8321f10 100644 --- a/hw/smbios/smbios.c +++ b/hw/smbios/smbios.c @@ -1027,6 +1027,15 @@ void smbios_set_defaults(const char *manufacturer, const char *product, { smbios_have_defaults = true; + /* qemu-spoof: a real OEM (or Hyper-V) BIOS + system identity. Stock leaves type0 + * vendor/version/date unset (guest reads empty/"SeaBIOS") and type1 falls back to + * the bare machine manufacturer/product; force the persona's values. Platform- + * anchored; config (-smbios) still wins; 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, spoof_system_manufacturer(NULL)); + SMBIOS_SET_DEFAULT(smbios_type1.product, spoof_system_product(NULL)); SMBIOS_SET_DEFAULT(smbios_type1.manufacturer, manufacturer); SMBIOS_SET_DEFAULT(smbios_type1.product, product); SMBIOS_SET_DEFAULT(smbios_type1.version, version);