fwupd/src
Richard Hughes cce6a1cb5a Do not report transient failures
We don't need to report failures to do with AC or battery level to the LVFS.
2019-04-17 08:20:44 +08:00
..
fuzzing Parse the SMBIOS DMI table directly 2017-09-05 18:10:36 +01:00
fu-agent.c Add the fwupdagent binary for use in shell scripts 2019-03-06 13:15:55 +00:00
fu-archive.c trivial: Allow iterating over the contents of an archive 2019-02-01 10:25:20 +00:00
fu-archive.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-chunk.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-chunk.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-common-cab.c fu-common-cab: Correct handling of CAB files w/ nested directories and older libgcab 2019-02-07 20:56:57 +00:00
fu-common-cab.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-common-guid.c Export some of the GUID functionality 2019-02-04 15:19:57 +00:00
fu-common-guid.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-common-version.c Detect version number like RQR24.06_B0030 as 'plain' 2019-04-16 11:32:03 -04:00
fu-common-version.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-common.c Do not fail when scheduling more than one update to be run offline 2019-03-23 10:52:14 +00:00
fu-common.h trivial: Fix CI failure by using the correct enum type 2019-03-23 13:57:51 +00:00
fu-config.c Do not recreate XbSilo caches when running on a readonly filesystem 2019-03-07 08:28:36 -06:00
fu-config.h Do not recreate XbSilo caches when running on a readonly filesystem 2019-03-07 08:28:36 -06:00
fu-debug.c Fix a use-after-free when using valgrind and --immediate-exit 2018-11-13 17:15:38 +00:00
fu-debug.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-device-list.c Fix some typos spotted using codespell 2019-04-08 12:47:53 +01:00
fu-device-list.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-device-locker.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-device-locker.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-device-metadata.h uefi: Allow devices to create more complete fake UEFI devices 2019-02-12 06:28:51 -06:00
fu-device-private.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-device.c trivial: Copy the version format from donor devices 2019-04-09 08:31:45 +01:00
fu-device.h trivial: Add fu_device_set_firmware_size() 2019-03-21 10:31:35 +00:00
fu-engine.c Do not report transient failures 2019-04-17 08:20:44 +08:00
fu-engine.h trivial: Fix CI failure by using the correct enum type 2019-03-23 13:57:51 +00:00
fu-hash.py Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-history.c Recreate the history database if migration failed 2019-04-03 14:01:21 -04:00
fu-history.h Allow restricting firmware updates for enterprise use 2019-03-05 19:05:07 +00:00
fu-hwids.c Add fwupd_guid_from_string() to drop dep on uuid 2019-02-06 14:48:04 +00:00
fu-hwids.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-idle.c Shut down the daemon after 2h of inactivity 2018-11-21 18:54:44 +00:00
fu-idle.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-install-task.c Require --force to install a release with a different version format 2019-04-09 04:16:32 -04:00
fu-install-task.h Rename FwupdRelease:trust-flags to FwupdRelease:flags 2019-03-04 13:55:31 +00:00
fu-io-channel.c trivial: Fix several NULL/FALSE return mistakes 2019-03-11 13:17:55 +00:00
fu-io-channel.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06: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 Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-keyring-pkcs7.c trivial: Do not create the private key if _USE_CLIENT_CERT unset 2019-03-12 08:25:22 -05:00
fu-keyring-pkcs7.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06: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 Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06: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 Rename FwupdRelease:trust-flags to FwupdRelease:flags 2019-03-04 13:55:31 +00: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 Allow signing and verifying data using a PKCS-7 self-signed client certificate 2019-03-11 13:57:39 +00:00
fu-main.c Shut down the daemon if the on-disk binary is replaced 2019-03-27 09:54:06 -04:00
fu-mutex.c Add FuMutex helper to make various parts of the daemon thread-safe 2018-09-12 16:10:38 +01:00
fu-mutex.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-offline.c offline: Be more graceful when dealing with Plymouth failures 2019-03-25 14:18:30 -05:00
fu-plugin-list.c Fix some typos spotted using codespell 2019-04-08 12:47:53 +01:00
fu-plugin-list.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-plugin-private.h Save the new version in the history database for offline updates 2019-03-25 16:59:48 +00:00
fu-plugin-vfuncs.h Add optional vfuncs to allow detaching and attaching verify() 2019-03-19 20:25:26 +00:00
fu-plugin.c Fix some typos spotted using codespell 2019-04-08 12:47:53 +01:00
fu-plugin.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-progressbar.c trivial: fu-progressbar: Hide backspace characters when refreshing titles 2019-02-08 06:30:59 +00:00
fu-progressbar.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-quirks.c Add fwupd_guid_from_string() to drop dep on uuid 2019-02-06 14:48:04 +00:00
fu-quirks.h trivial: Add fu_device_set_firmware_size() 2019-03-21 10:31:35 +00:00
fu-self-test.c Detect version number like RQR24.06_B0030 as 'plain' 2019-04-16 11:32:03 -04:00
fu-smbios.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-smbios.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-test.c Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-test.h Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
fu-tool.c fu-tool: Port get-history command to fwupdtool 2019-04-03 14:37:25 -05:00
fu-udev-device-private.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-udev-device.c Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
fu-udev-device.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-usb-device-private.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-usb-device.c Add fu_device_add_instance_id() and prefer explicit conversion 2019-02-04 15:19:57 +00:00
fu-usb-device.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-util-common.c Add a component categories to express the firmware type 2019-04-04 17:35:02 -04:00
fu-util-common.h Add a component categories to express the firmware type 2019-04-04 17:35:02 -04:00
fu-util.c Fix some typos spotted using codespell 2019-04-08 12:47:53 +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 trivial: Make the self test logs less verbose 2019-03-25 14:18:30 -05:00
org.freedesktop.fwupd.xml Fix some typos spotted using codespell 2019-04-08 12:47:53 +01: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.