Skip to content

Commit 7e39fed

Browse files
committed
OcBootManagementLib: Revert changes to fat slice secure boot logic from 125d8e8
Note: EFI_SUCCESS does not always mean a signature was found and verified (which never existed and therefore is not expected to happen, for a fat slice), but simply that no further verification of SB status is required and OC image loader should be used. Resolves: acidanthera/bugtracker#2414
1 parent 660b420 commit 7e39fed

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

Changelog.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ OpenCore Changelog
66
- Added support for manual build of i386/x64 10.6+ versions of userspace tools via `FATBIN32=1 make`
77
- Disabled `XcpmExtraMsrs MSR_MISC_PWR_MGMT` patch on macOS 12+ due to non-existence
88
- Fixed `ThirdPartyDrives` quirk on macOS 14.4 and above
9+
- Resolved issue booting recovery for OS X 10.8 and earlier since 0.9.7
910

1011
#### v1.0.0
1112
- Updated builtin firmware versions for SMBIOS and the rest

Library/OcBootManagementLib/ImageLoader.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ InternalEfiLoadImage (
969969
// Load the image ourselves in secure boot mode.
970970
//
971971
if (SecureBootStatus == EFI_SUCCESS) {
972-
if ((SourceBuffer != NULL) && (OcImageLoaderCaps == NULL)) {
972+
if (SourceBuffer != NULL) {
973973
Status = OcImageLoaderLoad (
974974
FALSE,
975975
ParentImageHandle,
@@ -980,10 +980,16 @@ InternalEfiLoadImage (
980980
);
981981
} else {
982982
//
983-
// We verified the image, but contained garbage, or we are trying to secure boot a Fat slice.
984-
// This should not happen.
983+
// SecureBootStatus can be EFI_SUCCESS without a signature being
984+
// verified, if SecureBootModel is Disabled and the boot file is from
985+
// a DMG. This effectively just means: no more SB checks required, use
986+
// our loader.
987+
// SourceBuffer will be NULL if filtering for supported architecture
988+
// failed.
989+
// All this can't happen in a secure boot chain, and should not happen
990+
// (with valid boot files) in a non-secure boot chain. But if it does,
991+
// just abort.
985992
//
986-
ASSERT (FALSE);
987993
Status = EFI_UNSUPPORTED;
988994
}
989995
} else {

0 commit comments

Comments
 (0)