Google Update Goes Open Source

Friday, April 10, 2009

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.