Google Update Goes Open Source

Friday, April 10, 2009 at 12:29 PM

Keeping software up to date is very important. Not only does it mean that users will always have all the cool new features that we work so hard to develop; it also means that any bugs or security vulnerabilities can get fixed very quickly, everywhere that the software is installed. We're happy to let you know that we're sharing our updating software, Google Update, with everyone. Google Update is the shared infrastructure used by Google Chrome, Google Earth and other Google software on Microsoft Windows, to keep our products up to date on users computers.

We're releasing Google Update under its codename Omaha. Omaha's functionality allows us to automatically update software without interrupting or distracting the user, which makes for a better user experience. Omaha checks for updates in the background, when it won't interfere with the user, even if an application isn't running. Doing so means that we avoid using a computer's resources when it first starts, avoiding a common bottleneck in computer performance experience. Omaha does not perform updates when an application launches, because we understand people want to use the software when starting it up, not perform maintenance tasks first.

Use of Omaha allows us to add features seamlessly and address any bugs or security problems, all without concern that these updates will disrupt our users. Omaha allowed us to ship 12 versions of Chrome beta in 4 months, without requiring Chrome users to work hard to keep their browsers up to date. Such behavior is very useful for new features, but essential for security vulnerabilities. When software, particularly network-enabled software, has known vulnerabilities, it can become a platform for malware and/or spam distribution as described in this research paper. Keeping your software up to date can help other people too!

We're releasing the source code for Omaha in addition to recent enhancements to Omaha functionality, to provide both transparency and control around the update process. Since Google Update is always running on your system, there's no simple way to stop it, and since it's a fundamental part of the Google software that needs it, it's not explicitly installed. Some users can be surprised to find this program running, and at Google, we don't like disappointing our users. We've been working hard to address these concerns, and releasing the source code for Omaha is our attempt to make the purpose of Google Update totally transparent. Obviously, we understand that not everyone is both willing and able to read through our code, but we hope that those of you who do will confirm for the rest that Google Update's functionality serves well to keep your software up to date.

Finally, we also know that keeping software up to date is hard. So if you're thinking of developing your own auto-updater, or have already started, we hope that the code we are releasing today will be helpful to you! So far, Omaha supports many Google products for Windows, but there is no reason for it to only support Google products. We hope you'll find the source code and Developer Startup Guide useful, and we look forward to your feedback and participation in our Discussion Group.

12 comments:

Ethan Anderson said...

" Finally, we also know that keeping software up to date is hard. "

System > Admin > Update Manager
'check'
enter user password
'install updates'.

I think what you mean to say is that the Windows operating system lacks a comprehensive package management system, which makes things difficult for all those Developers, Developers, and Developers.

Schultzter said...

I totally agree with Ethan Anderson!

It's cool they released the source, but now every developer with a bit of time on their hands is going to install their version of GUpdater when you install their software.

What Google needs to do is open their system to allow others to update via GUpdater - with the usual disclaimers, etc.

andri said...

The ability to fetch software from a software repository has been available for GNU/Linux users for a while and most recently to mobile users.

I've long wondered why all these PC vendors have been filling our computers with different kind of update programs, eating our precious ram.

I was hoping Microsoft would implement something like this for their platform, but Google is probably the next best thing.

Sir.Nathan said...

I agree with Schultzter. Although there may be legal technicalities that might be tricky to work out, it would be more efficient. Having one updater as opposed to multiple similar updaters running seems to make more sense.

Maybe a good route to go would be Google Update "Snap-ons" to support new software. The idea being that when I install software X, it adds X's update support to Google update (or installs Google update if it doesn't exist.)

Thoughts or ideas?

Konstantin said...

I think what you mean to say is that the Windows operating system lacks a comprehensive package management system, which makes things difficult for all those Developers, Developers, and Developers.First try release some software for Linux yourself (at least 2 different distributions). Then talk about difficulties for Developers.

Omaha does not perform updates when an application launches, because we understand people want to use the software when starting it up, not perform maintenance tasks first.Oh. It's so big deal to show do-you-want-to-update dialog with don't-bother-me-again checkbox, then start updating in background. Try reading Apple Guidelines for UI. They have this topic covered very well.

Mo said...

Seriously, on Mac OS X, you guys should be using Sparkle (and nothing but). An always-on background process, along with the requirement that users supply administrative privileges to launch a Google application for the first time are the sort of application behaviours usually presented by Adobe and Microsoft. This really isn't a trend Google should be following.

Vadi said...

Well, Google already has a debian repository, so they do know how well thought-out for the developer is the updating process there.

TCV said...

I keep getting an error message that Google Update did not work. This happens every couple of hours. Any ideas on how to fix this?

Ray said...

Maybe a good route to go would be Google Update Snap-ons to support new software.

Say, good thing it's open source.

It sounds like you're volunteering.

Seven ALive said...

Not to spam, but there is already an open source program that can update any app, the developer just needs to add support. It works much like a package manager.

Check out seven update here:
http://sevenupdate.sourceforge.net

Ray said...

I previously commented that anyone that wants Google update to work for other apps can may it so, since it's open source now.

However, having looked at it further, Google update *already* supports arbitrary applications being updated. It's all configured purely through the registry (in Windows, anyway).

D X said...

Omaha does not perform updates when an application launches, because we understand people want to use the software when starting it up, not perform maintenance tasks first.

Why don't you let each user make his option? I don't really like people to decide what I want.