VirtualBox – disabling automatic update notifications

"A new version of $application is available, please update now. Rainbows and Unicorns await!"

Seeing this when you launch an application is the scourge of anyone who manages Macs in a lab environment. Hours of my life have been wasted spent trying to disable or otherwise suppress this stuff. Some apps set this as a preference using Apple’s CFPreferences API (developers – this is how you should do it!), making it a case of just finding the appropriate key(s) and managing things with a Configuration Profile. If they use the Sparkle framework, then Allister Banks’ Extinguish script makes it even easier to manage the updates away. Other apps decide to do their own thing. Be it for cross-platform compatibility or another reason. VirtualBox, a free and awesome hypervisor, is one of our trickier customers.

If you’ve ever installed VirtualBox, you’ll know it’s frequently updated, and it checks for new versions on launch, displaying an informative message when one is available. Not ideal. And if we poke around in the Preferences dialog, we see it can be disabled:

Update Pref.png

VirtualBox stores preferences in its own XML file located here:

~/Library/VirtualBox/VirtualBox.xml

Take a peek inside, and the first thing you see is this:

** DO NOT EDIT THIS FILE.
** If you make changes to this file while any VirtualBox related application
** is running, your changes will be overwritten later, without taking effect.
** Use VBoxManage or the VirtualBox Manager GUI to make changes.

Enter VBoxManage

VBoxManage is a command line tool that can do anything and everything with VirtualBox. There’s a whole chapter devoted to it in the manual, here. It’s fantastic and you can use it to automate loads of things. Anyway, we’re interested in using its setextradata command. Do read that section of the chapter – it’s really informative, although it doesn’t tell us what the actual preference we want to set is. Unticking that Check for Update box, then peeking into the VirtualBox.xml file gives the game away:

update xml pref.png

Setting the preference with VBoxManage is just a case of running this as the current logged in user:

/usr/local/bin/vboxmanage setextradata global GUI/UpdateDate never

I couldn’t find a way to set preferences for VirtualBox globally (i.e. at the computer level), so I do it for each user individually. Not great, but something we can still automate and make happen when each user logs in. Please drop a comment below if you know how to set this at the computer level.

So, use your favourite tool to run this command at login, in the context of the current user. Here’s the script I use in a Jamf Pro login policy, which I scope to a Smart Group that only contains Macs with VirtualBox installed:

So, user logs in, command runs, VirtualBox nags no more. This all happens silently and you get to feel like a ninja.

Happy manual-updating!

Advertisements

Author: n.martin

Managing 450-odd Macs at a university, innit.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s