Catalina Cannot Be Installed On Macintosh Hd



  • Note: DmgLoading, SecureBootModel and ApECID require OpenCore 0.6.1(opens new window) or newer
  • Note 2: macOS Big Sur requires OpenCore 0.6.3+ for proper Apple Secure Boot support

# What is Apple Secure Boot

For now I erased Macintosh HD, deleted Macintosh HD - Data, reinstalled Catalina with Internet, it downloaded and installed, (maybe this?) then the choosing country windows popped up, I holded the power on/off button, turned off the Mac, then turned it on in recovery mode and did all steps described above. For now I erased Macintosh HD, deleted Macintosh HD - Data, reinstalled Catalina with Internet, it downloaded and installed, (maybe this?) then the choosing country windows popped up, I holded the power on/off button, turned off the Mac, then turned it on in recovery mode and did all steps described above. Prerelease Safari 14.0.1 tested with HD 1080p content; Chrome v86.0.4240.75 and Firefox v81.0.1 tested with HD 720p content. Not all features are available on all devices. Performance will vary based on system configuration, application workload, and other factors.

  • Information based off of vit9696's thread(opens new window), Apple's T2 docs(opens new window) and Osy's Secure Boot page(opens new window)
Cannot

To best understand Apple Secure Boot, lets take a look at how the boot process works in Macs vs OpenCore in regards to security:

As we can see, there's several layers of trust incorporated into Apple Secure Boot:

  • OpenCore will verify the boot.efi manifest (e.g. boot.efi.j137ap.im4m) to ensure that boot.efi was signed by Apple and can be used by this Secure Boot model.

    • For non-zero ApECID, OpenCore will additionally verify the ECID value, written in the boot.efi manifest (e.g. boot.efi.j137ap.XXXXXXXX.im4m), to ensure that a compromised hard drive from a different machine with the same Secure Boot model cannot be used in your computer.
  • boot.efi will verify the kernelcache to ensure it has not been tampered with

  • apfs.kext and AppleImage4 ensure your System Volume's snapshot has not been tampered with(Only applicable with Big Sur+)

Not all of these verifications are required to boot, but they're all possible for those who want maximum security. Currently information regarding firmware-based Secure Boot is not covered however all Apple Secure Boot options are detailed below.

Catalina Cannot Be Installed On Macintosh Hd

# DmgLoading

Quite a simple setting however important in regards to Apple Secure Boot. This setting allows you to set load policy with DMGs in OpenCore. By default we recommend using Signed however for best security Disabled may be preferred.

Catalina Cannot Be Installed On Macintosh HdCatalina Cannot Be Installed On Macintosh Hd

Possible options for Misc -> Security -> DmgLoading:

ValueComment
AnyAllows all DMGs to load in OpenCore, however this option will cause a boot failure if Apple Secure Boot is enabled
SignedAllows only Apple-signed DMGs like macOS installers to load
DisabledDisables all external DMG loading, however internal recovery is still allowed with this option

# SecureBootModel

SecureBootModel is used set the Apple Secure Boot hardware model and policy, allowing us to enable Apple's Secure Boot with any SMBIOS even if the original SMBIOS did not support it(ie. no T2 present on pre-2017 SMBIOS). Enabling SecureBootModel is the equivalent of 'Medium Security'(opens new window), for Full Security please see ApECID

Can't Be Installed On Macintosh Hd

Currently the following options for Misc -> Security -> SecureBootModel are supported:

ValueSMBIOSMinimum macOS Version
DisabledNo model, Secure Boot will be disabled.N/A
DefaultCurrently set to j137, iMacPro1,110.13.2 (17C2111)
j137iMacPro1,1 (December 2017)10.13.2 (17C2111)
j680MacBookPro15,1 (July 2018)10.13.6 (17G2112)
j132MacBookPro15,2 (July 2018)10.13.6 (17G2112)
j174Macmini8,1 (October 2018)10.14 (18A2063)
j140kMacBookAir8,1 (October 2018)10.14.1 (18B2084)
j780MacBookPro15,3 (May 2019)10.14.5 (18F132)
j213MacBookPro15,4 (July 2019)10.14.5 (18F2058)
j140aMacBookAir8,2 (July 2019)10.14.5 (18F2058)
j152fMacBookPro16,1 (November 2019)10.15.1 (19B2093)
j160MacPro7,1 (December 2019)10.15.1 (19B88)
j230kMacBookAir9,1 (March 2020)10.15.3 (19D2064)
j214kMacBookPro16,2 (May 2020)10.15.4 (19E2269)
j223MacBookPro16,3 (May 2020)10.15.4 (19E2265)
j215MacBookPro16,4 (June 2020)10.15.5 (19F96)
j185iMac20,1 (August 2020)10.15.6 (19G2005)
j185fiMac20,2 (August 2020)10.15.6 (19G2005)
x86legacyNon-T2 Macs in 11.0(Recommended for VMs)11.0.0

# Special Notes with SecureBootModel

  • Generally Default is more than adequate to use however if you plan to have use this with ApECID for full security, we recommend setting a proper value(ie. closest to your SMBIOS or versions of macOS you plan to boot) since the Default value is likely to be updated in the future.
    • x86legacy is not required for normal Mac models without T2's, any of the above values are supported.
  • The list of cached drivers may be different, resulting in the need to change the list of Added or Forced kernel drivers.
    • ie. IO80211Family cannot be injected in this case, as it is already present in the kernelcache
  • Unsigned and several signed kernel drivers cannot be used
    • This includes Nvidia's Web Drivers in 10.13
  • System volume alterations on operating systems with sealing, like macOS 11, may result in the operating system being unbootable.
    • If you plan to disable macOS's APFS snapshots, please remember to disable SecureBootModel as well
  • Certain boot errors are more likely to be triggered with Secure Boot enabled that were previously not required
    • Commonly seen with certain APTIO IV systems where they may not require IgnoreInvalidFlexRatio and HashServices initially however Secure Boot does.
  • On older CPUs (ie. before Sandy Bridge) enabling Apple Secure Boot might cause slightly slower loading by up to 1 second
  • Operating systems released before Apple Secure Boot landed (ie. macOS 10.12 or earlier) will still boot until UEFI Secure Boot is enabled. This is so,
    • This is due to Apple Secure Boot assuming they are incompatible and will be handled by the firmware just like Microsoft Windows is
  • Virtual Machines will want to use x86legacy for Secure Boot support
    • Note using any other model will require ForceSecureBootScheme enabled
Troubleshooting

Due to an annoying bug on Apple's end, certain systems may be missing the secure boot files themselves on the drive. Because of this, you may get issues such as:

Catalina Cannot Be Installed On Macintosh Hd

To resolve, run the following in macOS:

Now you can enable SecureBootModel and reboot without issue! And since we're not editing the system volume itself we don't need to worry about disabling SIP or breaking macOS snapshots.

# ApECID

ApECID is used as an Apple Enclave Identifier, what this means is it allows us to use personalized Apple Secure Boot identifiers and achieve 'Full Security'(opens new window) as per Apple's secure boot page(when paired with SecureBootModel).

To generate your own ApECID value, you'll want some form of cryptographically secure random number generator that will output a 64-bit integer. Below we provide an example that can be run if Python 3(opens new window) is installed on your machine:

With this unique 64-bit int, you can now enter it under Misc -> ApECID in your config.plist

However before setting ApECID, there's a few things we need to note:

  • Fresh installs with ApECID set to a non-zero value will require a network connection at install time for verification
  • SecureBootModel should have a defined value instead of Default to avoid issues if the value were to change in later OpenCore versions.
  • Pre-existing installs will need to personalize the volume, for this you'll need to first reboot into recovery and run the following command(Replace Macintosh HD with your system's volume name):

And something to note when reinstalling macOS 10.15 or older is that you may receive 'Unable to verify macOS' error message. To work around his issue, you'll want to allocate a dedicated RAM disk of 2 MBs for macOS personalization by entering the following commands in the macOS recovery terminal before starting the installation:





Comments are closed.