Overview of open source software update tools based on the Omaha protocol

Overview of open source software update tools based on the Omaha protocol

[[134368]]

Once a piece of software is installed on a user's system, how do we keep it up to date? While Linux users often use package management systems to get the latest versions from selected repositories, users of other systems are often not so lucky. In view of this, we developed an open source tool to achieve this goal, which is based on the Omaha open source license from Google.

A few years ago, Google released an open source protocol called Omaha (also known as Google Update) as part of its Chromium project, which aims to help users complete the complex desktop software update process in an easier way.

At present, Omaha is mainly used in various Google products, such as Google Chrome or Google Earth. Its Google Update system mainly plays a role in the field of Windows software, aiming to realize the automatic update process; the Linux version of Google software still relies on the various package managers that come with the Linux distribution. The main advantage of Google Update is that the framework can be integrated into any software that needs to support automatic update functions, and has the ability to manage various new patches and updates from a single source (and collect error reports).

Google has released a generic client that supports the Omaha protocol. The server implementation of the client has not yet been released, and users need to use a basic version with basic common command support to integrate Google Update into their own software. The company I work for wants to help develop a custom Chromium-based browser, so we developed and released an open source version of its server so that potential users of the Google Update system will have full access to the process and can integrate the solution with their own software very smoothly.

In addition to the Omaha protocol, our implementation includes support for Sparkle, a popular update framework for Mac OS X software. We also integrate our implementation with an administrator panel to simplify version management, alpha and beta upgrades, and bug reporting tools.

We have been paying close attention to its deployment process and helping users set up a production or development environment with simple commands. In the end, we chose the open Docker platform, which not only makes the distribution process more flexible, but also allows users to run the image in an isolated environment on any given server. You can easily deploy it in any cloud environment.

To share the Omaha server with more people, we have developed a demo solution (click here) that includes more details, complete documentation, and examples shared through GitHub, and we are accepting project contributions from enthusiastic participants.

For this client, we forked Google's implementation to maintain compatibility with modern versions of Visual Studio and improve the user experience while integrating the process. However, according to Chromium's mass notification email, the Google client is still under development, so the system results are only applicable to internal environments, which means that the company will not release *** patches in the next few years. The current client version does not support some protocol functions, such as CodeRed (allowing users to restore the original version after a failed installation). The client version is also hosted in an independent library in GitHub, and all source code is released under the Apache 2.0 license.

We hope that our solution can simplify the daily work experience of open source enthusiasts and corporate customers, help everyone build their own infrastructure on Chromium OS or Chrmium browser, and bring a server/client solution chain suitable for production environments. In addition, you can also regard this system as an efficient update solution suitable for projects with more complex update processes.

<<:  Design idea: open source offline map application on Android platform

>>:  Touch Technology helps the completion of the "Xiamen Game Innovation Center Project"

Recommend

How to formulate an event operation strategy!

All operating systems and organizations are only ...

After technical people master these 11 tips, work will not be so tiring!

[[235091]] It is not uncommon for programmers to ...

Fragrant, smelly, and even fishy! Why do plants have smells?

It is the season of revival again. The air is fil...

How to create explosive video materials at 0 cost?

Tik Tok, all it lacks is some video material for ...

Weijing TV violent review: not as powerful as an idol

In the field of Internet TV, Whale can be said to...

Event operation: Review of the 0-cost poster fission event!

Here I would like to share with you a review of a...

Attention! my country will carry out its first mission to impact an asteroid →

Author: Shi Xiangqi and Li Chuanfu In the vast un...

Building an Android development environment under Linux

[[169961]] This article mainly introduces the con...

Why do we sneeze when we see bright light? | Science Museum

Have you ever seen this phenomenon: you are fine ...

Oil fumes cause lung cancer, cooking oil is crucial!

In China's long history of food cooking, fryi...

I understand that Apple Watch detects heart rate this way

Before Apple Watch actually reached consumers, Ap...

Why do cats always put their hands in their pockets?

Ever since we got a cat at home, there has been a...