Jump to content

[HOW TO] OpenCore 0.6.9 > 0.7.0 differences


miliuco
 Share

21 posts in this topic

Recommended Posts

I encourage all less advanced users to read these instructions in detail so that their hackintosh gets better and better with the improvements of OpenCore. Some users are only interested in config.plist changes to get the new version up and running in no time. This is the wrong approach because this makes errors more difficult to understand or fix.

This time the writing of the differences between versions has been very complicated. OpenCore developers have made a lot of changes and improvements. Suffice it to say that over 60 compilations have been released throughout May. Some of the changes are real news and require study and learning to be fully understood. With all this, Opencore is improving and currently has reached a maturity that has nothing to do with its consideration as a beta program.

OpenCanopy continues with its great evolution and brings many changes and improvements. Some of these enhancements require training and will only be used by a limited number of users and mostly by artists designers of themes and icons. Improvements of the OpenCore graphical interface have been huge in just a few releases.
 

The text is divided into sections:

  • config.plist: display rotation, flavours, SIP and other modifications.
  • csrutil and SIP: added 2 new tools to have an easy handling of SIP from the picker.
  • OpenCanopy: new structure of the Resources/Image folder, themes organized by author, new Flavour system (custom icons in Entries and Tools), etc.

 

message from vit9696

 

Do not miss the @vit9696 message as every time a new version of OpenCore is published, it is the best way to know the main changes and improvements applied.

 

config.plist

 

Display rotation

  • ProtocolOverrides > added AppleEg2Info (Boolean): replaces the Apple EFI Graphics 2 protocol with a builtin version. This protocol allows newer EfiBoot versions (at least 10.15) to expose screen rotation to macOS. It can be False.
  • NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82 > added ForceDisplayRotationInEFI (Number): defines display rotation. It can be 0 for no rotation or any of 90, 180, 270 for matching rotation in degrees. Only enabled if AppleEg2Info=True.

 

Flavour

  • Misc > Boot > PickerAttributes > added a new bitmask 0x0080 — OC_ATTR_USE_FLAVOUR_ICON to enable flavours.
  • Misc > Entries > added Flavour (String) to configure custom icons for Entries. It can be Auto.
  • Misc > Tools > added Flavour (String) to configure custom icons for Tools. It can be Auto.

 

PlatformInfo > Generic

  • AdviseWindows replaced by AdviseFeatures (Boolean) to update FirmwareFeatures (PlatformInfo > PlatformNVRAM and PlatformInfo > SMBIOS) with supported bits. It can be False.
  • A new bit has been added to FirmwareFeatures: FW_FEATURE_SUPPORTS_APFS (0x00080000) Without this bit, it is not possible to install macOS on an APFS disk. On most newer UEFI firmwares these bits are already set.

Note: most of us use only Generic section of PlatformInfo and don't need to install FirmwareFeatures or FirmwareFeaturesMask. But we all need to replace AdviseWindows with AdviseFeatures.

 

Misc > Security

  • Added AllowToggleSip (Boolean): if True, it enables the ToggleSIP tool to enable or disable System Integrity Protection in OpenCore picker. This will toggle Apple NVRAM variable csr-active-config between 0 for SIP Enabled and a default for SIP Disabled (currently 0x26F).

Note: It is strongly recommended not to make a habit of running macOS with SIP disabled.
Note: OpenCore uses 0x26F even though csrutil disable on Big Sur sets 0x7F.
For any other value which you may need to use, it is possible to configure CsrUtil.efi as a TextMode tool entry to configure a different value, e.g. use toggle 0x67 in Arguments to toggle the default SIP Disabled value for macOS Catalina.
It's mandatory to download the new Labels folder included into OcBinaryData from Acidanthera. This folder now contains 2 new labels SIPEnabled and SIPDisabled, without them OpenCanopy falls back to text mode.

 

UEFI > Output

  • GopPassThrough changed type from Boolean to String. This option provides the GOP protocol for firmware that do not implement the protocol. Supported values are: Enabled (provide GOP for all UGA protocols), Apple (provide GOP for AppleFramebufferInfo-enabled protocols) and Disabled (do not provide GOP). Failsafe Value is Disabled. This option requires ProvideConsoleGop to be enabled.

 

Memory testing utility

  • Added Flavour key for MemTest (memtest86) and updated recommended memtest86 config in sample.plist files.

To use MemTest you have to download memtest86 from its website. Mount the file memtest86-usb.img. Now, you should see a folder named EFI containing a folder named BOOT, open it. We are interested in only 2 files: BOOX64.efi (it's the app for 64 bits) and unifont.bin. Save these 2 files in a folder called memtest86 and put this folder inside the OpenCore Tools folder. The Path key of this tool in config.plist must point to memtest86/BOOTX64.efi. This way, running MemTest from its icon in the picker executes the memory check.

 

CPU info for Hyper-V

  • Kernel > Quirks > added ProvideCustomCpuInfo ProvideCurrentCpuInfo (Boolean): Provides current CPU info to the kernel. This quirk currently provides correct TSC and FSB values to the kernel. It's for Hyper-V virtual machines. It can be False.

 

csrutil and SIP

  • Added optional ToggleSIP system boot menu option: ToggleSIP (Enabled) / ToggleSIP (Disabled). It doesn't exist in the Tools folder, i's included into OpenCore. Operation is very simple. The tool is on/off style. By clicking on the icon, the status changes (Enabled > Disabled and vice versa). If csr-active-config has a value assigned (not empty) in config.plist, this is the setting that will be active on every new boot. Otherwise, action performed on Toggle SIP is kept between boots.
  • Added CsrUtil.efi tool, similar to Apple csrutil. Visible in the Tools folder. It is an argument tool: you can pass argument in config.plist (active at every boot) setting it as TextMode tool or run it interactively from OpenShell. Available arguments in text mode: clear, enable value, toggle value, status.

It is not required to have both tools active in the picker. Toggle SIP works fine even if CsrUtil.efi is disabled and not showing in the picker. And vice versa. SIP values which affect macOS updates are documented in configuration docs.

sip-tool.png.eeeb18c9200385f389480840582af1d9.png

 

OpenCanopy

 

  • Added support for display rotation (0, 90, 180, 270).
  • Changed OpenCanopy image directory to support subdirectories.
  • Changed OpenCanopy preferred image set to Acidanthera\GoldenGate (former Modern theme).
  • Implementation of boot entries Flavour system.

 

OpenCanopy image directory structure

 

There is a new structure of the Resources/Image folder, now subdirectories with themes are supported. It's set in Misc > Boot > PickerVariant.
 

An icon set is a directory path relative to \EFI\OC\Resources\Image where the icons are located, in the Creator\Set format. OcBinaryData now have the following icon sets:
Acidanthera\GoldenGate - macOS 11 styled.
Acidanthera\Syrah - macOS 10.10 styled.
Acidanthera\Chardonnay - macOS 10.4 styled.

 

We have 2 ways to assign a value to PickerVariant:

  • Predefined aliases:
    Default: Automatically select Acidanthera\GoldenGate.
    Auto: Automatically select one set of icons based on the Default Background colour: Acidanthera\GoldenGate for Black and Acidanthera\Chardonnay for Light Gray.
  • Icons sets included into its own folder (as mentioned above), writing the value Creator\Set in PickerVariant. For example, you have 3 icon sets made by different vendors:
    EFI\OC\Resources\Image\Acidanthera\GoldenGate\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns...
    EFI\OC\Resources\Image\Blackosx\BsxM1\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns...
    EFI\OC\Resources\Image\Chris1111\Apple-BnW\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns....

      Depending on the value of PickerVariant:

  • PickerVariant=Default > GoldenGate is the chosen theme
  • PickerVariant=Blackosx\BsxM1 > BsxM1 is the chosen theme
  • PickerVariant=Chris1111\Apple-BnW > Apple-BnW is the chosen theme.
     

PickerVariant intentionally supports \ or / as separator, e.g. Blackosx\BsxM1 or Blackosx/BsxM1.

Note: you must remove prefixes from icon names.

 

Flavour: custom icons in Entries and Tools

 

There is a new flavours system for custom icons in Entries and Tools. It's set in Misc > Boot > PickerAttributes.

A new bitmask 0x0080 — OC_ATTR_USE_FLAVOUR_ICON has been added in PickerAttributes. When it's true enables flavours, boot entries content descriptions to have custom icons for Entries and Tools. These flavours can be enabled when PickerAttributes=144 (0x90 hex) which is the sum of:
- 0x0010 - OC_ATTR_USE_POINTER_CONTROL + 0x0080 - OC_ATTR_USE_FLAVOUR_ICON ->10 + 80 = 90 hex = 144 decimal.
When using flavours, it is recommended to disable: 0x0001 - OC_ATTR_USE_VOLUME_ICON.

 

Flavour is a new string key added in Misc > Entries and Misc > Tools. Its value is a succession of text elements separated by : up to a maximum of 5 elements. The first item has the highest priority and the last item has the lowest priority. Flavour value by default is Auto. When Flavour has a custom value in an Entry or Tool, OpenCanopy looks for the icon named with that value in the folder of the active theme. If the icon corresponding to the first element of Flavour does not exist, the second is selected and so on. If none of Flavour icons are found, default icon is assigned according to the type of Entry.

flavour1a.png.054bcade5133f10e44bb8cf3c0a30906.png

flavour1b.png.0d80761c29be93c6d19ee9c7883219f7.png

 

An example of Flavour could be Windows10:Windows in an Entry for a Windows 10 system. If there is a Windows10.icns file, this is the one associated with the Entry but, if it does not exist, Windows.icns is searched and, if it does not exist, default icon for this type of Entry is loaded (HardDrive.icns). With this method it is easier to configure custom icons for Entries, you just have to include the icons in the Icon Set and configure the Flavour key.

 

Example: How to set Flavours for Big Sur, Catalina, Monterey and Windows?

 

  • Set 144 (0x90 hex) value in PickerAttributes.
  • Put the appropriate icons in the theme's folder. In this example, we are going to use Apple11.icns + ExtApple11.icns (Big Sur), Apple12.icns + ExtApple12.icns (Monterey), Apple10_15.icns + ExtApple10_15.icns (Catalina) and Windows10.icns + ExtWindows10.icns. Without Ext icons it doesn't work (at least in the tests I have done).
  • macOS Entries only need the icons, nothing more; macOS will have its flavour set automatically by OC and it will pick the correct icon from the theme set in PickerVariant; this way it is possible to have different icons for different versions of operating systems.
  • Windows Entry needs Flavour=Windows10:Windows.

Flavours.thumb.png.5805d18a248b4a490ea7b5e7088a3251.png

Thanks to @blackosx for these beautiful hardrive icons with images.

Note: There is an intention to have a list of tools which are common enough that some icon pack artists may wish to provide an icon for them, for example ToggleSIP.icns or MemTest.icns. Certain well-known bootloaders have also been assigned a flavour (OpenCore of course, Grub2). This way, Flavour will allow to display a custom icon (if it exists) for these elements.

 

Do I have to use Flavour in all cases? Short answer: no

 

  • Flavour property in config.plist isn't required for macOS because macOS (versions included) is detected by OpenCore and the correct icon is picked up automatically.
  • Flavour property has to be used when OpenCore does not automatically pick up the icon for an element, specifically Entries and Tools.
  • There is no need to create an Entry to apply a flavour; if you need to apply a flavour and there isn't already an entry, then you must use a .contentFlavour file.
  • You don't have to use Flavour in all cases, generally themes and Icon Sets are enough to customize the picker to your liking, reserving Flavour for more specific uses.

 

.contentFlavour file

 

Another way to get flavours is by placing a .contentFlavour file next to the operating system's bootloader. This option is indicated when the system does not have an entry created in config.plist.
For example, for a Windows system the .contentFlavour file must be in the /EFI/Microsoft/Boot/ folder of the Windows EFI partition.
The content of .contentFlavour is the same as Flavour key: Windows10:Windows, assuming there is a Windows10.icns icon into the active theme folder.
It is another way to have flavours but more complex than if you use the Flavour key in an Entry.

 

Algorithm used to determine content flavour

 

  • For a Tool, the value is read from Flavour key.
  • If Flavour=Auto and there is no .contentFlavour file, entry flavour is chosen based on the entry type (e.g. Windows automatically gets Windows flavour).
  • For an automatically discovered entry, it is read from the .contentFlavour file next to the bootloader, if present.
  • If there is a .VolumeIcon.icns (placed at the root of the Preboot volume (macOS) or at the root volume for other filesystems) it takes precedence over .contentFlavour file.
  • For a custom entry:
    it is read from the .contentFlavour file next to the bootloader if Flavour is Auto
    otherwise it is read from Flavour key.

     

Note: To better understand flavours, it is advisable to read Mike Beaton's text explaining these changes and defining flavours lists.

 

Kexts

 

It is recommended to switch to the new versions of the kexts that have been modified and updated:

  • RestrictEvents 1.0.2
  • AppleALC 1.6.1
  • NVMeFix 1.0.8
  • VirtualSMC 1.2.4
  • BrightnessKeys 1.0.2
  • WhateverGreen 1.5.0
  • SidecarFixup 1.0.1
  • BrcmPatchRAM 2.5.9
  • MacHyperVSupport 0.5
  • gfxutil 1.81b.
     

Replace only the ones you use regularly.
Note: AppleALC is accompanied by a new variant called AppleALCU.kext intended for systems that have digital audio (USB) only.

 

Edited by miliuco
  • Like 6
  • Thanks 3
Link to comment
Share on other sites

16 minutes ago, miliuco said:

@antuneddu

this is very complex this time, what a lot of changes !!!

Yes, the changes have been several in order to improve more and more this fantastic bootloader so a dutiful THANKS is a must to the developers for the immense work done, of course thanks to you too for the explanation, as always precise and detailed. I think anyone can get the new features into practice ... by experimenting and consulting your explanation

on the other hand if I have succeeded too. :lol:

  • Like 1
Link to comment
Share on other sites

31 minutes ago, antuneddu said:

Yes, the changes have been several in order to improve more and more this fantastic bootloader so a dutiful THANKS is a must to the developers for the immense work done...

I subscribe to this sentence. Well said.

Link to comment
Share on other sites

17 hours ago, miliuco said:

this is very complex this time, what a lot of changes !!!

…but mostly for the cosmetic aspect of using OpenCanopy, while it seems that there are few changes in the actual bootloader (aside from Hyper-V support, which is possibly a big thing for WIndows users).

Thanks for the write-up, and the strong clue that the time has come to re-read the full PDF user manual.

 

I think I now understand much better the April 2021 update from @vit9696, about users in awe over an icon redraw but oblivious to a major rewrite of the actual code. :lol:

  • Like 1
Link to comment
Share on other sites

57 minutes ago, etorix said:

…but mostly for the cosmetic aspect of using OpenCanopy, while it seems that there are few changes in the actual bootloader (aside from Hyper-V support, which is possibly a big thing for WIndows users).

Thanks for the write-up, and the strong clue that the time has come to re-read the full PDF user manual...

Cosmetic but not only cosmetic although OpenCanopy gets most of the improvements.
Display rotation is more than cosmetic, it is very useful for users who have macOS on a rotated screen and in this way OpenCore is displayed with the same layout.
And OpenCore core has fixed some bugs that came from previous versions (with NVRAM, with the graphical console, with kernel patches, etc.). OpenCore is more robust, generates fewer bugs, extends security, and more.
Either way, this time we have to learn quite a few new things.

What happens is that hackintosh works so well with what we already have that sometimes I am lazy to switch to something new :)

Link to comment
Share on other sites

Guest 5T33Z0

In my experience, the easiest way to see differences in OC builds is to use OCConfig Compare and then just compare both sample.plists:

 

  #######################################################
 #                 OC Config Compare                   #
#######################################################

Checking for values missing from User plist:

 

Sample_069.plist -> Kernel -> Quirks - Missing Key: ProvideCurrentCpuInfo
Sample_069.plist -> Misc -> Entries -> Array - Missing Key: Flavour
Sample_069.plist -> Misc -> Security - Missing Key: AllowToggleSip
Sample_069.plist -> Misc -> Tools -> Array - Missing Key: Flavour
Sample_069.plist -> PlatformInfo -> Generic - Missing Key: AdviseFeatures
Sample_069.plist -> UEFI -> Output -> GopPassThrough - Type Difference: Boolean --> String
Sample_069.plist -> UEFI -> ProtocolOverrides - Missing Key: AppleEg2Info

 

>> Theses Entries have to be copied over from the Sample to the existing Config or modified (Type Differences)

 

Checking for values missing from Sample:

 

Sample_070.plist -> PlatformInfo -> Generic - Missing Key: AdviseWindows
Sample_070.plist -> UEFI -> Output -> GopPassThrough - Type Difference: String --> Boolean

Press [enter] to return...

>> Missing Key from the latest Sample means these entry have been either renamed, removed or relocated and therefor either need to be deleted from the existing config or modified.

 

 

 

Edited by 5T33Z0
Link to comment
Share on other sites

1 hour ago, MorenoAv said:

Hi @miliuco,

Sorry to bother you but this are the results of OC Validate, but I don't know how to correct them, can you help me?...

Remove ACPI > Quirks > SyncTableIds, it's not from 0.7.0.

 

PlatformInfo > Generic > SystemProductName is ok, I don't know why you get this error, ocvalidate says it's all right.

 

EDIT: read this.

 

Edited by miliuco
Link to comment
Share on other sites

1 minute ago, antuneddu said:

@MorenoAv there is something wrong or you are using ocvalidate of version 0.7.1 and check the plist of 0.7.0 or vice versa...

Yes, SyncTableIds is from 0.7.1 beta and I suppose ocvalidate is from 0.7.0.

I don't understand SystemProductName error, this key exists in 0.7.0 and 0.7.1.

  • Thanks 1
Link to comment
Share on other sites

Thanks for your help @miliuco, @antuneddu

Now I'm booted with OC 0.7.1, and it was that OC validate was from 0.7.0, and my config.plist is for 0.7.1...

But now I have a new problem, I have another ssd with windows and at boot it down't show, only macOS Monterey. How do I fix this?

Thanks

 

  • Like 1
Link to comment
Share on other sites

1 minute ago, MorenoAv said:

Thanks for your help @miliuco, @antuneddu

Now I'm booted with OC 0.7.1, and it was that OC validate was from 0.7.0, and my config.plist is for 0.7.1...

But now I have a new problem, I have another ssd with windows and at boot it down't show, only macOS Monterey. How do I fix this?

Thanks…

Upload your current config.plist. 

Link to comment
Share on other sites

Hi @miliuco,

Don't work with 19860227, in my other config.plist my ScanPolicy was 0...

Thanks

 PS: Solved with ScanPolicy 0 I have windows again at boot...

Edited by MorenoAv
  • Like 1
Link to comment
Share on other sites

1 hour ago, MorenoAv said:

Hi @miliuco,

Don't work with 19860227, in my other config.plist my ScanPolicy was 0...

Thanks

 PS: Solved with ScanPolicy 0 I have windows again at boot...

0 scans all device types and all file systems, it's a failsafe option but I prefer set a number related with my preferences. It's strange that 19860227 (12F0B03 in hex) doesn't work, this is what this number means:

 

scanpolicy.png.c0d99ab74e64ebe6dd11005007589c36.png

  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...
On 6/8/2021 at 12:29 AM, miliuco said:

I encourage all less advanced users to read these instructions in detail so that their hackintosh gets better and better with the improvements of OpenCore. Some users are only interested in config.plist changes to get the new version up and running in no time. This is the wrong approach because this makes errors more difficult to understand or fix.

This time the writing of the differences between versions has been very complicated. OpenCore developers have made a lot of changes and improvements. Suffice it to say that over 60 compilations have been released throughout May. Some of the changes are real news and require study and learning to be fully understood. With all this, Opencore is improving and currently has reached a maturity that has nothing to do with its consideration as a beta program.

OpenCanopy continues with its great evolution and brings many changes and improvements. Some of these enhancements require training and will only be used by a limited number of users and mostly by artists designers of themes and icons. Improvements of the OpenCore graphical interface have been huge in just a few releases.
 

The text is divided into sections:

  • config.plist: display rotation, flavours, SIP and other modifications.
  • csrutil and SIP: added 2 new tools to have an easy handling of SIP from the picker.
  • OpenCanopy: new structure of the Resources/Image folder, themes organized by author, new Flavour system (custom icons in Entries and Tools), etc.

 

message from vit9696

 

Do not miss the @vit9696 message as every time a new version of OpenCore is published, it is the best way to know the main changes and improvements applied.

 

config.plist

 

Display rotation

  • ProtocolOverrides > added AppleEg2Info (Boolean): replaces the Apple EFI Graphics 2 protocol with a builtin version. This protocol allows newer EfiBoot versions (at least 10.15) to expose screen rotation to macOS. It can be False.
  • NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82 > added ForceDisplayRotationInEFI (Number): defines display rotation. It can be 0 for no rotation or any of 90, 180, 270 for matching rotation in degrees. Only enabled if AppleEg2Info=True.

 

Flavour

  • Misc > Boot > PickerAttributes > added a new bitmask 0x0080 — OC_ATTR_USE_FLAVOUR_ICON to enable flavours.
  • Misc > Entries > added Flavour (String) to configure custom icons for Entries. It can be Auto.
  • Misc > Tools > added Flavour (String) to configure custom icons for Tools. It can be Auto.

 

PlatformInfo > Generic

  • AdviseWindows replaced by AdviseFeatures (Boolean) to update FirmwareFeatures (PlatformInfo > PlatformNVRAM and PlatformInfo > SMBIOS) with supported bits. It can be False.
  • A new bit has been added to FirmwareFeatures: FW_FEATURE_SUPPORTS_APFS (0x00080000) Without this bit, it is not possible to install macOS on an APFS disk. On most newer UEFI firmwares these bits are already set.

Note: most of us use only Generic section of PlatformInfo and don't need to install FirmwareFeatures or FirmwareFeaturesMask. But we all need to replace AdviseWindows with AdviseFeatures.

 

Misc > Security

  • Added AllowToggleSip (Boolean): if True, it enables the ToggleSIP tool to enable or disable System Integrity Protection in OpenCore picker. This will toggle Apple NVRAM variable csr-active-config between 0 for SIP Enabled and a default for SIP Disabled (currently 0x26F).

Note: It is strongly recommended not to make a habit of running macOS with SIP disabled.
Note: OpenCore uses 0x26F even though csrutil disable on Big Sur sets 0x7F.
For any other value which you may need to use, it is possible to configure CsrUtil.efi as a TextMode tool entry to configure a different value, e.g. use toggle 0x67 in Arguments to toggle the default SIP Disabled value for macOS Catalina.
It's mandatory to download the new Labels folder included into OcBinaryData from Acidanthera. This folder now contains 2 new labels SIPEnabled and SIPDisabled, without them OpenCanopy falls back to text mode.

 

UEFI > Output

  • GopPassThrough changed type from Boolean to String. This option provides the GOP protocol for firmware that do not implement the protocol. Supported values are: Enabled (provide GOP for all UGA protocols), Apple (provide GOP for AppleFramebufferInfo-enabled protocols) and Disabled (do not provide GOP). Failsafe Value is Disabled. This option requires ProvideConsoleGop to be enabled.

 

Memory testing utility

  • Added Flavour key for MemTest (memtest86) and updated recommended memtest86 config in sample.plist files.

To use MemTest you have to download memtest86 from its website. Mount the file memtest86-usb.img. Now, you should see a folder named EFI containing a folder named BOOT, open it. We are interested in only 2 files: BOOX64.efi (it's the app for 64 bits) and unifont.bin. Save these 2 files in a folder called memtest86 and put this folder inside the OpenCore Tools folder. The Path key of this tool in config.plist must point to memtest86/BOOTX64.efi. This way, running MemTest from its icon in the picker executes the memory check.

 

CPU info for Hyper-V

  • Kernel > Quirks > added ProvideCustomCpuInfo ProvideCurrentCpuInfo (Boolean): Provides current CPU info to the kernel. This quirk currently provides correct TSC and FSB values to the kernel. It's for Hyper-V virtual machines. It can be False.

 

csrutil and SIP

  • Added optional ToggleSIP system boot menu option: ToggleSIP (Enabled) / ToggleSIP (Disabled). It doesn't exist in the Tools folder, i's included into OpenCore. Operation is very simple. The tool is on/off style. By clicking on the icon, the status changes (Enabled > Disabled and vice versa). If csr-active-config has a value assigned (not empty) in config.plist, this is the setting that will be active on every new boot. Otherwise, action performed on Toggle SIP is kept between boots.
  • Added CsrUtil.efi tool, similar to Apple csrutil. Visible in the Tools folder. It is an argument tool: you can pass argument in config.plist (active at every boot) setting it as TextMode tool or run it interactively from OpenShell. Available arguments in text mode: clear, enable value, toggle value, status.

It is not required to have both tools active in the picker. Toggle SIP works fine even if CsrUtil.efi is disabled and not showing in the picker. And vice versa. SIP values which affect macOS updates are documented in configuration docs.

sip-tool.png.eeeb18c9200385f389480840582af1d9.png

 

OpenCanopy

 

  • Added support for display rotation (0, 90, 180, 270).
  • Changed OpenCanopy image directory to support subdirectories.
  • Changed OpenCanopy preferred image set to Acidanthera\GoldenGate (former Modern theme).
  • Implementation of boot entries Flavour system.

 

OpenCanopy image directory structure

 

There is a new structure of the Resources/Image folder, now subdirectories with themes are supported. It's set in Misc > Boot > PickerVariant.
 

An icon set is a directory path relative to \EFI\OC\Resources\Image where the icons are located, in the Creator\Set format. OcBinaryData now have the following icon sets:
Acidanthera\GoldenGate - macOS 11 styled.
Acidanthera\Syrah - macOS 10.10 styled.
Acidanthera\Chardonnay - macOS 10.4 styled.

 

We have 2 ways to assign a value to PickerVariant:

  • Predefined aliases:
    Default: Automatically select Acidanthera\GoldenGate.
    Auto: Automatically select one set of icons based on the Default Background colour: Acidanthera\GoldenGate for Black and Acidanthera\Chardonnay for Light Gray.
  • Icons sets included into its own folder (as mentioned above), writing the value Creator\Set in PickerVariant. For example, you have 3 icon sets made by different vendors:
    EFI\OC\Resources\Image\Acidanthera\GoldenGate\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns...
    EFI\OC\Resources\Image\Blackosx\BsxM1\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns...
    EFI\OC\Resources\Image\Chris1111\Apple-BnW\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns....

      Depending on the value of PickerVariant:

  • PickerVariant=Default > GoldenGate is the chosen theme
  • PickerVariant=Blackosx\BsxM1 > BsxM1 is the chosen theme
  • PickerVariant=Chris1111\Apple-BnW > Apple-BnW is the chosen theme.
     

PickerVariant intentionally supports \ or / as separator, e.g. Blackosx\BsxM1 or Blackosx/BsxM1.

Note: you must remove prefixes from icon names.

 

Flavour: custom icons in Entries and Tools

 

There is a new flavours system for custom icons in Entries and Tools. It's set in Misc > Boot > PickerAttributes.

A new bitmask 0x0080 — OC_ATTR_USE_FLAVOUR_ICON has been added in PickerAttributes. When it's true enables flavours, boot entries content descriptions to have custom icons for Entries and Tools. These flavours can be enabled when PickerAttributes=144 (0x90 hex) which is the sum of:
- 0x0010 - OC_ATTR_USE_POINTER_CONTROL + 0x0080 - OC_ATTR_USE_FLAVOUR_ICON ->10 + 80 = 90 hex = 144 decimal.
When using flavours, it is recommended to disable: 0x0001 - OC_ATTR_USE_VOLUME_ICON.

 

Flavour is a new string key added in Misc > Entries and Misc > Tools. Its value is a succession of text elements separated by : up to a maximum of 5 elements. The first item has the highest priority and the last item has the lowest priority. Flavour value by default is Auto. When Flavour has a custom value in an Entry or Tool, OpenCanopy looks for the icon named with that value in the folder of the active theme. If the icon corresponding to the first element of Flavour does not exist, the second is selected and so on. If none of Flavour icons are found, default icon is assigned according to the type of Entry.

flavour1a.png.054bcade5133f10e44bb8cf3c0a30906.png

flavour1b.png.0d80761c29be93c6d19ee9c7883219f7.png

 

An example of Flavour could be Windows10:Windows in an Entry for a Windows 10 system. If there is a Windows10.icns file, this is the one associated with the Entry but, if it does not exist, Windows.icns is searched and, if it does not exist, default icon for this type of Entry is loaded (HardDrive.icns). With this method it is easier to configure custom icons for Entries, you just have to include the icons in the Icon Set and configure the Flavour key.

 

Example: How to set Flavours for Big Sur, Catalina, Monterey and Windows?

 

  • Set 144 (0x90 hex) value in PickerAttributes.
  • Put the appropriate icons in the theme's folder. In this example, we are going to use Apple11.icns + ExtApple11.icns (Big Sur), Apple12.icns + ExtApple12.icns (Monterey), Apple10_15.icns + ExtApple10_15.icns (Catalina) and Windows10.icns + ExtWindows10.icns. Without Ext icons it doesn't work (at least in the tests I have done).
  • macOS Entries only need the icons, nothing more; macOS will have its flavour set automatically by OC and it will pick the correct icon from the theme set in PickerVariant; this way it is possible to have different icons for different versions of operating systems.
  • Windows Entry needs Flavour=Windows10:Windows.

Flavours.thumb.png.5805d18a248b4a490ea7b5e7088a3251.png

Thanks to @blackosx for these beautiful hardrive icons with images.

Note: There is an intention to have a list of tools which are common enough that some icon pack artists may wish to provide an icon for them, for example ToggleSIP.icns or MemTest.icns. Certain well-known bootloaders have also been assigned a flavour (OpenCore of course, Grub2). This way, Flavour will allow to display a custom icon (if it exists) for these elements.

 

Do I have to use Flavour in all cases? Short answer: no

 

  • Flavour property in config.plist isn't required for macOS because macOS (versions included) is detected by OpenCore and the correct icon is picked up automatically.
  • Flavour property has to be used when OpenCore does not automatically pick up the icon for an element, specifically Entries and Tools.
  • There is no need to create an Entry to apply a flavour; if you need to apply a flavour and there isn't already an entry, then you must use a .contentFlavour file.
  • You don't have to use Flavour in all cases, generally themes and Icon Sets are enough to customize the picker to your liking, reserving Flavour for more specific uses.

 

.contentFlavour file

 

Another way to get flavours is by placing a .contentFlavour file next to the operating system's bootloader. This option is indicated when the system does not have an entry created in config.plist.
For example, for a Windows system the .contentFlavour file must be in the /EFI/Microsoft/Boot/ folder of the Windows EFI partition.
The content of .contentFlavour is the same as Flavour key: Windows10:Windows, assuming there is a Windows10.icns icon into the active theme folder.
It is another way to have flavours but more complex than if you use the Flavour key in an Entry.

 

Algorithm used to determine content flavour

 

  • For a Tool, the value is read from Flavour key.
  • If Flavour=Auto and there is no .contentFlavour file, entry flavour is chosen based on the entry type (e.g. Windows automatically gets Windows flavour).
  • For an automatically discovered entry, it is read from the .contentFlavour file next to the bootloader, if present.
  • If there is a .VolumeIcon.icns (placed at the root of the Preboot volume (macOS) or at the root volume for other filesystems) it takes precedence over .contentFlavour file.
  • For a custom entry:
    it is read from the .contentFlavour file next to the bootloader if Flavour is Auto
    otherwise it is read from Flavour key.

     

Note: To better understand flavours, it is advisable to read Mike Beaton's text explaining these changes and defining flavours lists.

 

Kexts

 

It is recommended to switch to the new versions of the kexts that have been modified and updated:

  • RestrictEvents 1.0.2
  • AppleALC 1.6.1
  • NVMeFix 1.0.8
  • VirtualSMC 1.2.4
  • BrightnessKeys 1.0.2
  • WhateverGreen 1.5.0
  • SidecarFixup 1.0.1
  • BrcmPatchRAM 2.5.9
  • MacHyperVSupport 0.5
  • gfxutil 1.81b.
     

Replace only the ones you use regularly.
Note: AppleALC is accompanied by a new variant called AppleALCU.kext intended for systems that have digital audio (USB) only.

 

how to edit .contentflavour? and what is look like? Thanks

Link to comment
Share on other sites

16 minutes ago, grinlight said:

how to edit .contentflavour? and what is look like? Thanks

Quote

 

.contentFlavour file

 

Another way to get flavours is by placing a .contentFlavour file next to the operating system's bootloader. This option is indicated when the system does not have an entry created in config.plist.
For example, for a Windows system the .contentFlavour file must be in the /EFI/Boot or in the /EFI/Microsoft/Boot/ folder of the Windows EFI partition.
The content of .contentFlavour is the same as Flavour key: Windows10:Windows, assuming there is a Windows10.icns icon into the active theme folder.
It is another way to have flavours but more complex than if you use the Flavour key in an Entry.

 

 

I think it's clear.

You can edit this file with any plain text editor, in Terminal you can use pico.

 

The file is located here:

 /Volumes/EFI/EFI/Boot > ls -a
.contentflavour		bootx64.efi

And its content is like this (example):

/Volumes/EFI/EFI/Boot > cat .contentflavour 
Windows10:Windows

 

Link to comment
Share on other sites

15 hours ago, miliuco said:

 

I think it's clear.

You can edit this file with any plain text editor, in Terminal you can use pico.

 

The file is located here:


 /Volumes/EFI/EFI/Boot > ls -a
.contentflavour		bootx64.efi

And its content is like this (example):


/Volumes/EFI/EFI/Boot > cat .contentflavour 
Windows10:Windows

 

Thanks a lot for the info....

Link to comment
Share on other sites

 Share

×
×
  • Create New...