In 2007, Google built the Google Update engine to provide a common background automatic updater for all of its products on Windows, and released it to open source as the Omaha project. Today, the company has announced the third major release of Omaha which has now been released as open source.
Omaha 3 is already being used by Google Chrome, Google Talk, and other Windows applications.
The Omaha 3 code base can be used to replicate Google Update binaries, or it can be reused and tweaked by developers to create your own automatic updater for your software.
Major improvements in Omaha 3 include:
- A new API: Omaha 3 has a new state model that can be exposed via COM, allowing for finer control of the updating process and more detailed feedback from it. (It is backwards-compatible with the Omaha 2 'OnDemand' API as well.)
- Improved debugging: Omaha now generates far more detailed logs, which can be collected in the form of either text files or ETW events that can be collected using Sawbuck.
- Improved data collection and delivery: Pings for both successful and failed installs and updates are finer grained and easier to process. Omaha 3 can gracefully handle intermittent network connections as well; the results of an automatic update can be queued and re-sent at later dates.
- Machine-preferred installs: Omaha can now do elevation-optional installs, where it can attempt to install an application either per-machine or per-user and notify the installer of which mode to use. This allows you to deploy products that ship in both flavors using a single installer.
Developers who have used prior releases of Omaha should definitely check out the new release, which can be found at Google Code using the Apache License, Version 2.0.