System preferences software update badge

nkarafo

macrumors member
Oct 18, 2015
55
7
Hello. I have installed BBEdit and I opened file com.apple.dock.plist. I found the part where the dock-extra for system preferences is (close to end) but what changes do I have to make?
I found this:
<key>bundle-identifier</key>
<string>com.apple.systempreferences</string>
<key>dock-extra</key>
<true/>
<key>file-data</key>
<dict>
<key>_CFURLString</key>
<string>file:///Applications/System%20Preferences.app/</string>
<key>_CFURLStringType</key>
<integer>15</integer>
</dict>

Thank you!
 

mpainesyd

macrumors 6502a
Nov 29, 2008
642
156
Sydney, Australia
Is there a way to get rid of the red badge on the system-preferences icon that reminds me of the Catalina update?

Edit: I tried "sudo softwareupdate --ignore 'macOS Catalina'" and the update is being ignored but the badge still stays.
Today’s (28 May 2020) security update for Mojave has brought back the nagging. I have run the softwareupdate Terminal command again and it doesn’t seems to work any more. Bizarrely (or should that be annoyingly) the Terminal command responds with:
" Ignoring software updates is deprecated. The ability to ignore individual updates will be removed in a future release of macOS."

Grrr!
 
  • Like
Reactions: B4U

Patrice Brousseau

macrumors member
Dec 14, 2016
39
13
Montréal, Canada
I will live with the badge as I want to be warned if there is anything else related to software update. Unless someone find another way than modifying com.apple.dock.plist.

I had a second partition where I didn’t made the previously working modification and it wasn’t a big deal.
 

davidlv

macrumors 65816
Apr 5, 2009
1,289
30
Kyoto, Japan
Today’s (28 May 2020) security update for Mojave has brought back the nagging. I have run the softwareupdate Terminal command again and it doesn’t seems to work any more. Bizarrely (or should that be annoyingly) the Terminal command responds with:
" Ignoring software updates is deprecated. The ability to ignore individual updates will be removed in a future release of macOS."
Grrr!
Again, this does work, albeit it is temporary.
1) QUIT System Preferences
2) in terminal run:
sudo softwareupdate --ignore "macOS Catalina"
3) in terminal run:
defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier
4) in terminal run:
softwareupdate --list

For me, the badge disappeared immediately after step 4

Several people found that the "sudo softwareupdate --ignore "macOS Catalina" " command produced " Ignoring software updates is deprecated. "
But, issue the rest of the commands above, the red badge will disappear until you run the Check for updates again.
It may well be necessary to edit the com.apple.dock.plist file as explained above in post #76 (which required a complete re-setup of everything in my dock the last time I tried that! No big deal actually, just wasn't expecting it.)
 
Last edited:

bogdanw

macrumors 65816
Mar 10, 2009
1,050
532
I will live with the badge as I want to be warned if there is anything else related to software update.
You will still be notified about software updates in the Notification centre.
But, issue the rest of the commands above, the red badge will disappear until you run the Check for updates again.
You don't need all that, the badge can be removed until the next check with
Code:
defaults delete com.apple.systempreferences AttentionPrefBundleIDs; killall Dock
 

kohlson

macrumors 68020
Apr 23, 2010
2,367
701
For me this is yet another Apple Flag that is conditioning me to ignore them. "iCloud Storage is Full." "15 Apps Need Updating" (since yesterday).
 
  • Like
Reactions: Nozgog

MJedi

macrumors 6502a
Dec 16, 2010
790
202
Is there a way to run the terminal commands on startup? Or a one-click script?
 

bogdanw

macrumors 65816
Mar 10, 2009
1,050
532
Is there a way to run the terminal commands on startup? Or a one-click script?
Open /Applications/Utilities/Script Editor.app, copy-paste the code and save it as an app.
AppleScript:
do shell script "defaults delete com.apple.systempreferences AttentionPrefBundleIDs; killall Dock"
I don't think running it at startup is particularly useful, as software update might take some time before checking for updates.
 
  • Like
Reactions: MJedi

MJedi

macrumors 6502a
Dec 16, 2010
790
202
Open /Applications/Utilities/Script Editor.app, copy-paste the code and save it as an app.
AppleScript:
do shell script "defaults delete com.apple.systempreferences AttentionPrefBundleIDs; killall Dock"
I don't think running it at startup is particularly useful, as software update might take some time before checking for updates.
Thanks! But I should've clarified that I wanted to run the following commands at startup:
sudo softwareupdate --ignore "macOS Catalina"

defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier

softwareupdate --list
I don't know if it's possible to run this without entering an admin password though.

As for running at startup, I was thinking of a way to run these commands after an update that requires a restart. But I see your point that macOS checks updates on its own so the badge will eventually come back.
 

bogdanw

macrumors 65816
Mar 10, 2009
1,050
532
Thanks! But I should've clarified that I wanted to run the following commands at startup:
As explained in the previous page, the command sudo softwareupdate --ignore "macOS Catalina" is useless in the current version of Mojave.
The code I posted deletes the badge until software update checks for updates again.
 

MacUser2525

macrumors 68000
Mar 17, 2007
1,999
310
Canada
Thanks! But I should've clarified that I wanted to run the following commands at startup:


I don't know if it's possible to run this without entering an admin password though.

As for running at startup, I was thinking of a way to run these commands after an update that requires a restart. But I see your point that macOS checks updates on its own so the badge will eventually come back.
If you want to be able to run the software update command then put it in the /etc/sudoers file. Allowing access without a password an example below in my file for the ZFS file system I have in mine. You need to use the second command I show to edit the file properly as it needs to be locked so no other process can access it while you make changes. In vi the program used when editing you hit the I key to insert text then the ESC key to exit the insert mode, to save once out of insert mode a :wq then enter key will write then quit the file.

Code:
MacUser2525:~$ sudo cat /etc/sudoers 


Password:


# sudoers file.


#


# This file MUST be edited with the 'visudo' command as root.


# Failure to use 'visudo' may result in syntax or file permission errors


# that prevent sudo from running.


#


# See the sudoers man page for the details on how to write a sudoers file.


#





# Host alias specification





# User alias specification





# Cmnd alias specification





# Defaults specification


Defaults    env_reset


Defaults    env_keep += "BLOCKSIZE"


Defaults    env_keep += "COLORFGBG COLORTERM"


Defaults    env_keep += "__CF_USER_TEXT_ENCODING"


Defaults    env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"


Defaults    env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"


Defaults    env_keep += "LINES COLUMNS"


Defaults    env_keep += "LSCOLORS"


Defaults    env_keep += "SSH_AUTH_SOCK"


Defaults    env_keep += "TZ"


Defaults    env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"


Defaults    env_keep += "EDITOR VISUAL"


Defaults    env_keep += "HOME MAIL"





# Runas alias specification





# User privilege specification


root    ALL=(ALL) ALL


%admin    ALL=(ALL) ALL








# Added to allow ZFS commands without password


MacUser2525 ALL=(ALL) NOPASSWD: /usr/local/bin/zpool, /usr/local/bin/zfs











# Uncomment to allow people in group wheel to run all commands


# %wheel    ALL=(ALL) ALL





# Same thing without a password


# %wheel    ALL=(ALL) NOPASSWD: ALL





# Samples


# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom


# %users  localhost=/sbin/shutdown -h now


MacUser2525:~$ sudo visudo

For the path to use in the edit of the file.
Code:
MacUser2525:~$ locate softwareupdate | grep /sbin


/usr/sbin/softwareupdate
 

bogdanw

macrumors 65816
Mar 10, 2009
1,050
532
If you want to be able to run the software update command then put it in the /etc/sudoers file.
No matter how you run it, it will produce no effect on macOS Mojave with Security Update 2020-003.
ignore.jpg

"Major new releases of macOS are no longer hidden when using the softwareupdate(8) command with the --ignore flag
This change also affects macOS Mojave and macOS High Sierra after installing Security Update 2020-003."
https://support.apple.com/en-us/HT210642
 

alphascorp

macrumors regular
Jul 16, 2018
205
341
Brest, France
Hi all,
Following the modification made by Apple by the 2020-003 update and especially the depreciation of "softwareupdate --ignore"

The temporary solution to get rid of the red badge after each update search (with the appearance of the notification for Catalina) is here: #18,478

The workaround so that the Catalina notification no longer appears during an automatic update search or through system preferences is here: #18,496

EDIT: I think SIP must be disabled in order to replace the system file. (mine is permanently disabled so I didn't have to disable it)
 
Last edited:

bogdanw

macrumors 65816
Mar 10, 2009
1,050
532
The workaround so that the Catalina notification no longer appears during an automatic update search or through system preferences is here: #18,496
Without any intention of disrespect, I am not going to replace the SoftwareUpdate.framework on my system with one provided by someone on the Internet.
 

alphascorp

macrumors regular
Jul 16, 2018
205
341
Brest, France
Without any intention of disrespect, I am not going to replace the SoftwareUpdate.framework on my system with one provided by someone on the Internet.
Hi @bogdanw
No problem for that, I understand, in this case, everyone can find the file "SoftwareUpdate.framework"

First solution:
Copy the file from a system 10.14.6 build 4032 not updated to build 5033.

Second solution:
Install 10.14.6 build 18G103 on an external drive, update it to Security Update 2020-002 build 18G4032
Go to this external drive in the /System/Library/PrivateFrameworks/ folder and copy the "SoftwareUpdate.framework" file to reinject it into your system (build 18G5033).

Third solution:
Restore the framework from a Time Machine.
Thanks to @franciscodavid for this clarification, in order to check the correct version of the system go and have a look at the "SystemVersion.plist" file in /System/Library/CoreServices/ (in Time Machine...)
You must have:
...
<key>ProductBuildVersion</key>
<string>18G4032</string>
...

Other solutions exist, but they're a little more complicated...
 
Last edited:

alphascorp

macrumors regular
Jul 16, 2018
205
341
Brest, France
SoftwareUpdate.framework can be extracted directly from Security Update 2020-002 (Mojave) https://support.apple.com/kb/DL2035
It's probably worth making it into an installable package, as you would have to reinstall it after every Mojave update.
No the Framework extracted from SecUpd2020-002Mojave.pkg is not complete and will not work I tested it, it is only 1.6Mb and contains only 9 elements.
(Maybe this could work only by merging the framework extracted from SecUpd2020-002 with the existing one, it would only replace the upgraded files ... but I did not test, it seemed simpler and safer to use a framework of Mojave build 18G4032 and not yet updated to 18G5033)

Capture d’écran 2020-06-01 à 20.25.58.png

Capture d’écran 2020-06-01 à 20.27.50.png


The complete file needed is 6.6MB and contains 58 elements

Capture d’écran 2020-06-01 à 20.21.47.png

Capture d’écran 2020-06-01 à 20.29.33.png

On the other hand, the Framework extracted from the installer of Mojave 10.14.6 build 103 is complete, it is 6.6Mb and it also contains 58 elements.
Although it has been updated since (with the build 18G1012, 18G2022, 18G3020 and 18G4032), I only tested it on MBP5,3 which was completely up to date and didn't get the notification from Catalina.
 
Last edited:

alphascorp

macrumors regular
Jul 16, 2018
205
341
Brest, France
Although is not complete, it works.
View attachment 920685
Without --ignore "macOS Catalina" it's showing Catalina.
Good News!

I'm surprised that the incomplete file works with you, for me I got an error message from Software Update Prefpane.

I totally agree with you, we still have to use the command:
Code:
sudo softwareupdate --ignore "macOS Catalina"
as we did up to now.
 

Westside guy

macrumors 603
Oct 15, 2003
5,659
2,810
The soggy side of the Pacific NW
I wrote a script which I can run from the command line whenever this problem recurs. The name of the script is die_catalina_die:

Code:
#!/bin/sh

#
#   Latest attempts to circumvent Apple's nagging to upgrade a perfectly
#   functional computer to the hot mess known as Catalina.
#
#   References: https://tinyapps.org/blog/202005070700_remove_catalina_notification_badge.html
#               https://lapcatsoftware.com/articles/software-update.html
#
#
#   Changelog: Initial script written  2020-05-28
#
#
#

sudo softwareupdate --ignore "macOS Catalina"
defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier
softwareupdate --list
 

camelia

macrumors 6502
Apr 3, 2015
392
45
Mexico City
I wrote a script which I can run from the command line whenever this problem recurs. The name of the script is die_catalina_die:

Code:
#!/bin/sh

#
#   Latest attempts to circumvent Apple's nagging to upgrade a perfectly
#   functional computer to the hot mess known as Catalina.
#
#   References: https://tinyapps.org/blog/202005070700_remove_catalina_notification_badge.html
#               https://lapcatsoftware.com/articles/software-update.html
#
#
#   Changelog: Initial script written  2020-05-28
#
#
#

sudo softwareupdate --ignore "macOS Catalina"
defaults delete com.apple.preferences.softwareupdate LatestMajorOSSeenByUserBundleIdentifier
softwareupdate --list
Hello Catalina Killer 🤣🤣

Ok for newbies, I have to open a New TextEdit file

Copy your code

Then How to save the text file? in order to convert it from .txt to script file?

Thanks

Camelia
 

Taz Mangus

macrumors 601
Mar 10, 2011
4,203
654
Hello Catalina Killer 🤣🤣

Ok for newbies, I have to open a New TextEdit file

Copy your code

Then How to save the text file? in order to convert it from .txt to script file?

Thanks

Camelia
The code is a shell script. TextEdit->Format->Make Plain Text. Before you run it I suggest you run the following in Terminal, then you can run it by simply double-clicking on it from Finder.
Code:
chmod 755 die_catalina_die
 
Last edited:

Westside guy

macrumors 603
Oct 15, 2003
5,659
2,810
The soggy side of the Pacific NW
Then How to save the text file? in order to convert it from .txt to script file?
@Taz Mangus gave a good answer.

The thing about shell scripts is... the file extension (.txt or whatever) is pretty much irrelevant. What matters is that the script is marked as executable (per Taz's comment about "chmod 755" in his post)*. Some people like to change the extension to something like ".sh" just to make it clear it's a shell script, which is fine - but I don't bother. My shell scripts usually don't have an extension in their names, just because that's how people generally do things in Linux/Unix.

*Well, that and the very first line in the script - the "#!/bin/sh" entry, which defines which command will be used to interpret and execute it. Scripts in other languages have a different entry there - a perl script would have #!/usr/bin/perl, python would have #!/usr/bin/python, and so on.
 
Last edited:
  • Like
Reactions: camelia

camelia

macrumors 6502
Apr 3, 2015
392
45
Mexico City
The code is a shell script. TextEdit->Format->Make Plain Text. Before you run it I suggest you run the following in Terminal, then you can run it by simply double-clicking on it from Finder.
Code:
chmod 755 die_catalina_die
@Taz Mangus gave a good answer.

The thing about shell scripts is... the file extension (.txt or whatever) is pretty much irrelevant. What matters is that the script is marked as executable (per Taz's comment about "chmod 755" in his post)*. Some people like to change the extension to something like ".sh" just to make it clear it's a shell script, which is fine - but I don't bother. My shell scripts usually don't have an extension in their names, just because that's how people generally do things in Linux/Unix.

*Well, that and the very first line in the script - the "#!/bin/sh" entry, which defines which command will be used to interpret and execute it. Scripts in other languages have a different entry there - a perl script would have #!/usr/bin/perl, python would have #!/usr/bin/python, and so on.
Very Good, But I did not understand anything....

Why do I have to run the terminal command?

Code:
chmod 755 die_catalina_die
How the terminal command would know the location of the .txt file?
I prefer using the extension ".sh" to make it clear it is a shell script

So the code above will be the same??

Thanks
Camelia
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.