Jump to content

OpenCanopy Icons


blackosx
1,484 posts in this topic

Recommended Posts

@SardusX86

i understand you. You want to pick an icon depending on the device type or to pick different icons for 2 disks with the same version of macOS.


There is a way to do this using custom boot icons. In the OpenCore configuration PDF you can read:

PickerAttributes
Description: Sets specific attributes for the OpenCore picker.
Different OpenCore pickers may be configured through the attribute mask containing OpenCore-reserved (BIT0 ~ BIT15) and OEM-specific (BIT16 ~ BIT31) values.

Current OpenCore values include:
0x0001 - OC_ATTR_USE_VOLUME_ICON, provides custom icons for boot entries:
OpenCore will attempt loading a volume icon by searching as follows, and will fallback to the default icon on failure:
.VolumeIcon.icns file at Preboot volume in per-volume directory (/System/Volumes/Preboot/{GUID}/ when mounted at the default location within macOS) for APFS (if present).
.VolumeIcon.icns file at the Preboot volume root (/System/Volumes/Preboot/, when mounted at the default location within macOS) for APFS (otherwise).
.VolumeIcon.icns file at the volume root for other filesystems.

In summary: you must copy the icon with name .VolumeIcon.icns to /System/Volumes/Preboot/{GUID}/ or /System/Volumes/Preboot/ and select (among others) the first option of PickerAttributes (0x0001 - OC_ATTR_USE_VOLUME_ICON).

 

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

On 8/3/2021 at 6:18 PM, miliuco said:

@SardusX86

i understand you. You want to pick an icon depending on the device type or to pick different icons for 2 disks with the same version of macOS.


There is a way to do this using custom boot icons. In the OpenCore configuration PDF you can read:


PickerAttributes
Description: Sets specific attributes for the OpenCore picker.
Different OpenCore pickers may be configured through the attribute mask containing OpenCore-reserved (BIT0 ~ BIT15) and OEM-specific (BIT16 ~ BIT31) values.

Current OpenCore values include:
0x0001 - OC_ATTR_USE_VOLUME_ICON, provides custom icons for boot entries:
OpenCore will attempt loading a volume icon by searching as follows, and will fallback to the default icon on failure:
.VolumeIcon.icns file at Preboot volume in per-volume directory (/ System / Volumes / Preboot / {GUID} / when mounted at the default location within macOS) for APFS (if present).
.VolumeIcon.icns file at the Preboot volume root (/ System / Volumes / Preboot /, when mounted at the default location within macOS) for APFS (otherwise).
.VolumeIcon.icns file at the volume root for other filesystems.

In summary: you must copy the icon with name .VolumeIcon.icns to /System/Volumes/Preboot/{GUID}/ or /System/Volumes/Preboot/ and select (among others) the first option of PickerAttributes (0x0001 - OC_ATTR_USE_VOLUME_ICON).

 

 

This is my system drive situation:

/dev/disk4 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +499.9 GB   disk4
                                 Physical Store disk3s2
   1:                APFS Volume macOS Big Sur - Dati    9.0 GB     disk4s1
   2:                APFS Volume Preboot                 364.6 MB   disk4s2
   3:                APFS Volume Recovery                1.2 GB     disk4s3
   4:                APFS Volume VM                      3.2 GB     disk4s4
   5:                APFS Volume macOS Catalina - Dati   115.1 GB   disk4s5
   6:                APFS Volume macOS Catalina          11.2 GB    disk4s6
   7:                APFS Volume                         15.3 GB    disk4s7
   8:                APFS Volume Update                  413.7 KB   disk4s8

I have 2 versions of macOS (Catalina/Big Sur) installed in two separate APFS volumes, where should I copy the .VolumeIcon.icns files for each version of macOS?

Link to comment
Share on other sites

@SardusX86

In the OC instructions it says to copy .VolumeIcon.icns to the folder /System/Volumes/ Preboot/{GUID}/ where GUID is a 36 character long number with the structure XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.

This number corresponds to the file system UUID of each DATA volume.
You have 2 DATA volumes on this disk: macOS Catalina - Dati and macOS Big Sur - Dati. To know to which folder you have to copy .VolumeIcon.icns you have to know the UUID of the Big Sur volume and the UUID of the Catalina volume. You can see them in Disk Utility >> select a disk DATA >> Get info.
As you only have one Preboot volume, there must be at least 2 folders with the UUIDs of Big Sur and Catalina in it.

Link to comment
Share on other sites

22 hours ago, miliuco said:

In the OC instructions it says to copy .VolumeIcon.icns to the folder /System/Volumes/ Preboot/{GUID}/ where GUID is a 36 character long number with the structure XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.

This number corresponds to the file system UUID of each DATA volume.
You have 2 DATA volumes on this disk: macOS Catalina - Dati and macOS Big Sur - Dati. To know to which folder you have to copy .VolumeIcon.icns you have to know the UUID of the Big Sur volume and the UUID of the Catalina volume. You can see them in Disk Utility >> select a disk DATA >> Get info.

 

Sorry I'm a bit confused: so I should retrieve the UUID of the macOS Catalina - Data and macOS Big Sur - Data volumes using Disk Utility (Get Info). Next I should copy within each volume (macOS Catalina - Data / macOS Big Sur - Data) the icon chosen for each OpenCore menu boot entry renamed as .VolumeIcon.icns:

How to? Simply using "show in the finder" in disk utility for each volume "macOS Version - Data" and than copying the chosen icon within each volume?

22 hours ago, miliuco said:

As you only have one Preboot volume, there must be at least 2 folders with the UUIDs of Big Sur and Catalina in it.

Should I copy the icons chosen for the opencore menu into those folders? Where do i find this folders? How to access the "Preboot" volume?

 

This my Picker Attributes config, is it OK?

279720340_Schermata2021-08-06alle18_01_16.png.c5af9f149f600beb502351557d9ea574.png

 

Thanks again

Edited by SardusX86
Link to comment
Share on other sites

@SardusX86

Picker Attributes is ok.
The Preboot volume is easily accessible because it is on the path: /System/Volumes/Preboot.
Inside Preboot there must be at least 2 folders whose names are the UUIDs of each DATA disk.
There is a problem with this method. Preboot volume is write protected and to be able to write to it you must have SIP disabled and probably GateKeeper disabled as well. GateKeeper is easily disabled, but disabling SIP is a difficult task. For both questions that are outside the topic of this thread there is enough information in this forum and elsewhere.

Link to comment
Share on other sites

4 hours ago, SardusX86 said:

 

Sorry I'm a bit confused: so I should retrieve the UUID of the macOS Catalina - Data and macOS Big Sur - Data volumes using Disk Utility (Get Info). Next I should copy within each volume (macOS Catalina - Data / macOS Big Sur - Data) the icon chosen for each OpenCore menu boot entry renamed as .VolumeIcon.icns:

How to? Simply using "show in the finder" in disk utility for each volume "macOS Version - Data" and than copying the chosen icon within each volume?

Should I copy the icons chosen for the opencore menu into those folders? Where do i find this folders? How to access the "Preboot" volume?

 

This my Picker Attributes config, is it OK?

279720340_Schermata2021-08-06alle18_01_16.png.c5af9f149f600beb502351557d9ea574.png

 

Thanks again

This way you should succeed

 

First disable SIP from the terminal via Recovery

 

Open the terminal and type " diskutil list "

 

locate the Preboot disk in my case disk3s2

 

mount it with " sudo diskutil mount disk3s2 "

 

once mounted, open it with  " open / System / Volumes / Preboot " you will find a folder named with the UUID of the disk / partition (my example 3583CAA1-E632-4B94-BC8D-689CED58B496)

 

open it and copy the icon of your choice in my example Apple.icns

 

you will need to rename it in " .VolumeIcon.icns "  this is always possible and only via the terminal in this way type
cd / System / Volumes / Preboot / 3583CAA1-E632-4B94-BC8D-689CED58B496       (or cd and drag the UUID folder)

 

to rename it type
sudo mv Apple.icns .VolumeIcon.icns

 

the icon will become invisible you can check by enabling the option for hidden files

 

393273399_Schermata2021-08-06alle20_45_54.png.b98adbf1dd63c0b9a4c8e162198870b1.png

 

Copy the icon 

1595632901_Schermata2021-08-06alle21_13_48.png.a44e5c9c437f2a135f22e85e61507e8c.png

 

After rename 

21048979_Schermata2021-08-06alle21_26_04.png.93daa66c0f16be2c73096712e120b736.png

 

Before 

951297854_Schermata2021-08-06alle20_58_17.png.f75d1313a0474afd3d6ded22dac84d8e.png

 

After 

1198977527_Schermata2021-08-06alle20_55_54.png.1226248043a1df84e4348b18270ffb0a.png

 

https://drive.google.com/file/d/1Efl6ARBfzO_KgByai0esJV80cmfHtbqj/view?usp=sharing      😉

Edited by antuneddu
  • Like 2
Link to comment
Share on other sites

@antuneddu

i'm trying following your guide but after mounting the PreBoot volume, it doesn't open using the commands you suggested.

This is the diskutil list output for the disk7 (backup):

/dev/disk7 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.0 GB   disk7
                                 Physical Store disk3s2
   1:                APFS Volume macOS Mojave BAK        144.5 GB   disk7s1
   2:                APFS Volume macOS Catalina BAK      11.0 GB    disk7s2
   3:                APFS Volume PreBoot                 126.6 MB   disk7s3
   4:                APFS Volume Recovery                1.1 GB     disk7s4
   5:                APFS Volume VM                      9.7 GB     disk7s5
   6:                APFS Volume Dati - macOS Catalin... 10.0 GB    disk7s6

This is the mount/open PreBoot Volume commands output:

andrea2@iMac-di-Andrea2 ~ % sudo diskutil mount disk7s3
Password:
Volume PreBoot on disk7s3 mounted
andrea2@iMac-di-Andrea2 ~ % open /System/Volumes/Preboot
The file /System/Volumes/Preboot does not exist.
andrea2@iMac-di-Andrea2 ~ % open /System/Volumes/PreBoot
The file /System/Volumes/PreBoot does not exist.

Any idea about?

Edited by SardusX86
Link to comment
Share on other sites

4 hours ago, SardusX86 said:

@antuneddu

i'm trying following your guide but after mounting the PreBoot volume, it doesn't open using the commands you suggested.

This is the diskutil list output for the disk7 (backup):


/dev/disk7 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +500.0 GB   disk7
                                 Physical Store disk3s2
   1:                APFS Volume macOS Mojave BAK        144.5 GB   disk7s1
   2:                APFS Volume macOS Catalina BAK      11.0 GB    disk7s2
   3:                APFS Volume PreBoot                 126.6 MB   disk7s3
   4:                APFS Volume Recovery                1.1 GB     disk7s4
   5:                APFS Volume VM                      9.7 GB     disk7s5
   6:                APFS Volume Dati - macOS Catalin... 10.0 GB    disk7s6

This is the mount/open PreBoot Volume commands output:


andrea2@iMac-di-Andrea2 ~ % sudo diskutil mount disk7s3
Password:
Volume PreBoot on disk7s3 mounted
andrea2@iMac-di-Andrea2 ~ % open /System/Volumes/Preboot
The file /System/Volumes/Preboot does not exist.
andrea2@iMac-di-Andrea2 ~ % open /System/Volumes/PreBoot
The file /System/Volumes/PreBoot does not exist.

Any idea about?

Open it from the Finder. 

  • Like 2
Link to comment
Share on other sites

On 8/7/2021 at 1:43 AM, antuneddu said:

This way you should succeed

 

First disable SIP from the terminal via Recovery

 

Open the terminal and type " diskutil list "

 

locate the Preboot disk in my case disk3s2

 

mount it with " sudo diskutil mount disk3s2 "

 

once mounted, open it with  " open / System / Volumes / Preboot " you will find a folder named with the UUID of the disk / partition (my example 3583CAA1-E632-4B94-BC8D-689CED58B496)

 

open it and copy the icon of your choice in my example Apple.icns

 

you will need to rename it in " .VolumeIcon.icns "  this is always possible and only via the terminal in this way type
cd / System / Volumes / Preboot / 3583CAA1-E632-4B94-BC8D-689CED58B496       (or cd and drag the UUID folder)

 

to rename it type
sudo mv Apple.icns .VolumeIcon.icns

 

the icon will become invisible you can check by enabling the option for hidden files

 

393273399_Schermata2021-08-06alle20_45_54.png.b98adbf1dd63c0b9a4c8e162198870b1.png

 

Copy the icon 

1595632901_Schermata2021-08-06alle21_13_48.png.a44e5c9c437f2a135f22e85e61507e8c.png

 

After rename 

21048979_Schermata2021-08-06alle21_26_04.png.93daa66c0f16be2c73096712e120b736.png

 

Before 

951297854_Schermata2021-08-06alle20_58_17.png.f75d1313a0474afd3d6ded22dac84d8e.png

 

After 

1198977527_Schermata2021-08-06alle20_55_54.png.1226248043a1df84e4348b18270ffb0a.png

 

https://drive.google.com/file/d/1Efl6ARBfzO_KgByai0esJV80cmfHtbqj/view?usp=sharing      😉

How you have assigned icons to the tools programs like openshell by even changing the name displayed below, Reset NVRAM is same as clearNVRAM? Also where to put the volumeicon for Ubunti system?

 

Link to comment
Share on other sites

I have solved most of the problems but I am unable to rename the main Boot drive. The name of the drive is Hackintosh and I want to show this drive name as BigSur in Opencore/OpenCanopy

 

I have tried all the solution mentioned here and in the configuration.pdf like hidden file in EFI/Boot 

  • .contentFlavour

  • creating .disk_label (.disk_label_2x)

  • .contentDetails or .disk_label.contentDetails

my pickerattribute is 144 and my OC version is 0.7.0

 

Please Help!

Link to comment
Share on other sites

1 hour ago, rajkhand said:

I have solved most of the problems but I am unable to rename the main Boot drive. The name of the drive is Hackintosh and I want to show this drive name as BigSur in Opencore/OpenCanopy

 

I have tried all the solution mentioned here and in the configuration.pdf like hidden file in EFI/Boot 

  • .contentFlavour

  • creating .disk_label (.disk_label_2x)

  • .contentDetails or .disk_label.contentDetails

my pickerattribute is 144 and my OC version is 0.7.0

 

Please Help!

 

What is the name your drive in Disk Utility ! Rename it if necessary. It must be also named Big Sur in .disk_label.contentDetails, by using vi in Terminal. If I remember well.

Link to comment
Share on other sites

2 hours ago, rajkhand said:

I have solved most of the problems but I am unable to rename the main Boot drive. The name of the drive is Hackintosh and I want to show this drive name as BigSur in Opencore/OpenCanopy

 

I have tried all the solution mentioned here and in the configuration.pdf like hidden file in EFI/Boot 

  • .contentFlavour

  • creating .disk_label (.disk_label_2x)

  • .contentDetails or .disk_label.contentDetails

my pickerattribute is 144 and my OC version is 0.7.0

 

Please Help!

Hi, sorry but I lost your post, in the past I tried with the tool that is in the OC Release but it didn't work. To rename the main Boot drive you need to access the ".disk_label_contentsDetails" file inside the UUID folder. it is hidden you have to activate the option to view it but first of all it is necessary to deactivate Sip. To access the file and the Preboot disk and edit it, you can follow the procedure above via the terminal 

 

"diskutil list"

to locate the Preboot disk example disk2s2

 

mount it "sudo diskutil mount disk2s2" once mounted

open it "open / System / Volumes / Preboot" (or via finder if it doesn't open)


you will find a folder named with the UUID of the disk / partition (my example 3583CAA1-E632-4B94-BC8D-689CED58B496)

 

go to "/ System / Library / CoreServices" folder (you need to show hidden files)

 

find the file named  " .disk_label_contentsDetails "

open it with text editor and rename it 🙂 

 

Short video guide

 

https://drive.google.com/file/d/1SwDyqGrlHGBTnMEci4EP2yxDG8n7BAV9/view?usp=sharing

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

@rajkhand

Or in an easier manner, install Intel Power Gadget or reinstall it if it's already installed AFTER renaming the volume with the new name. Reboot. Intel Power gadget updates Preboot volume and .disk_label_contentsDetails file.

 

Edited by miliuco
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, miliuco said:

@rajkhand

Or in an easier manner, install Intel Power Gadget or reinstall it if it's already installed AFTER renaming the volume with the new name. Reboot. Intel Power gadget updates Preboot volume and .disk_label_contentsDetails file.

 

I do not understand what the Intel Power Gadget is for, once the volume is renamed it remains, no need to update anything

Link to comment
Share on other sites

1 hour ago, antuneddu said:

I do not understand what the Intel Power Gadget is for, once the volume is renamed it remains, no need to update anything

Yes but he wants to rename the volume so a new installation of IPG updates Preboot volume and the new volume name. 
It’s a side effect of IPG, since this app updates Preboot when installing we can use this feature to internally change the macOS volume name. 

Edited by miliuco
Link to comment
Share on other sites

26 minutes ago, miliuco said:

Yes but he wants to rename the volume so a new installation of IPG updates Preboot volume and the new volume name. 
It’s a side effect of IPG, since this app updates Preboot when installing we can use this feature to internally change the macOS volume name. 

I still don't understand are you telling me that IPG renames the Volume for you?

Link to comment
Share on other sites

13 minutes ago, antuneddu said:

I still don't understand are you telling me that IPG renames the Volume for you?

No, you rename the volume but internally (.disk_label_contentsDetails file) the old name remains so OpenCore doesn't show the new name.

You can fix it by the way you have wrote (disable SIP, show invisibles, change /System/Library/CoreServices/.disk_label_contentsDetails) but IPG does this in an easier way.

IPG is for another thing but since it updates Preboot when installing we can use this feature for this task.

  • Like 1
Link to comment
Share on other sites

4 minutes ago, miliuco said:

No, you rename the volume but internally (.disk_label_contentsDetails file) the old name remains so OpenCore doesn't show the new name.

You can fix it by the way you have wrote (disable SIP, show invisibles, change /System/Library/CoreServices/.disk_label_contentsDetails) but IPG does this in an easier way.

IPG is for another thing but since it updates Preboot when installing we can use this feature for this task.

So you have to rename it as I described. ....   but IPG does this in an easier way.....               Explain to me how thanks

  • Like 1
Link to comment
Share on other sites

7 minutes ago, antuneddu said:

So you have to rename it as I described. ....   but IPG does this in an easier way.....               Explain to me how thanks

By design (Intel) IPG upon installation also updates the Preboot volume including the volume name if it does not match the one in .disk_label_contentsDetails.  On reboot, the effect is the same as modifying the .disk_label_contentsDetails file by hand after disabling SIP.
I think my bad English makes my explanation difficult to understand, sorry. 

Link to comment
Share on other sites

:thumbsup_anim:   I manually renamed the Monterey Preboot volume in Hackintosh Hd 

 

1383973506_Schermata2021-08-18alle23_46_19.thumb.png.20f96e5fcdd125a67072bbadf002923b.png

 

 

 

After I installed IPG, once I rebooted the Preboot volume it was automatically renamed to Monterey... Gracias  @miliuco  for this nice  trick it works

 

 

146163055_Schermata2021-08-18alle23_46_43.thumb.png.07613538037a11e92c00656b2c8c4dbf.png
 

 

So @rajkhand  you have 2 ways to rename the Volume now if you don't feel like fiddling with the terminal 🙂

  • Like 1
Link to comment
Share on other sites

I am unable to disable SIP

As suggested put csr-active-config=FF0F000, rebooted still shows csr enabled

even tried SIP Toggle tool (csrUtil.efi)) in opencore boot but SIP is not dissabled 

Link to comment
Share on other sites

×
×
  • Create New...