fwupd/src
Richard Hughes 64ebf91124 Always enforce the metadata signature has a valid timestamp
Although this is something that we have always done on the LVFS, corporate
deployments that resign the firmware or metadata might not be signing the files
in the same way.

Always require a timestamp to prevent allowing an inadvertent rollback attack.
2020-05-29 13:24:29 +01:00
..
fuzzing Fuzz the SREC and IHEX file parsers once more 2019-10-02 16:28:28 +01:00
fu-agent.c trivial: Make --force wotk in fwupdagent 2020-05-17 20:32:23 +01:00
fu-config.c trivial: fu-config: Fix behavior for UpdateMotd key 2020-03-31 13:05:57 -05:00
fu-config.h Add a new daemon configuration option to control EnumerateAllDevices 2020-03-31 13:05:57 -05:00
fu-debug.c Add a --no-domain logging option 2019-10-01 10:46:09 -05:00
fu-debug.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-device-list.c Add a device quirk that forces an explicit device-id match 2020-04-17 21:48:59 +01:00
fu-device-list.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-engine-helper.c trivial: fu-engine-helper: Add whitespace to motd 2020-02-07 11:52:50 +00:00
fu-engine-helper.h Move MOTD population into the daemon 2020-01-16 10:33:43 -06:00
fu-engine.c Always enforce the metadata signature has a valid timestamp 2020-05-29 13:24:29 +01:00
fu-engine.h Export the report metadata on the D-Bus interface 2020-05-20 19:47:53 +01:00
fu-firmware-dump.c trivial: Fix up some NULL/FALSE confusion 2019-11-01 13:55:32 +00:00
fu-history.c Decouple the version format from the version itself 2020-02-25 14:00:09 +00:00
fu-history.h Always report the update-error correctly for multiple updates 2019-11-01 08:16:18 -05:00
fu-idle.c Use the correct unlocker when using GRWLock 2019-11-22 20:53:45 +00:00
fu-idle.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-install-task.c Allow devices to be updatable, but only when upgrading a proxy device 2020-04-18 14:39:43 +01:00
fu-install-task.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-keyring-utils.c trivial: Fix another merge-conflict remnant spotted by Coverity 2020-04-27 16:11:48 +01:00
fu-keyring-utils.h Use Jcat files in firmware archives and for metadata 2020-03-23 19:55:12 +00:00
fu-main.c Export the report metadata on the D-Bus interface 2020-05-20 19:47:53 +01:00
fu-offline.c Always check for PLAIN when doing vercmp() operations 2020-02-20 15:49:27 +00:00
fu-plugin-list.c Fix some typos spotted using codespell 2019-04-08 12:47:53 +01:00
fu-plugin-list.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-progressbar.c Reset the progressbar time estimate if the percentage is invalid 2020-04-17 21:49:24 +01:00
fu-progressbar.h trivial: Move progressbar out of libfwupdplugin 2019-11-27 08:18:02 -06:00
fu-remote-list.c Always return AppStream markup for remote agreements 2020-03-02 18:31:58 +00:00
fu-remote-list.h Split out the remote loading from FuConfig 2019-12-10 21:40:31 +00:00
fu-security-attr.c Revert "amt: Add a security attestation for provisioning" 2020-05-22 15:13:19 +01:00
fu-security-attr.h Allow client tools to translate the HSI attributes and results 2020-05-18 17:03:49 +01:00
fu-self-test.c Allow client tools to translate the HSI attributes and results 2020-05-18 17:03:49 +01:00
fu-systemd.c fu-systemd: Use correct method for stopping units. 2019-10-13 07:30:43 +01:00
fu-systemd.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-tool.c trivial: Remove the GError from fu_engine_get_host_security_attrs() 2020-05-18 11:24:50 +01:00
fu-util-common.c trivial: Fix the HSI warnings after some translator feedback. 2020-05-19 20:10:45 +01:00
fu-util-common.h Add support for the Host Security ID 2020-05-11 22:11:49 +01:00
fu-util.c Allow uploading security attributes to the LVFS 2020-05-21 11:48:09 +01:00
fwupd.gresource.xml Add initial build files and enough code to launch a simple D-Bus daemon 2015-02-26 18:16:40 +00:00
meson.build Allow client tools to translate the HSI attributes and results 2020-05-18 17:03:49 +01:00
org.freedesktop.fwupd.xml Export the report metadata on the D-Bus interface 2020-05-20 19:47:53 +01:00
README.md Allow server metadata to set the version format on some devices 2020-02-26 15:45:40 +00:00

Quirk use

Quirks are defined by creating an INI style file in the compiled in quirk location (typically /usr/share/fwupd/quirks.d).

The quirk is declared by creating a group based upon the DeviceInstanceId or GUID and then mapping out values to keys.

All plugins

All fwupd devices support the following quirks:

Plugin

Sets the plugin to use for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the plugin name, e.g. csr
  • Minimum fwupd version: 1.1.0

Flags

Assigns optional quirks to use for a 8bitdo device

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the quirk, e.g. is-bootloader
  • Supported values:
    • none: no device quirks
    • is-bootloader: device is in bootloader mode
  • Minimum fwupd version: 1.0.3

Summary

Sets a summary for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • the device summary, e.g. An open source display colorimeter
  • Minimum fwupd version: 1.0.2

Icon

Adds an icon name for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the device icon name, e.g. media-removable
  • Minimum fwupd version: 1.0.2

Name

Sets a name for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the device name, e.g. ColorHug
  • Minimum fwupd version: 1.0.2

Guid

Adds an extra GUID for a specific hardware device. If the value provided is not already a suitable GUID, it will be converted to one.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the GUID, e.g. 537f7800-8529-5656-b2fa-b0901fe91696
  • Minimum fwupd version: 1.0.3

CounterpartGuid

Adds an counterpart GUID for a specific hardware device. If the value provided is not already a suitable GUID, it will be converted to one. A counterpart GUID is typically the GUID of the same device in bootloader or runtime mode, if they have a different device PCI or USB ID. Adding this type of GUID does not cause a "cascade" by matching using the quirk database.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the GUID, e.g. 537f7800-8529-5656-b2fa-b0901fe91696
  • Minimum fwupd version: 1.1.2

ParentGuid

Adds an extra GUID to mark as the parent device. If the value provided is not already a suitable GUID, it will be converted to one.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the GUID, e.g. 537f7800-8529-5656-b2fa-b0901fe91696
  • Minimum fwupd version: 1.1.2

Children

Adds one or more virtual devices to a physical device. To set the object type of the child device use a pipe before the object type, for instance: FuRts54xxDeviceUSB\VID_0763&PID_2806&I2C_01 If the type of device is not specified the parent device type is used. If the values provided are not already suitable GUIDs, they will be converted.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: The virtual device, delimited by a comma
  • Minimum fwupd version: 1.1.2

Vendor

Sets a vendor name for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the vendor, e.g. Hughski Limited
  • Minimum fwupd version: 1.0.3

VendorId

Sets a vendor ID for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: the vendor, e.g. USB:0x123A
  • Minimum fwupd version: 1.1.2

Version

Sets a version for a specific hardware device.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: Version number, e.g. 1.2
  • Minimum fwupd version: 1.0.3

FirmwareSizeMin

Sets the minimum allowed firmware size.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: A number in bytes, e.g. 512
  • Minimum fwupd version: 1.1.2

FirmwareSizeMax

Sets the maximum allowed firmware size.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: A number in bytes, e.g. 1024
  • Minimum fwupd version: 1.1.2

InstallDuration

Sets the estimated time to flash the device

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: A number in seconds, e.g. 60
  • Minimum fwupd version: 1.1.3

VersionFormat

Sets the version format the device should use for conversion.

  • Key: the device ID, e.g. DeviceInstanceId=USB\VID_0763&PID_2806
  • Value: The quirk format, e.g. quad
  • Minimum fwupd version: 1.2.0

Plugin specific

Plugins may add support for additional quirks that are relevant only for those plugins. View them by looking at the README.md in plugin directories.

Example

Here is an example as seen in the CSR plugin.

[DeviceInstanceId=USB\VID_0A12&PID_1337]
Plugin = csr
Name = H05
Summary = Bluetooth Headphones
Icon = audio-headphones
Vendor = AIAIAI
[DeviceInstanceId=USB\VID_0A12&PID_1337&REV_2520]
Version = 1.2

Additional samples can be found in other plugins.