Revving software with Update Engine

Monday, September 29, 2008 at 4:25 PM



We ship a wide variety of Mac software ranging from simple Cocoa applications that anyone can use to sophisticated ones that require admin privileges. The complicated requirements of each application, combined with the need to occasionally update more than one at a time, made for a tall order. We realized that we were not the only ones facing these issues, so in true Google fashion, we set out to build a solution that we could open-source for everyone to use.

So today, we're announcing Update Engine, a Mac OS X framework that can help developers keep their software up-to-date. Update Engine can update all the usual suspects, like Cocoa apps, preference panes, and screen savers. But it can also update oddballs like arbitrary files, and even things that require root—like kernel extensions. On top of that, it can update multiple products as easily as it can update one.

In most cases, programmers can make use of Update Engine simply by using one of the sample command-line programs called EngineRunner. However, if you need more control over the update process, you can use the Objective-C API directly and link with the provided framework.

A couple of us engineers decided to take a break from the code for a bit and try our hands at movie-making. We came up with two demos for Update Engine: The first one gives an overview of Update Engine, and the second presents an orientation of the source and shows a "Hello Engine" example. We had fun, but I think we'll keep our day jobs.

Update Engine Overview