Developers

Getting the code

The latest fwupd code is always available at GitHub and this is also the place to file bugs or feature requests. You can trivially get the code by doing:

$ git clone https://github.com/hughsie/fwupd.git

You can also install all the required dependencies using:

$ sudo dnf install docbook-utils gettext intltool libgudev1-devel \
                   colord-devel polkit-devel libgcab1-devel \
                   sqlite-devel gpgme-devel fwupdate-devel libsoup-devel

Architecture

The 'client' which is typically gnome-software or fwupdmgr interacts with the daemon using D-DBus using PolicyKit. The daemon has no network access and only acts as the mechanism for clients.

architecture-plan
fwupd is implemented as a D-Bus activated service that is autostarted when required.

Plugins

Although we already support many different methods of updating firmware we're happy to accept patches for vendor-specific protocols. The plugin loader requires the plugin to obtain the list of attached hardware and assign a model-specific GUID value to each device.