Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

borp99

macrumors regular
Jun 25, 2020
139
151
I just updated my 31 July 2020 post #30 'method' for changing system folders on the Big Sur final public release 11.0.1 version (and still works with 11.1).

Screen Shot 2020-11-16 at 5.58.07 PM.png
 
Last edited:

Takuro

macrumors 6502a
Jun 15, 2009
584
274
In terms of customizing system app icons in macOS Big Sur, here is my own tutorial. I see borp did a good job, but I wanted to write a more beginner-friendly version that shows and explains every single command.

Note: Everywhere you see "$", this implies you're in Terminal.app or another terminal emulator. This symbol is meant to represent the shell prompt and isn't part of the command. Any commands prefixed with "root$" denote that they're run as the root user. Your actual shell prompt text may vary based on what's called your "shell profile" configuration.

Warning: Since modifying any system file in macOS Big Sur "breaks the seal" of the Apple-signed "system" volume, the drive will only be bootable on Macs that have SSV (Sealed System Volume) checks manually disabled. If you wish to use the drive again on a Mac that has SSV checks enabled, you must reinstall macOS on the drive so the system volume is restored to its default, signed state (and this will also in turn undo your changes.)

I - Disable SIP and SSV Checks:
  1. Disable FileVault if enabled, boot into the Recovery Mode, launch Terminal, and issue the following:
    Code:
    $ csrutil disable
    $ csrutil authenticated-root disable
    $ reboot
  2. Boot back into macOS and run these commands. They should confirm SIP and SSV are both disabled. If not, try again. If so, you may now re-enable FileVault.
    Code:
    $ csrutil status
    System Integrity Protection status: disabled.
    
    $ csrutil authenticated-root status
    Authenticated Root status: disabled
II - Mount the System Volume to a Folder:
  1. Switch accounts within the terminal to the root user. (If you need instructions for enabling the root user, see here.)
    Code:
    $ su root
  2. Make a new folder where the file mount will map to.
    Code:
    root$ mkdir /tmp/mount
  3. Mount your system volume to this folder.
    Code:
    root$ sudo mount -o nobrowse -t apfs `mount | head -1 | egrep -oh '/dev/disk[0-9]s[0-9]'` /tmp/mount
III - Replace the Icon of a System App
  1. Launch a Finder window as the root user. Eg: Opening the /System/Applications folder which is where system applications are located.
    Code:
    root$ open /tmp/mount/System/Applications/
  2. Using the Finder window you launched as a root user, you should now have escalated privileges. You can now finally do the usual icon replacement process that worked in previous macOS versions: Right click an app, selecting "Get Info", and drag and dropping a replacement icon on it. Optional: Cry a tear in reminiscence of how easy this used to be.
IV - Saving Changes and Flushing the Icon Cache
  1. Commit the modified system volume to a new snapshot.
    Code:
    root$ bless --folder /tmp/mount/System/Library/CoreServices --bootefi --create-snapshot
  2. Flush the icon cache.
    Code:
    root$ rm -rfv /Library/Caches/com.apple.iconservices.store
    root$ sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm -rf {} \;
    root$ sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \;
  3. Reboot the computer.
    Code:
    root$ reboot
 
Last edited:

haddy

macrumors 6502a
Nov 5, 2012
542
236
NZ
Does anyone know of a working method to change system icons on Big Sur, and then reenabling SIP after this is done? It seems like the old method of disabling SIP isn't enough since Catalina. See here for more information about the new protections.
Are you saying that BS won't allow you to copy and paste?
If that's the case I'm staying with 10.15.7 for the duration of this machine!!!
 

Takuro

macrumors 6502a
Jun 15, 2009
584
274
I decided to make a shell script to help automate the modification of application icons and folder icons. Let me know how it works, and I'll fix any issues via best effort.


Source code:
Bash:
#!/bin/bash

echo "+---------------------------+"
echo "| Big Sur Icon Changer v1.0 |"
echo "+---------------------------+"

echo ""
echo "Root password will be required. To enable root user, see:"
echo "https://support.apple.com/en-us/HT204012"
echo ""

IS_CSRUTIL_DISABLED=$(csrutil status | egrep -oh '(en|dis)abled')
IS_AUTH_ROOT_DISABLED=$(csrutil authenticated-root status | egrep -oh '(en|dis)abled')

if [ $IS_CSRUTIL_DISABLED == 'enabled' ] || [ $IS_AUTH_ROOT_DISABLED == 'enabled' ]
then
  echo "ERROR: In order to proceed, you must boot into Recovery Mode and enter the following in Terminal, then reboot back to macOS:"
  echo ""
  echo "  csrutil disable"
  echo "  csrutil authenticated-root disable"
  echo ""
  echo "Your current settings are:"
  echo ""
  echo "  csrutil disable $IS_CSRUTIL_DISABLED"
  echo "  csrutil authenticated-root $IS_AUTH_ROOT_DISABLED"
  echo ""
  echo "Exiting..."
  exit 1
fi

echo "What do you want to change?"
echo "  [1] System Application Icons"
echo "  [2] Folder Icons"
echo ""

printf "[1/2]: "
read selection

if [ $selection != '1' ] && [ $selection != '2' ]
then
  echo ""
  echo "Invalid Selection. Exiting..."
  exit 1
fi

mkdir -p /tmp/mount
ROOT_DISK=$(mount | head -1 | egrep -oh '/dev/disk[0-9]s[0-9]')
TMP_MOUNT=$(df -h /tmp/mount | egrep -oh '/dev/disk[0-9]s[0-9]')


if [ $ROOT_DISK == $TMP_MOUNT ]
then
  echo ""
  echo "System Volume at $ROOT_DISK is already mounted to /tmp/mount. Skipping..."
  echo ""
else
  echo ""
  echo "Mounting System Volume at $ROOT_DISK to /tmp/mount..."
  sudo mount -o nobrowse -t apfs $ROOT_DISK /tmp/mount
  echo ""
fi

if [ $selection == '1' ]
then
  echo "Opened a Finder window to System Applications. You can now customize icons either by:"
  open /tmp/mount/System/Applications/
  echo ""
  echo "  1) Right clicking an app, \"Get Info\", and drag a replacement icon"
  echo ""
  echo "  -- or --"
  echo ""
  echo "  2) Right clicking an app, \"Show Package Contents\" > \"Contents\" > \"Resources\", and replace \"AppIcon.icns\""
  echo ""
fi

if [ $selection == '2' ]
then
  echo "Opened a Finder window to Assets.car. To change folder icons, edit it using ThemeEngine, available here:"
  echo "  https://github.com/alexzielenski/ThemeEngine/releases/tag/1.0.0(111)"
  open /tmp/mount/System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/Resources/
  echo ""
fi

read -n 1 -s -r -p "When you're done making changes, press any key to continue..."

echo ""
echo ""

echo "WARNING: By committing these changes, the System Volume will not longer by bootable on computers that have SIP (System Integrity Production) or SSV (Signed System Volume) checks enabled. This script has determined that both are currently disabled. Do you wish to continue?"
echo ""

printf "[Y/N]: "
read selection

if [ $selection == 'Y' ] || [ $selection == 'y' ] || [ $selection == 'Yes' ] || [ $selection == 'yes' ]
then
  echo ""
  echo "Creating a new snapshot to write changes to disk..."
  sudo bless --folder /tmp/mount/System/Library/CoreServices --bootefi --create-snapshot
  echo "Flushing the icon cache..."
  sudo rm -rfv /Library/Caches/com.apple.iconservices.store > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm -rf {} \; > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \; > /dev/null 2>&1
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Please reboot your computer for changes to take effect."
else
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Cancelling changes..."
fi
 

JohnDoe12

macrumors member
Original poster
Nov 14, 2017
71
52
I decided to make a shell script to help automate the modification of application icons and folder icons. Let me know how it works, and I'll fix any issues via best effort.


Source code:
Bash:
#!/bin/bash

echo "+---------------------------+"
echo "| Big Sur Icon Changer v1.0 |"
echo "+---------------------------+"

echo ""
echo "Root password will be required. To enable root user, see:"
echo "https://support.apple.com/en-us/HT204012"
echo ""

IS_CSRUTIL_DISABLED=$(csrutil status | egrep -oh '(en|dis)abled')
IS_AUTH_ROOT_DISABLED=$(csrutil authenticated-root status | egrep -oh '(en|dis)abled')

if [ $IS_CSRUTIL_DISABLED == 'enabled' ] || [ $IS_AUTH_ROOT_DISABLED == 'enabled' ]
then
  echo "ERROR: In order to proceed, you must boot into Recovery Mode and enter the following in Terminal, then reboot back to macOS:"
  echo ""
  echo "  csrutil disable"
  echo "  csrutil authenticated-root disable"
  echo ""
  echo "Your current settings are:"
  echo ""
  echo "  csrutil disable $IS_CSRUTIL_DISABLED"
  echo "  csrutil authenticated-root $IS_AUTH_ROOT_DISABLED"
  echo ""
  echo "Exiting..."
  exit 1
fi

echo "What do you want to change?"
echo "  [1] System Application Icons"
echo "  [2] Folder Icons"
echo ""

printf "[1/2]: "
read selection

if [ $selection != '1' ] && [ $selection != '2' ]
then
  echo ""
  echo "Invalid Selection. Exiting..."
  exit 1
fi

mkdir -p /tmp/mount
ROOT_DISK=$(mount | head -1 | egrep -oh '/dev/disk[0-9]s[0-9]')
TMP_MOUNT=$(df -h /tmp/mount | egrep -oh '/dev/disk[0-9]s[0-9]')


if [ $ROOT_DISK == $TMP_MOUNT ]
then
  echo ""
  echo "System Volume at $ROOT_DISK is already mounted to /tmp/mount. Skipping..."
  echo ""
else
  echo ""
  echo "Mounting System Volume at $ROOT_DISK to /tmp/mount..."
  sudo mount -o nobrowse -t apfs $ROOT_DISK /tmp/mount
  echo ""
fi

if [ $selection == '1' ]
then
  echo "Opened a Finder window to System Applications. You can now customize icons either by:"
  open /tmp/mount/System/Applications/
  echo ""
  echo "  1) Right clicking an app, \"Get Info\", and drag a replacement icon"
  echo ""
  echo "  -- or --"
  echo ""
  echo "  2) Right clicking an app, \"Show Package Contents\" > \"Contents\" > \"Resources\", and replace \"AppIcon.icns\""
  echo ""
fi

if [ $selection == '2' ]
then
  echo "Opened a Finder window to Assets.car. To change folder icons, edit it using ThemeEngine, available here:"
  echo "  https://github.com/alexzielenski/ThemeEngine/releases/tag/1.0.0(111)"
  open /tmp/mount/System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/Resources/
  echo ""
fi

read -n 1 -s -r -p "When you're done making changes, press any key to continue..."

echo ""
echo ""

echo "WARNING: By committing these changes, the System Volume will not longer by bootable on computers that have SIP (System Integrity Production) or SSV (Signed System Volume) checks enabled. This script has determined that both are currently disabled. Do you wish to continue?"
echo ""

printf "[Y/N]: "
read selection

if [ $selection == 'Y' ] || [ $selection == 'y' ] || [ $selection == 'Yes' ] || [ $selection == 'yes' ]
then
  echo ""
  echo "Creating a new snapshot to write changes to disk..."
  sudo bless --folder /tmp/mount/System/Library/CoreServices --bootefi --create-snapshot
  echo "Flushing the icon cache..."
  sudo rm -rfv /Library/Caches/com.apple.iconservices.store > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm -rf {} \; > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \; > /dev/null 2>&1
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Please reboot your computer for changes to take effect."
else
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Cancelling changes..."
fi
I have two questions for you:

1. Is it possible for you to reenable SIP and SSV after flushing the icon cache? I presume is isn't because you mention that "the System Volume will not longer by bootable on computers that have [them] enabled"? But what if I enable booting into unsigned volumes? Would it be possible then?
1. How do you revert back to an old snapshot that was made before making changes to the filesystem? I haven't seen that anywhere.
 

Takuro

macrumors 6502a
Jun 15, 2009
584
274
I have two questions for you:

1. Is it possible for you to reenable SIP and SSV after flushing the icon cache? I presume is isn't because you mention that "the System Volume will not longer by bootable on computers that have [them] enabled"? But what if I enable booting into unsigned volumes? Would it be possible then?

No, you need to keep SIP and SSV disabled forever so long as the system volume has been modified. I'm not sure what you mean by "enable booting into unsigned volumes". Isn't that the same as disabling SIP and SSV?

1. How do you revert back to an old snapshot that was made before making changes to the filesystem? I haven't seen that anywhere.
My best understanding of it this -- macOS has takes a snapshot of the system volume for recovery purposes so if something were to go wrong during a macOS update, it can roll back if needed. If the macOS update is successful, then the changes get committed to the snapshot, and that snapshot is used as the basis for creating a live system volume at each subsequent boot of the computer. I don't think it's like Time Machine where it has super granular snapshots of multiple versions of previous states of the disk.
 

zzzachi

macrumors regular
Jun 16, 2012
231
111
Hi...
I updated my Catalina to BigSur and now unknown files are displayed as folders.
ie. if i create a new file with % touch ~/Desktop/test --> test shows as folder
neither clearing the icon cache nor rebuilding the launch services database helped here ... :rolleyes:
does anybody have an idea how to fix this ?

EDIT : it was one bloody little tool.
after removal and rebuilding the launchservices database all is ok again.
 
Last edited:

Babasse

macrumors newbie
Feb 23, 2021
3
0
I decided to make a shell script to help automate the modification of application icons and folder icons. Let me know how it works, and I'll fix any issues via best effort.


Source code:
Bash:
#!/bin/bash

echo "+---------------------------+"
echo "| Big Sur Icon Changer v1.0 |"
echo "+---------------------------+"

echo ""
echo "Root password will be required. To enable root user, see:"
echo "https://support.apple.com/en-us/HT204012"
echo ""

IS_CSRUTIL_DISABLED=$(csrutil status | egrep -oh '(en|dis)abled')
IS_AUTH_ROOT_DISABLED=$(csrutil authenticated-root status | egrep -oh '(en|dis)abled')

if [ $IS_CSRUTIL_DISABLED == 'enabled' ] || [ $IS_AUTH_ROOT_DISABLED == 'enabled' ]
then
  echo "ERROR: In order to proceed, you must boot into Recovery Mode and enter the following in Terminal, then reboot back to macOS:"
  echo ""
  echo "  csrutil disable"
  echo "  csrutil authenticated-root disable"
  echo ""
  echo "Your current settings are:"
  echo ""
  echo "  csrutil disable $IS_CSRUTIL_DISABLED"
  echo "  csrutil authenticated-root $IS_AUTH_ROOT_DISABLED"
  echo ""
  echo "Exiting..."
  exit 1
fi

echo "What do you want to change?"
echo "  [1] System Application Icons"
echo "  [2] Folder Icons"
echo ""

printf "[1/2]: "
read selection

if [ $selection != '1' ] && [ $selection != '2' ]
then
  echo ""
  echo "Invalid Selection. Exiting..."
  exit 1
fi

mkdir -p /tmp/mount
ROOT_DISK=$(mount | head -1 | egrep -oh '/dev/disk[0-9]s[0-9]')
TMP_MOUNT=$(df -h /tmp/mount | egrep -oh '/dev/disk[0-9]s[0-9]')


if [ $ROOT_DISK == $TMP_MOUNT ]
then
  echo ""
  echo "System Volume at $ROOT_DISK is already mounted to /tmp/mount. Skipping..."
  echo ""
else
  echo ""
  echo "Mounting System Volume at $ROOT_DISK to /tmp/mount..."
  sudo mount -o nobrowse -t apfs $ROOT_DISK /tmp/mount
  echo ""
fi

if [ $selection == '1' ]
then
  echo "Opened a Finder window to System Applications. You can now customize icons either by:"
  open /tmp/mount/System/Applications/
  echo ""
  echo "  1) Right clicking an app, \"Get Info\", and drag a replacement icon"
  echo ""
  echo "  -- or --"
  echo ""
  echo "  2) Right clicking an app, \"Show Package Contents\" > \"Contents\" > \"Resources\", and replace \"AppIcon.icns\""
  echo ""
fi

if [ $selection == '2' ]
then
  echo "Opened a Finder window to Assets.car. To change folder icons, edit it using ThemeEngine, available here:"
  echo "  https://github.com/alexzielenski/ThemeEngine/releases/tag/1.0.0(111)"
  open /tmp/mount/System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/Resources/
  echo ""
fi

read -n 1 -s -r -p "When you're done making changes, press any key to continue..."

echo ""
echo ""

echo "WARNING: By committing these changes, the System Volume will not longer by bootable on computers that have SIP (System Integrity Production) or SSV (Signed System Volume) checks enabled. This script has determined that both are currently disabled. Do you wish to continue?"
echo ""

printf "[Y/N]: "
read selection

if [ $selection == 'Y' ] || [ $selection == 'y' ] || [ $selection == 'Yes' ] || [ $selection == 'yes' ]
then
  echo ""
  echo "Creating a new snapshot to write changes to disk..."
  sudo bless --folder /tmp/mount/System/Library/CoreServices --bootefi --create-snapshot
  echo "Flushing the icon cache..."
  sudo rm -rfv /Library/Caches/com.apple.iconservices.store > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm -rf {} \; > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \; > /dev/null 2>&1
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Please reboot your computer for changes to take effect."
else
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Cancelling changes..."
fi
Merci pour ce script il fonctionne très bien
I decided to make a shell script to help automate the modification of application icons and folder icons. Let me know how it works, and I'll fix any issues via best effort.


Source code:
Bash:
#!/bin/bash

echo "+---------------------------+"
echo "| Big Sur Icon Changer v1.0 |"
echo "+---------------------------+"

echo ""
echo "Root password will be required. To enable root user, see:"
echo "https://support.apple.com/en-us/HT204012"
echo ""

IS_CSRUTIL_DISABLED=$(csrutil status | egrep -oh '(en|dis)abled')
IS_AUTH_ROOT_DISABLED=$(csrutil authenticated-root status | egrep -oh '(en|dis)abled')

if [ $IS_CSRUTIL_DISABLED == 'enabled' ] || [ $IS_AUTH_ROOT_DISABLED == 'enabled' ]
then
  echo "ERROR: In order to proceed, you must boot into Recovery Mode and enter the following in Terminal, then reboot back to macOS:"
  echo ""
  echo "  csrutil disable"
  echo "  csrutil authenticated-root disable"
  echo ""
  echo "Your current settings are:"
  echo ""
  echo "  csrutil disable $IS_CSRUTIL_DISABLED"
  echo "  csrutil authenticated-root $IS_AUTH_ROOT_DISABLED"
  echo ""
  echo "Exiting..."
  exit 1
fi

echo "What do you want to change?"
echo "  [1] System Application Icons"
echo "  [2] Folder Icons"
echo ""

printf "[1/2]: "
read selection

if [ $selection != '1' ] && [ $selection != '2' ]
then
  echo ""
  echo "Invalid Selection. Exiting..."
  exit 1
fi

mkdir -p /tmp/mount
ROOT_DISK=$(mount | head -1 | egrep -oh '/dev/disk[0-9]s[0-9]')
TMP_MOUNT=$(df -h /tmp/mount | egrep -oh '/dev/disk[0-9]s[0-9]')


if [ $ROOT_DISK == $TMP_MOUNT ]
then
  echo ""
  echo "System Volume at $ROOT_DISK is already mounted to /tmp/mount. Skipping..."
  echo ""
else
  echo ""
  echo "Mounting System Volume at $ROOT_DISK to /tmp/mount..."
  sudo mount -o nobrowse -t apfs $ROOT_DISK /tmp/mount
  echo ""
fi

if [ $selection == '1' ]
then
  echo "Opened a Finder window to System Applications. You can now customize icons either by:"
  open /tmp/mount/System/Applications/
  echo ""
  echo "  1) Right clicking an app, \"Get Info\", and drag a replacement icon"
  echo ""
  echo "  -- or --"
  echo ""
  echo "  2) Right clicking an app, \"Show Package Contents\" > \"Contents\" > \"Resources\", and replace \"AppIcon.icns\""
  echo ""
fi

if [ $selection == '2' ]
then
  echo "Opened a Finder window to Assets.car. To change folder icons, edit it using ThemeEngine, available here:"
  echo "  https://github.com/alexzielenski/ThemeEngine/releases/tag/1.0.0(111)"
  open /tmp/mount/System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/Resources/
  echo ""
fi

read -n 1 -s -r -p "When you're done making changes, press any key to continue..."

echo ""
echo ""

echo "WARNING: By committing these changes, the System Volume will not longer by bootable on computers that have SIP (System Integrity Production) or SSV (Signed System Volume) checks enabled. This script has determined that both are currently disabled. Do you wish to continue?"
echo ""

printf "[Y/N]: "
read selection

if [ $selection == 'Y' ] || [ $selection == 'y' ] || [ $selection == 'Yes' ] || [ $selection == 'yes' ]
then
  echo ""
  echo "Creating a new snapshot to write changes to disk..."
  sudo bless --folder /tmp/mount/System/Library/CoreServices --bootefi --create-snapshot
  echo "Flushing the icon cache..."
  sudo rm -rfv /Library/Caches/com.apple.iconservices.store > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm -rf {} \; > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \; > /dev/null 2>&1
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Please reboot your computer for changes to take effect."
else
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Cancelling changes..."
fi
Hi Takuro this script is very good thanks for the job !!!

 

Babasse

macrumors newbie
Feb 23, 2021
3
0
Hi I managed to change all the icons except the calendar, would you have a solution? Thank
 

Attachments

  • Capture d’écran 2021-02-23 à 17.50.05.jpg
    Capture d’écran 2021-02-23 à 17.50.05.jpg
    170.6 KB · Views: 186
Sep 28, 2020
40
11
Oi eu consegui mudar todos os ícones exceto o calendário, você teria uma solução? Obrigado
You have to change these two folders

/Volumes/BIGSUR Volume/System/Applications/Calendar.app/Contents/Resources/
/Volumes/ BIGSUR Volume/System/Library/PrivateFrameworks/CalendarUIKit.framework/Versions/A/Resources
 

Attachments

  • Screenshot 2020-12-05 at 17.14.13.png
    Screenshot 2020-12-05 at 17.14.13.png
    1.5 MB · Views: 317

Babasse

macrumors newbie
Feb 23, 2021
3
0
You have to change these two folders

/Volumes/BIGSUR Volume/System/Applications/Calendar.app/Contents/Resources/
/Volumes/ BIGSUR Volume/System/Library/PrivateFrameworks/CalendarUIKit.framework/Versions/A/Resources
Thanks for your response how change icon ? I don't understand thanks
 

Attachments

  • Capture d’écran 2021-03-01 à 18.46.55.png
    Capture d’écran 2021-03-01 à 18.46.55.png
    705.9 KB · Views: 269
  • Capture d’écran 2021-03-01 à 18.48.10.png
    Capture d’écran 2021-03-01 à 18.48.10.png
    1 MB · Views: 171
Sep 28, 2020
40
11
I decided to make a shell script to help automate the modification of application icons and folder icons. Let me know how it works, and I'll fix any issues via best effort.


Source code:
Bash:
#!/bin/bash

echo "+---------------------------+"
echo "| Big Sur Icon Changer v1.0 |"
echo "+---------------------------+"

echo ""
echo "Root password will be required. To enable root user, see:"
echo "https://support.apple.com/en-us/HT204012"
echo ""

IS_CSRUTIL_DISABLED=$(csrutil status | egrep -oh '(en|dis)abled')
IS_AUTH_ROOT_DISABLED=$(csrutil authenticated-root status | egrep -oh '(en|dis)abled')

if [ $IS_CSRUTIL_DISABLED == 'enabled' ] || [ $IS_AUTH_ROOT_DISABLED == 'enabled' ]
then
  echo "ERROR: In order to proceed, you must boot into Recovery Mode and enter the following in Terminal, then reboot back to macOS:"
  echo ""
  echo "  csrutil disable"
  echo "  csrutil authenticated-root disable"
  echo ""
  echo "Your current settings are:"
  echo ""
  echo "  csrutil disable $IS_CSRUTIL_DISABLED"
  echo "  csrutil authenticated-root $IS_AUTH_ROOT_DISABLED"
  echo ""
  echo "Exiting..."
  exit 1
fi

echo "What do you want to change?"
echo "  [1] System Application Icons"
echo "  [2] Folder Icons"
echo ""

printf "[1/2]: "
read selection

if [ $selection != '1' ] && [ $selection != '2' ]
then
  echo ""
  echo "Invalid Selection. Exiting..."
  exit 1
fi

mkdir -p /tmp/mount
ROOT_DISK=$(mount | head -1 | egrep -oh '/dev/disk[0-9]s[0-9]')
TMP_MOUNT=$(df -h /tmp/mount | egrep -oh '/dev/disk[0-9]s[0-9]')


if [ $ROOT_DISK == $TMP_MOUNT ]
then
  echo ""
  echo "System Volume at $ROOT_DISK is already mounted to /tmp/mount. Skipping..."
  echo ""
else
  echo ""
  echo "Mounting System Volume at $ROOT_DISK to /tmp/mount..."
  sudo mount -o nobrowse -t apfs $ROOT_DISK /tmp/mount
  echo ""
fi

if [ $selection == '1' ]
then
  echo "Opened a Finder window to System Applications. You can now customize icons either by:"
  open /tmp/mount/System/Applications/
  echo ""
  echo "  1) Right clicking an app, \"Get Info\", and drag a replacement icon"
  echo ""
  echo "  -- or --"
  echo ""
  echo "  2) Right clicking an app, \"Show Package Contents\" > \"Contents\" > \"Resources\", and replace \"AppIcon.icns\""
  echo ""
fi

if [ $selection == '2' ]
then
  echo "Opened a Finder window to Assets.car. To change folder icons, edit it using ThemeEngine, available here:"
  echo "  https://github.com/alexzielenski/ThemeEngine/releases/tag/1.0.0(111)"
  open /tmp/mount/System/Library/PrivateFrameworks/IconFoundation.framework/Versions/A/Resources/
  echo ""
fi

read -n 1 -s -r -p "When you're done making changes, press any key to continue..."

echo ""
echo ""

echo "WARNING: By committing these changes, the System Volume will not longer by bootable on computers that have SIP (System Integrity Production) or SSV (Signed System Volume) checks enabled. This script has determined that both are currently disabled. Do you wish to continue?"
echo ""

printf "[Y/N]: "
read selection

if [ $selection == 'Y' ] || [ $selection == 'y' ] || [ $selection == 'Yes' ] || [ $selection == 'yes' ]
then
  echo ""
  echo "Creating a new snapshot to write changes to disk..."
  sudo bless --folder /tmp/mount/System/Library/CoreServices --bootefi --create-snapshot
  echo "Flushing the icon cache..."
  sudo rm -rfv /Library/Caches/com.apple.iconservices.store > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.dock.iconcache -exec rm -rf {} \; > /dev/null 2>&1
  sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \; > /dev/null 2>&1
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Please reboot your computer for changes to take effect."
else
  sudo umount -f /tmp/mount > /dev/null 2>&1
  echo ""
  echo "Cancelling changes..."
fi
Works well 👍 thanks
 

emoopo

macrumors newbie
Jan 4, 2013
27
11
Germany
Hello everybody,
Changing System Folder and App Icons very easy with IconChamp also Theming System going easy with the PaintCan Plugin MacForge and the Color. But not all in the Theme can chance.
greetings from Germany

Monosnap 2021-03-27 19-16-22.png
Monosnap 2021-03-27 19-24-12.png
 
Sep 28, 2020
40
11
Today there are several ways to change the system icons, but we always have to create a new snapshot, the problem after that is no longer possible to update the BigSur version, just re-download it from the app store and install it. Can someone update after creating a new snapchat?
 

allan.nyholm

macrumors 68020
Nov 22, 2007
2,317
2,574
Aalborg, Denmark
You have to change these two folders

/Volumes/BIGSUR Volume/System/Applications/Calendar.app/Contents/Resources/
/Volumes/ BIGSUR Volume/System/Library/PrivateFrameworks/CalendarUIKit.framework/Versions/A/Resources
Hvad about the DockTile.plugin? Is that no longer required to be changed?

Ahh, I see - you previously mentioned Assets.car file. :)
 

DocC_too

macrumors newbie
May 29, 2021
1
0
Takuro:

Thanks for all your hard work and that great shell script.

I don't know if it's just me or has the last Big Sur update (macOS 11.4 (20F71)) blocked your fix?

Yesterday, I ran the shell script to make some changes to some of the Apple apps, and afterwards I couldn't reboot. On startup the Apple logo would appear, then disappear and a circle slash would show up with an URL for startup problems.

I had to reinstall Big Sur from Recovery mode to get my system working again.

A bit later my curiosity got the better of me and I started tinkering again. I copied and pasted each line of the script one by one, changed the apple apps, and worked my way through the process. All went well until the command:

sh-3.2# sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \;

after which I got the response:

find: /private/var/folders//zz/zyxvpxvq6csfxvn_n0000000000000/C/com.apple.iconservices: No such file or directory find: /private/var/folders//8w/f4ml7fcn4sj0xp7gw9f8glp40000gn/C/com.apple.iconservices: No such file or directory

When I rebooted, I got the same result as before, and had to restore again.

I don't know if it was because I was using the Z Shell, not bash or the system has been changed and your process no longer works.

Suggestions are welcome.
 
Sep 28, 2020
40
11
Takuro:

Thanks for all your hard work and that great shell script.

I don't know if it's just me or has the last Big Sur update (macOS 11.4 (20F71)) blocked your fix?

Yesterday, I ran the shell script to make some changes to some of the Apple apps, and afterwards I couldn't reboot. On startup the Apple logo would appear, then disappear and a circle slash would show up with an URL for startup problems.

I had to reinstall Big Sur from Recovery mode to get my system working again.

A bit later my curiosity got the better of me and I started tinkering again. I copied and pasted each line of the script one by one, changed the apple apps, and worked my way through the process. All went well until the command:

sh-3.2# sudo find /private/var/folders/ -name com.apple.iconservices -exec rm -rf {} \;

after which I got the response:

find: /private/var/folders//zz/zyxvpxvq6csfxvn_n0000000000000/C/com.apple.iconservices: No such file or directory find: /private/var/folders//8w/f4ml7fcn4sj0xp7gw9f8glp40000gn/C/com.apple.iconservices: No such file or directory

When I rebooted, I got the same result as before, and had to restore again.

I don't know if it was because I was using the Z Shell, not bash or the system has been changed and your process no longer works.

Suggestions are welcome.
for me it works fine on 11.4
 

iSquirrelu

macrumors member
Nov 9, 2012
45
10
Brisbane, Australia
I have been using the script from Takuro, ver 1.0. I use it on all Beta updates and I am on the latest 11.5 beta with no problems at all. I boot from Root user and all is fine.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.