From 17c0c3df2ffcd2f47bb451c74a0a127d56a19dce Mon Sep 17 00:00:00 2001 From: PMheart <17109513+PMheart@users.noreply.github.com> Date: Thu, 7 Jan 2021 17:41:10 +0800 Subject: [PATCH] ocvalidate: AudioSupport = YES should require non-empty AudioDevice (and valid device path) --- Utilities/ocvalidate/README.md | 2 ++ Utilities/ocvalidate/ValidateUEFI.c | 15 +++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Utilities/ocvalidate/README.md b/Utilities/ocvalidate/README.md index fb8cd04f..52ab7d37 100644 --- a/Utilities/ocvalidate/README.md +++ b/Utilities/ocvalidate/README.md @@ -84,6 +84,8 @@ Utility to validate whether a `config.plist` matches requirements and convention ### UEFI #### APFS - When `EnableJumpstart` is enabled, `ScanPolicy` in `Misc->Security` should have `OC_SCAN_ALLOW_FS_APFS` (bit 8) set, together with `OC_SCAN_FILE_SYSTEM_LOCK` (bit 0) set. Or `ScanPolicy` should be `0` (failsafe value). +#### Audio +- When `AudioSupport` is enabled, AudioDevice cannot be empty and must be a valid path. #### Quirks - When `RequestBootVarRouting` is enabled, `OpenRuntime.efi` should be loaded in `UEFI->Drivers`. #### Drivers diff --git a/Utilities/ocvalidate/ValidateUEFI.c b/Utilities/ocvalidate/ValidateUEFI.c index f1720c68..288e807b 100644 --- a/Utilities/ocvalidate/ValidateUEFI.c +++ b/Utilities/ocvalidate/ValidateUEFI.c @@ -150,15 +150,22 @@ CheckUEFIAudio ( { UINT32 ErrorCount; OC_UEFI_CONFIG *UserUefi; + BOOLEAN IsAudioSupportEnabled; CONST CHAR8 *AsciiAudioDevicePath; ErrorCount = 0; UserUefi = &Config->Uefi; - AsciiAudioDevicePath = OC_BLOB_GET (&UserUefi->Audio.AudioDevice); - if (AsciiAudioDevicePath[0] != '\0' && !AsciiDevicePathIsLegal (AsciiAudioDevicePath)) { - DEBUG ((DEBUG_WARN, "UEFI->Audio->AudioDevice is borked! Please check the information above!\n")); - ++ErrorCount; + IsAudioSupportEnabled = UserUefi->Audio.AudioSupport; + AsciiAudioDevicePath = OC_BLOB_GET (&UserUefi->Audio.AudioDevice); + if (IsAudioSupportEnabled) { + if (AsciiAudioDevicePath[0] == '\0') { + DEBUG ((DEBUG_WARN, "UEFI->Audio->AudioDevicePath cannot be empty when AudioSupport is enabled!\n")); + ++ErrorCount; + } else if (!AsciiDevicePathIsLegal (AsciiAudioDevicePath)) { + DEBUG ((DEBUG_WARN, "UEFI->Audio->AudioDevice is borked! Please check the information above!\n")); + ++ErrorCount; + } } return ErrorCount;