fwupd/src
Mario Limonciello d89bf61c0e trivial: fu-engine-helper: Add whitespace to motd
This matches the optional other lines that show updates.

Current experience:

```
Welcome to Ubuntu Focal Fossa (development branch) (GNU/Linux 5.4.0-12-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Multipass 1.0 is out! Get Ubuntu VMs on demand on your Linux, Windows or
   Mac. Supports cloud-init for fast, local, cloud devops simulation.

     https://multipass.run/
1 device has a firmware upgrade available.
Run `fwupdmgr get-upgrades` for more information.

10 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable

Last login: Thu Jan 16 21:00:01 2020 from 127.0.0.1
```

Updated experience:

```
Welcome to Ubuntu Focal Fossa (development branch) (GNU/Linux 5.4.0-12-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Multipass 1.0 is out! Get Ubuntu VMs on demand on your Linux, Windows or
   Mac. Supports cloud-init for fast, local, cloud devops simulation.

     https://multipass.run/

1 device has a firmware upgrade available.
Run `fwupdmgr get-upgrades` for more information.

10 updates can be installed immediately.
0 of these updates are security updates.
To see these additional updates run: apt list --upgradable

Last login: Thu Feb  6 16:29:12 2020 from 127.0.0.1
```
2020-02-07 11:52:50 +00:00
..
fuzzing Fuzz the SREC and IHEX file parsers once more 2019-10-02 16:28:28 +01:00
fu-agent.c Allow getting the list of updates in JSON format from fwupdagent 2020-01-14 12:25:41 +00:00
fu-config.c Move MOTD population into the daemon 2020-01-16 10:33:43 -06:00
fu-config.h Move MOTD population into the daemon 2020-01-16 10:33:43 -06: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 new device flag for indicating device won't come back 2019-10-12 14:07:34 -05: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 src: fu-engine: check version was updated by checking version 2020-01-22 16:23:18 -06:00
fu-engine.h trivial: Split up fu_engine_update_metadata() for future use 2020-01-17 16:33:07 +00:00
fu-firmware-dump.c trivial: Fix up some NULL/FALSE confusion 2019-11-01 13:55:32 +00:00
fu-history.c trivial: add missing gtk-doc fields for many files in src/ 2019-11-26 06:31:57 +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 trivial: Fix up some typos found using codespell 2020-01-14 12:25:41 +00:00
fu-install-task.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-keyring-gpg.c Allow signing and verifying data using a PKCS-7 self-signed client certificate 2019-03-11 13:57:39 +00:00
fu-keyring-gpg.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-keyring-pkcs7.c Relax the certificate time checks in the self tests for the legacy certificate 2019-08-01 10:09:58 +01:00
fu-keyring-pkcs7.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-keyring-result.c trivial: Mark GParamSpec values as static to reduce RSS 2018-11-14 15:32:55 +00:00
fu-keyring-result.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-keyring-utils.c Allow signing and verifying data using a PKCS-7 self-signed client certificate 2019-03-11 13:57:39 +00:00
fu-keyring-utils.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-keyring.c Allow signing and verifying data using a PKCS-7 self-signed client certificate 2019-03-11 13:57:39 +00:00
fu-keyring.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-main.c Shut down automatically when there is system memory pressure 2020-01-07 12:29:07 +00:00
fu-offline.c trivial: Set the offline trigger using an environment variable 2019-11-25 09:29:46 +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 trivial: Fix up some typos found using codespell 2020-01-14 12:25:41 +00:00
fu-progressbar.h trivial: Move progressbar out of libfwupdplugin 2019-11-27 08:18:02 -06:00
fu-remote-list.c fu-remote-list: emit a changed signal when modifying a remote 2020-01-08 11:57:11 -06:00
fu-remote-list.h Split out the remote loading from FuConfig 2019-12-10 21:40:31 +00:00
fu-self-test.c Allow applying all releases to get to a target version 2020-01-07 15:33:12 +00: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 Add 'refresh' to fwupdtool 2020-01-17 16:33:07 +00:00
fu-util-common.c fu-util: Discourage metadata refreshes more than once per day 2020-01-16 10:33:43 -06:00
fu-util-common.h fu-util: Discourage metadata refreshes more than once per day 2020-01-16 10:33:43 -06:00
fu-util.c Move MOTD population into the daemon 2020-01-16 10:33:43 -06: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 Move MOTD population into the daemon 2020-01-16 10:33:43 -06:00
org.freedesktop.fwupd.xml Add a new property Interactive to the daemon 2019-11-11 11:16:21 -06:00
README.md trivial: Add quirk documentation 2018-11-13 09:53:19 +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

UefiVersionFormat

Assigns the version format to use for a specific manufacturer. A specific version format is sometimes chosen to match the appearance of other systems or specifications.

  • Key: a %FU_HWIDS_KEY_MANUFACTURER, e.g. Alienware
  • Value: the version format, e.g. none
  • Supported values: none, use-triplet
  • Minimum fwupd version: 1.0.1

ComponentIDs

Assigns the version format to use for a specific AppStream component. A specific version format is sometimes chosen to match the appearance of other systems or specifications.

  • Key: the optionally wildcarded AppStream ID e.g. com.dell.uefi*.firmware
  • Value: the version format, e.g. none
  • Minimum fwupd version: 1.0.1

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.