Fixed handling test mode when secure boot is enabled
This commit is contained in:
parent
13b4cdf09f
commit
d07e6cb17e
@ -113,6 +113,7 @@
|
||||
<Compile Include="Util\BcdHelper.cs" />
|
||||
<Compile Include="Util\CodeIntegrityHelper.cs" />
|
||||
<Compile Include="Util\CodeIntegrityPolicyHelper.cs" />
|
||||
<Compile Include="Util\InverseBooleanConverter.cs" />
|
||||
<Compile Include="Util\OsUpgradeDetection.cs" />
|
||||
<Compile Include="Util\OSVersionInfo.cs" />
|
||||
<Compile Include="Util\UEFIHelper.cs" />
|
||||
|
@ -3,7 +3,7 @@
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:DerpingDrivers"
|
||||
xmlns:util="clr-namespace:DerpingDrivers.Util"
|
||||
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
|
||||
xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks"
|
||||
mc:Ignorable="d"
|
||||
@ -15,6 +15,9 @@
|
||||
BorderThickness="0"
|
||||
GlowBrush="{DynamicResource AccentColorBrush}"
|
||||
DataContext="{Binding RelativeSource={RelativeSource Self}}">
|
||||
<controls:MetroWindow.Resources>
|
||||
<util:InverseBooleanConverter x:Key="InverseBooleanConverter"/>
|
||||
</controls:MetroWindow.Resources>
|
||||
|
||||
<TabControl Margin="15">
|
||||
|
||||
@ -100,7 +103,8 @@
|
||||
Header="Allow Prerelease Signatures"
|
||||
OnLabel="TESTSINGING is on"
|
||||
OffLabel="TESTSINGING is off"
|
||||
IsChecked="{Binding Path=AllowPrereleaseSignatures}" />
|
||||
IsChecked="{Binding Path=AllowPrereleaseSignatures}"
|
||||
IsEnabled="{Binding Path=IsSecureBootEnabled, Converter={StaticResource InverseBooleanConverter}}"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="1"
|
||||
Margin="10,0,0,0"
|
||||
@ -119,7 +123,7 @@
|
||||
OffLabel="Only WHQL-signed drivers allowed"
|
||||
IsEnabled="{Binding Path=IsWindows10}"
|
||||
IsChecked="{Binding Path=WhqlDeveloperTestMode}" />
|
||||
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="1"
|
||||
Margin="10,20,0,0"
|
||||
TextWrapping="Wrap"
|
||||
|
@ -57,7 +57,17 @@ namespace DerpingDrivers
|
||||
/// <summary>
|
||||
/// Gets test-mode status.
|
||||
/// </summary>
|
||||
public string TestSigningStatus => CodeIntegrityHelper.IsTestSignEnabled ? "Enabled" : "Disabled";
|
||||
public string TestSigningStatus => UefiHelper.IsRunningInUefiMode && UefiHelper.IsSecureBootEnabled
|
||||
?
|
||||
"Not available"
|
||||
: CodeIntegrityHelper.IsTestSignEnabled
|
||||
? "Enabled"
|
||||
: "Disabled";
|
||||
|
||||
/// <summary>
|
||||
/// True if SecureBoot enabled, false otherwise.
|
||||
/// </summary>
|
||||
public bool IsSecureBootEnabled => UefiHelper.IsRunningInUefiMode && UefiHelper.IsSecureBootEnabled;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets whether prerelease signatures (a.k.a. TESTSIGNING) are accepted by the kernel.
|
||||
|
29
DerpingDrivers/Util/InverseBooleanConverter.cs
Normal file
29
DerpingDrivers/Util/InverseBooleanConverter.cs
Normal file
@ -0,0 +1,29 @@
|
||||
using System;
|
||||
using System.Globalization;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace DerpingDrivers.Util
|
||||
{
|
||||
[ValueConversion(typeof(bool), typeof(bool))]
|
||||
public class InverseBooleanConverter : IValueConverter
|
||||
{
|
||||
#region IValueConverter Members
|
||||
|
||||
public object Convert(object value, Type targetType, object parameter,
|
||||
CultureInfo culture)
|
||||
{
|
||||
if (targetType != typeof(bool))
|
||||
throw new InvalidOperationException("The target must be a boolean");
|
||||
|
||||
return !(bool) value;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter,
|
||||
CultureInfo culture)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user