16

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.

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.
| improve this answer | |
  • Hi and welcome! when should one re-enable SIP? – anki Oct 3 '19 at 19:39
  • You can switch it back on right after changing the image. – v8vb Oct 4 '19 at 7:29
  • 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/. – user3439894 Oct 6 '19 at 20:05
3

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

| improve this answer | |
  • 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 – firstpostcommenter Jun 3 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.

| improve this answer | |
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.

| improve this answer | |
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!!!

| improve this answer | |
  • 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. – user3439894 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)

| improve this answer | |
  • 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

| improve this answer | |
  • Please experiment and learn how to use the editing icons, especially the one that makes numbered lists readable. Thanks. – WGroleau Apr 29 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

| improve this answer | |
-1

you need to backup that image and then select and size a different image. Rename the new image to the old image's name and copy into that folder. Better instructions are given here. This works on Mojave and it may work on Catalina.

You may need to use the sudo command from the terminal to copy the files to the proper folder.

| improve this answer | |
  • 3
    "I assume it works on Catalina" is not a safe assumption, because Catalina puts system files as part of a Read Only partition. That's the reason that old instructions no longer work. – TJ Luoma Oct 3 '19 at 18:58

You must log in to answer this question.

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