CHROMIUM: chromium repository files

Adds DIR_METADATA OWNERS PRESUBMIT.cfg and README.chromium to the
branch.

BUG=b:341299858
TEST=none

Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/4855494
Auto-Submit: Daniel Campello <campello@chromium.org>
Commit-Queue: Rishabh Agrawal <rishabhagr@chromium.org>
Commit-Queue: Daniel Campello <campello@chromium.org>
Reviewed-by: Rishabh Agrawal <rishabhagr@chromium.org>
Tested-by: Daniel Campello <campello@chromium.org>
(cherry picked from commit a2c5539f5b4397092c4bf3d7a8338c7cc26cd917)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/4922545
Reviewed-by: Benson Leung <bleung@google.com>
Reviewed-by: Kyle Williams <kdgwill@chromium.org>
Tested-by: Rishabh Agrawal <rishabhagr@chromium.org>
(cherry picked from commit 7ee68c2d21501d35eef4063c2b6d6544e1d4408f)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5001725
Tested-by: Niko Tsirakis <ntsirakis@google.com>
Commit-Queue: Niko Tsirakis <ntsirakis@google.com>
(cherry picked from commit 75b3e060086c3c2e50d912c06d7dcf50d5e90bba)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5076126
(cherry picked from commit cef14f4363199d44f0e7fc5ceeb0841630acd36d)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5162489
(cherry picked from commit 35004380b5568c80b050df81937548242a488b7a)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5322361
Reviewed-by: Daniel Campello <campello@chromium.org>
(cherry picked from commit 8949692e6e9b38e73649253dffd0bebc292f0cca)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5373600
Auto-Submit: Stefan Adolfsson <sadolfsson@chromium.org>
Tested-by: Stefan Adolfsson <sadolfsson@chromium.org>
Tested-by: Kyle Williams <kdgwill@chromium.org>
Commit-Queue: Stefan Adolfsson <sadolfsson@chromium.org>
(cherry picked from commit aaff2f4f11bbe257024ab6e21100c7492ac635b9)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5466221
Auto-Submit: Rishabh Agrawal <rishabhagr@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
(cherry picked from commit 93ded9f40e2fc15bbb3d79a81d4ac7e438d07ded)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5544578
Change-Id: Ic561a98853176a82e1d6d28a97513d7ceaefe365
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/fwupd/+/5633955
4 files changed
tree: e21e19505bf785b7ebe67455d070acd415a09e54
  1. .circleci/
  2. .github/
  3. .tx/
  4. contrib/
  5. data/
  6. docs/
  7. generate-build/
  8. libfwupd/
  9. libfwupdplugin/
  10. plugins/
  11. po/
  12. policy/
  13. src/
  14. subprojects/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitconfig
  20. .gitignore
  21. .gitmodules
  22. .markdownlint.json
  23. .pre-commit-config.yaml
  24. CODE_OF_CONDUCT.md
  25. COMMITMENT
  26. CONTRIBUTING.md
  27. COPYING
  28. DIR_METADATA
  29. MAINTAINERS
  30. meson.build
  31. meson_options.txt
  32. OWNERS
  33. PRESUBMIT.cfg
  34. README.chromium
  35. README.md
  36. RELEASE
  37. SECURITY.md
README.md

fwupd

Build Status CodeQL Coverity Scan Build Status Fuzzing Status CircleCI

This project aims to make updating firmware on Linux automatic, safe, and reliable.

Additional information is available at the website.

Where to get help?

  • GitHub issues & discussions in this repository
  • Libera IRC channel #fwupd. You can join through Libera's IRC or via the IRC bridge on Matrix.

Compiling

See Building and Debugging for how to build the fwupd development environment.

NOTE: In most cases, end users should not compile fwupd from scratch; it‘s a complicated project with dozens of dependencies (and as many configuration options) and there’s just too many things that can go wrong.

Users should just have fwupd installed and updated by their distro, managed and tested by the package maintainer. The distribution will have also done some testing with how fwupd interacts with other software on your system, for instance using GNOME Software.

Installing fwupd using Snap or using Flatpak might be useful to update a specific device on the command line that needs a bleeding edge fwupd version, but it should not be considered as a replacement to the distro-provided system version.

Using Tartan

Tartan is a LLVM static analysis plugin built to analyze GLib code. It can be installed and then run using:

mkdir build-tartan
CC=clang meson ../
SCANBUILD=../contrib/tartan.sh ninja scan-build

LVFS

This project is configured by default to download firmware from the Linux Vendor Firmware Service (LVFS).

This service is available to all OEMs and firmware creators who would like to make their firmware available to Linux users.

You can find more information about the technical details of creating a firmware capsule in the hardware vendors section of the fwupd website.

Basic usage flow (command line)

If you have a device with firmware supported by fwupd, this is how you can check for updates and apply them using fwupd's command line tools.

# fwupdmgr get-devices

This will display all devices detected by fwupd.

# fwupdmgr refresh

This will download the latest metadata from LVFS.

# fwupdmgr get-updates

If updates are available for any devices on the system, they'll be displayed.

# fwupdmgr update

This will download and apply all updates for your system.

  • Updates that can be applied live will be done immediately.
  • Updates that run at bootup will be staged for the next reboot.

You can find more information about the update workflow in the end users section of the fwupd website.

Reporting status

fwupd will encourage users to report both successful and failed updates back to LVFS. This is an optional feature, but encouraged as it provides valuable feedback to LVFS administrators and OEM developers regarding firmware update process efficacy.

The privacy policy regarding this data can be viewed on the lvfs readthedocs site.

To report the status of an update, run:

# fwupdmgr report-history

Only updates that were distributed from the LVFS will be reported to the LVFS.

Enterprise use

The flow of updates can be controlled in the enterprise using the “approved updates” feature. This allows the domain administrator to filter the possible updates from a central server (e.g. the LVFS, or a mirror) to only firmware that have been tested specifically in your organization.

The list of approved updates can be enabled by adding ApprovalRequired=true to the remote configuration file, e.g. lvfs.conf. Once enabled, the list of approved updates can be set in fwupd.conf using a comma-delimited list.

For example:

ApprovedFirmware=foo,bar

Where foo,bar refers to the container checksums that would correspond to two updates in the metadata file.

Additionally, the list of approved firmware can be supplemented using fwupdmgr set-approved-firmware baz or using the D-Bus interface.

Other frontends

fwupdmgr is a command line client, but various additional graphical frontends are enumerated in the fwupdmgr man page.