17

Note: This question is about the background image for the login screen (what you see before you log in), not the desktop wallpaper, which can still be changed by going to: System Preferences » Desktop & Screen Saver » Desktop.

In previous versions of macOS, I believe it was possible to change the background image of the login screen by replacing the default in /Library/Desktop Pictures/.

However, it appears that the default background image for Catalina’s login screen is /System/Library/Desktop Pictures/Catalina.heic

Since /System/Library/Desktop Pictures/ is part of the read-only system partition, there appears to be no way to change the image which appears as the background before you log in.

If anyone knows of a way around that, please let us know.

Tested version “Catalina Public Beta 7”:

ProductName:    Mac OS X
ProductVersion: 10.15
BuildVersion:   19A546d

Update 2019-10-05:

Unfortunately there's no permalink for this (it's currently at https://www.koingosw.com/products/macpilot/ under "Version History" but that will change as soon as the next version is released) but the MacPilot folks also agree that there is no way to do this in Catalina:

MacPilot Release Notes Version 11.0.3

The current version of Catalina is the "GM" before the official release.

Note:

Personally I don’t consider “Disable SIP” to be a viable solution for something as trivial as a background image.

However, it appears that there is no other way to do this than to, at least temporarily, disable SIP.

11 Answers 11

12

Here's a simplified version of what you need to do (thanks to user3439894):

  1. Put an image you want to use as login background somewhere in your file system (I used my Downloads folder in this example).
  2. Reboot your Mac holding Cmd+R to boot into Recovery OS.
  3. Open Terminal from the Utilities menu on the menu bar.
  4. Backup/Rename Catalina.heic to e.g. Catalina.original.heic in /Volumes/Macintosh\ HD/System/Library/Desktop\ Pictures/, e.g.:

    cd  /Volumes/Macintosh\ HD/System/Library/Desktop\ Pictures
    mv Catalina.heic Catalina.original.heic
    
  5. Copy your desired image: cp /Volumes/Macintosh\ HD\ -\ Data/Users/[short_user_name]/Downloads/[image_from_step_1].jpg /Volumes/Macintosh\ HD/System/Library/Desktop\ Pictures/Catalina.heic
    • Note you can replace the destination path in the above command with just ./Catalina.heic as you should already be in the target directory if you performed the previous step to backup the original file.
  6. Reboot into normal mode.
  7. Change any option in System Preferences > Users & Groups > Login Options to change the cached image.
10
  • Hi and welcome! when should one re-enable SIP?
    – anki
    Oct 3 '19 at 19:39
  • 1
    @ankii On catalina, SIP re-enables itself each and every restart (or that’s what the public documentation says so far). If v8vb can indicate which build of Catalina this works on, it might help others as well.
    – bmike
    Oct 5 '19 at 22:56
  • 2
    I'm on Catalina 10.15 Beta (19A582a) and I've successfully changed my login background using the steps outlined. You need to disable SIP just to get access to the file system. If it re-enables automatically then step 7 is not required I guess. If for some reason changing the login background didn't work for you, try changing any option in System Preferences -> Users & Groups -> Login Options. It doesn't matter which one and you can change it back immediately. This might help to invalidate the cached image.
    – v8vb
    Oct 6 '19 at 11:45
  • 3
    I do not have macOS 10.15; however, if the e.g Macintosh HD is automatically mounted RW when booted to the Recovery HD, then you shouldn't have to disable SIP and just copy the new target file into place after renaming Catalina.heic to e.g. Catalina.heic.bak. Then reboot back to normal mode. Obviously the target, when booted to the Recovery HD, is in e.g. '/Volumes/Macintosh HD/System/Library/Desktop Pictures/ not /System/Library/Desktop Pictures/. Oct 6 '19 at 20:05
  • 1
    If you have FileVault enabled: Before step 3, in Recovery mode, open Disk Utility, select Macintosh HD, and click Mount. It'll ask for your password and then mount the disk. You can now follow from step 3. [cc @evolutionxbox, in case you still need it :)]
    – Dogbert
    Aug 6 '20 at 16:42
4

I have been successful in changing the Catalina login wallpaper and have (easy) instructions below that I think will help. I compiled these instructions from several others, so I deserve no credit for this.

Find the wallpaper/picture you want to use as the new login wallpaper, copy it to an easy to find location (like the desktop), and rename it Catalina.heic

  1. Boot into recovery mode by holding down Command R when booting the computer (hold down Command R until you see the Apple logo)

  2. When in recovery mode, click on the top drop down menu "Utilities" and launch Terminal

  3. In terminal, type the following command and press Return:

    csrutil disable
    

    This turns off System Integrity Protection

  4. Restart your Mac

  5. Launch Terminal and enter the following command:

    sudo mount -t apfs -wu /dev/disk1s5 /Volumes
    

    Replace disk1s5 with the identifier for your system partition (you can find this in Disk Utility by clicking Info with the partition selected, then looking next to BSD device node). You’ll need to enter your password.

  6. In Terminal, enter the following command:

    sudo mount -wu /; killall Finder
    
  7. Using the Finder, navigate to Macintosh HD > System > Library->Desktop Pictures and right click (Command Click) to rename Catalina.heic to Catalina.orig.heic (be careful and make sure you pick the correct one, there are a lot of “Catalina” pictures/files).

  8. Copy (drag) Catalina.heic from your desktop into Macintosh HD > System > Library->Desktop Pictures

  9. To get the Login to use it, we update the preboot in Terminal, enter the following command:

    diskutil apfs updatePreboot /
    
  10. Reboot – you should now see the new login wallpaper.

  11. The system folders will be back to the copy protected state but SIP wont be turned back on by default when you reboot. To turn that back on, follow step 1. and 2. Than in terminal, type the following command and press Return:

    csrutil enable
    
  12. Reboot.

  13. To check if it is enabled go to Apple Logo > About This Mac > System Report > Software. Here you should see the entry: System Integrity Protection: Enabled

1
  • Are you being sarcastic by calling this an easy process just to change the background image? Apple made it a complicated process isn't it? Of course, you have explained this complicated process in a clear manner which I agree Jun 3 '20 at 21:29
2

It is possible!

To add to user3439894’s excellent instructions above: with FileVault enabled in 10.15, I had to also run diskutil apfs updatePreboot / to get the changes to “stick” on the FileVault (EFI) faux-login screen.

This writes a bunch of /System/Library/Caches/com.apple.corestorage/EFILoginLocalizations/*.efires files, which seem to be the login preferences—like for example, the lock message text. These would not update for me, despite other folks suggesting editing/toggling them in the System Preferences UI. updatePreboot made them change on the next restart.

This worked for the background image and the lock message text. However the FileVault/EFI login still ignores the “Display login window as: Name and password” option, unfortunately. Baby steps.

2

To change Catalina login screen, please bear in mind the following:

  1. The intro login screen (when you login after a restart)
  2. The log out screen (When you select Log Out)
  3. The lock screen (When you select Lock Screen)

I know, this may sound confusing (bear with me for a second).

In theory, everything is simple. All you need to do is replace the proper image in the appropriate location and you are done.

Step one (i.e. the intro login screen) is kind of difficult because it requires you to jump through extra hoops because of a feature known as SIP aka System Integrity protection, which will make it hard for you to change system files even if you are an administrator

Let's start with Step 3 working our way to Step 1.

Step 3 (Changing the lock screen)

Changing the lock screen is a breeze. All you have to do is change your desktop background image and voila.

To verify this do:

Ctrl + Command + Q

Step 2 (Changing the logout screen)

Type the following to launch Spotlight:

Command + Space

Then type of the following to navigate the log out folder mac will be looking for the log out image:

/System/Caches/

Note: If Spotlight does not open the folder, do it using Finder (Shift + Command + G).

From this folder, you may or may not have another sub folder named Desktop Pictures. If you do not have it, create a folder with that name in there.

Inside the Desktop Pictures folder, you need to have another sub-folder associated with your account which goes by the name of your UUID (universally unique identifier). To know this information (i.e your UUID) do the following:

System Preferences > Users & Group > On the Left Hand Pane Right Click on Your current user > Choose Advanced in the pop-up menu > Copy Your UUID from there

Create a sub-folder inside the Desktop Pictures and rename it exactly the same as your UUID (be sure to leave to trailing or leading spaces)

From there, you only need to paste an image inside that folder named lockscreen.png

To verify this, logout and you should see the picture you previously had chosen. Sometimes, you may need to go to Preference > Login Items > Select Something. This re-initiates the caching mechanism.

Step 3 (Changing the intro login screen i.e. when you login after a restart)

In theory, all you need to do is something similar to step 2 without the UUID part.

Using Spotlight (or Finder Shift + Command + G) navigate to that folder by doing the following:

/System/Library/Desktop Pictures/

Note the keyword System in front of that path. Meaning Mac OS doesn't know which account you are going to use.

All you need to do here is change the Catalina.heic image in that location to your own.

The problem is, SIP (System Integrity Protection) will not let you change anything, therefore you are stuck with a lonely rocky island pic.

To fix this, you are going to reboot into recovery mode (Steps can only be found using this article https://discussions.apple.com/thread/250713266). While restarting your computer, hold the following command until you get a recovery mode screen (You'll know when you are in recovery mode because the login screen differ from the standard one):

Command + R

Launch the Terminal application while in recovery mode

Utilities > Terminal

Disable SIP using the terminal

csrutil disable

From there, you can simply copy and paste the image you wanted inside the System Desktop Pictures folder.

In Spotlight (or Finder Shift + Command + G), navigate to:

/System/Library/Desktop Pictures/

Rename the Catalina.heic image to Catalina.heic.bak and copy and paste your new image renamed as Catalina.heic inside that same folder.

At this point, you are done. To confirm this, restart your computer. Bear in mind you will need to re-enable SIP. To do so, restart your computer and hold Control + R until you get to Recovery Mode and launch the terminal as you once did, and type:

csrutil enable

That's all folks. At this point, you controlled 100% any background image on your Mac OS X Catalina.

1

Reinstall macOS Catalina (this also works for Mojave too!)

The problem disappears when the setup of macOS has executed again.

After the setup process everything is the same, but from now the selected wallpaper of the user account is visible in the login window before user logs in.

1

You can find below the easiest way to change your lock-screen picture on MacOs Catalina:

  1. System Preferences > Security&Privacy > make sure FileVault is off.
  2. System Preferences > User&Groups > Right Click on User after you unlocked settings > Advanced Options > Copy UUID
  3. Go > Library/Caches > Make New Folder and rename to Desktop Pictures > Right click on the folder > Get info > Below where Sharing&Permissions is > make the admin read&write.
  4. Open the new folder named Desktop Pictures > Make another folder and name paste the UUID as the folder's name > Get info on the new folder > make admin read&write as well.
  5. Reboot mac.
  6. Acces Library/Caches/ Desktop Pictures/ UUID folder > change picture with anything you want.
  7. Reboot computer.
0

Macintosh HD/Library/Caches/Desktop Pictures/<folder with a bunch of numbers and letters>/

Copy and paste the image of your choosing into the folder with a bunch of numbers and letters. Then right click image > get info > click LOCKED.

Hope this helps!!!

1
  • 1
    I would not do as you suggested, either replacing this file or setting it to Locked, as /Library/Caches/Desktop Pictures/${UUID}/lockscreen.png is dynamically generated based off of the default Lock Screen Image, in this case Catalina.heic, and if Dynamic is set in System Preferences > Desktop > This desktop picture changes through the day. IMO The best thing to do, in this case is to rename Catalina.heic, at its default location to e.g. Catalina.original.heic and copy the desired image to Catalina.heic. Then you do not cripple the aforementioned feature. Oct 8 '19 at 23:49
0

You can run this command: "mount -uw /" This allows to get out of 'readonly' file system error until the next time you reboot (it turns back into read-only)

1
  • Please explain how this answers the OP's question? It doesn't appear that your answer is related to the question that was asked.
    – fsb
    Dec 14 '19 at 6:36
0

How To Change The Lock Screen

1) Select or create an image and name it: Catalina.heic

2) Go to: Finder > Applications > Utilities > Disk Utility a) Select Macintosh HD b) Click on Info c) Read BSD device node (mine says disk1s1)

3) Shutdown computer

4) Restart computer – holding down the [command] + [R] keys until it boots

5) Select admin account and enter in the password

6) Click on utilities and open Terminal

7) Enter: csrutil disable and press return – you have now disabled the integrity

8) Restart computer

9) Go to: Finder > Applications > Utilities > Terminal

10) Enter: sudo mount -t apfs -wu /dev/[system ID]/Volumes

11) Enter: sudo mount -wu /; killall Finder

12) Go to: Finder > Go > Go to Folder

13) Enter: /System/Library/Desktop Pictures

14) Select image: Catalina.heic and rename it: old.Catalina.heic

15) Drag=and-drop the image you named: Catalina.heic into the open folder

16) Go to: Finder > Applications > Utilities > Terminal

17) Enter: diskutil apfs updatePreboot /[system ID] and wait for it to finish

18) Close all open windows

19) Shutdown computer

20) Restart computer – holding down the [command] + [R] keys until it boots

21) Select admin account and enter in the password

22) Click on utilities and open Terminal

23) Enter: csrutil enable and press return – you have now enabled the integrity

24) Restart computer

1
  • Please experiment and learn how to use the editing icons, especially the one that makes numbered lists readable. Thanks.
    – WGroleau
    Apr 29 '20 at 17:45
0

Alternative (unsafe) Solution

First, it is required to disable csrutil from terminal in recovery mode.

After restart, you have to mount your system partition with write-permissions with

sudo mount -t apfs -wu /dev/disk1s5 /Volumes

and

sudo mount -wu /; killall Finder 

now... go to your Desktop and open your Terminal.

  • Navigate to your Desktop:
cd ~/Desktop
  • Create a new File:
touch update_my_login_wallpaper.sh
  1. Open the File with:
nano update_my_login_wallpaper.sh
  1. Add the following code:
#!/usr/bin/env bash

cwp=$(osascript -e 'tell app "finder" to get posix path of (get desktop picture as alias)')
echo "Updating DefaultDesktop.heic symlink to:" $cwp
ln -sf "$cwp" /System/Library/CoreServices/DefaultDesktop.heic

  1. Hit CTRL + X then Y and ENTER to safe and exit.

  2. Add the execution flag to the script with:

chmod +x update_my_login_wallpaper.sh

Finally, you can now call this script if wish to update your login wallpaper with:

sudo sh ~/Desktop/update_my_login_wallpaper.sh

Note: Without any warranty! I recommend to save the symlink under /System/Library/CoreService before.

Only works for default wallpapers in /Library/Desktop Pictures

0

Install Onyx, there's this option! You have just to disable SIP as explained.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .