diff --git a/LenovoLegionToolkit.Lib/Structs.cs b/LenovoLegionToolkit.Lib/Structs.cs index d13c225dbd..53d3ad9455 100644 --- a/LenovoLegionToolkit.Lib/Structs.cs +++ b/LenovoLegionToolkit.Lib/Structs.cs @@ -374,6 +374,7 @@ public readonly struct CompatibilityProperties public string Model { get; init; } public string SerialNumber { get; init; } public BiosVersion? BiosVersion { get; init; } + public string? BiosVersionRaw { get; init; } public CompatibilityProperties Properties { get; init; } } diff --git a/LenovoLegionToolkit.Lib/Utils/Compatibility.cs b/LenovoLegionToolkit.Lib/Utils/Compatibility.cs index fb970c2962..8f2c08489e 100644 --- a/LenovoLegionToolkit.Lib/Utils/Compatibility.cs +++ b/LenovoLegionToolkit.Lib/Utils/Compatibility.cs @@ -78,7 +78,7 @@ public static async Task GetMachineInformationAsync() if (!_machineInformation.HasValue) { var (vendor, machineType, model, serialNumber) = await GetModelDataAsync().ConfigureAwait(false); - var biosVersion = await GetBIOSVersionAsync().ConfigureAwait(false); + var (biosVersion, biosVersionRaw) = await GetBIOSVersionAsync().ConfigureAwait(false); var machineInformation = new MachineInformation { @@ -87,6 +87,7 @@ public static async Task GetMachineInformationAsync() Model = model, SerialNumber = serialNumber, BiosVersion = biosVersion, + BiosVersionRaw = biosVersionRaw, Properties = new() { SupportsAlwaysOnAc = GetAlwaysOnAcStatus(), @@ -107,7 +108,7 @@ public static async Task GetMachineInformationAsync() Log.Instance.Trace($" * Vendor: '{machineInformation.Vendor}'"); Log.Instance.Trace($" * Machine Type: '{machineInformation.MachineType}'"); Log.Instance.Trace($" * Model: '{machineInformation.Model}'"); - Log.Instance.Trace($" * BIOS: '{machineInformation.BiosVersion}'"); + Log.Instance.Trace($" * BIOS: '{machineInformation.BiosVersion}' [{machineInformation.BiosVersionRaw}]"); Log.Instance.Trace($" * Properties.SupportsAlwaysOnAc: '{machineInformation.Properties.SupportsAlwaysOnAc.status}, {machineInformation.Properties.SupportsAlwaysOnAc.connectivity}'"); Log.Instance.Trace($" * Properties.SupportsGodModeV1: '{machineInformation.Properties.SupportsGodModeV1}'"); Log.Instance.Trace($" * Properties.SupportsGodModeV2: '{machineInformation.Properties.SupportsGodModeV2}'"); @@ -222,7 +223,7 @@ private static async Task GetSupportsIntelligentSubModeAsync() return result.First(); } - private static async Task GetBIOSVersionAsync() + private static async Task<(BiosVersion?, string?)> GetBIOSVersionAsync() { var result = await WMI.ReadAsync("root\\CIMV2", $"SELECT * FROM Win32_BIOS", @@ -236,9 +237,9 @@ private static async Task GetSupportsIntelligentSubModeAsync() var versionString = versionRegex.Match(biosString).Value; if (!int.TryParse(versionRegex.Match(versionString).Value, out var version)) - return null; + return (null, null); - return new(prefix, version); + return (new(prefix, version), biosString); } private static bool GetHasQuietToPerformanceModeSwitchingBug(BiosVersion? biosVersion) diff --git a/LenovoLegionToolkit.WPF/Windows/Utils/DeviceInformationWindow.xaml.cs b/LenovoLegionToolkit.WPF/Windows/Utils/DeviceInformationWindow.xaml.cs index 28a814453b..03937c170e 100644 --- a/LenovoLegionToolkit.WPF/Windows/Utils/DeviceInformationWindow.xaml.cs +++ b/LenovoLegionToolkit.WPF/Windows/Utils/DeviceInformationWindow.xaml.cs @@ -27,7 +27,7 @@ private async Task RefreshAsync(bool forceRefresh = false) _modelLabel.Content = mi.Model; _mtmLabel.Content = mi.MachineType; _serialNumberLabel.Content = mi.SerialNumber; - _biosLabel.Content = mi.BiosVersion; + _biosLabel.Content = mi.BiosVersionRaw; try {