fwupd/src
Richard Hughes f6838c738a trivial: Add fu_udev_device_get_slot_depth()
We'll need this for another plugin soon.
2019-01-29 22:28:09 +00:00
..
fuzzing Parse the SMBIOS DMI table directly 2017-09-05 18:10:36 +01:00
fu-archive.c trivial: Allow loading archives ignoring the path 2018-11-30 12:18:37 +00:00
fu-archive.h trivial: Allow loading archives ignoring the path 2018-11-30 12:18:37 +00:00
fu-chunk.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-chunk.h trivial: Fix up some gtk-doc warnings 2018-09-04 08:22:39 -05:00
fu-common-cab.c Ensure cabinet archives always have a container checksum 2019-01-28 13:00:30 +00:00
fu-common-cab.h Port from libappstream-glib to libxmlb 2018-10-17 14:41:13 +01:00
fu-common-guid.c trivial: Check the GUID length before attempting to parse it 2018-12-18 08:33:12 +00:00
fu-common-guid.h Don't use AppStream-glib for the GUID helpers 2018-10-11 07:54:01 +01:00
fu-common-version.c Guess the version format when it is not provided 2018-11-14 11:52:46 +00:00
fu-common-version.h Guess the version format when it is not provided 2018-11-14 11:52:46 +00:00
fu-common.c nvme: Add flag to support manually aligning the firmware to the FWUG value 2019-01-16 13:14:50 +00:00
fu-common.h nvme: Add flag to support manually aligning the firmware to the FWUG value 2019-01-16 13:14:50 +00:00
fu-config.c trivial: Print some debugging when ignoring a remote path 2019-01-29 09:21:54 -06:00
fu-config.h Shut down the daemon after 2h of inactivity 2018-11-21 18:54:44 +00: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 Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-device-list.c trivial: Show a critical warning rather than crashing 2018-10-02 11:03:12 +01:00
fu-device-list.h Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01: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 Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-device-metadata.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-device-private.h trivial: Copy the parent if set for the repluged device 2018-09-07 15:32:32 +01:00
fu-device.c Sanitize the version if the version format has been specified 2018-12-05 07:07:35 -06:00
fu-device.h trivial: Allow calling fu_device_has_guid() with non-GUID text 2018-11-28 17:53:21 +00:00
fu-engine.c Add support for an UpdateMessage and display it in tools 2019-01-29 13:59:07 -06:00
fu-engine.h When using directory remote type automatically generate metadata 2019-01-29 09:21:54 -06:00
fu-hash.py Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
fu-history.c Correctly migrate the history database 2019-01-04 09:34:56 +00:00
fu-history.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-hwids.c trivial: Do not show all the HWIDs at daemon startup 2018-11-14 15:32:55 +00:00
fu-hwids.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-idle.c Shut down the daemon after 2h of inactivity 2018-11-21 18:54:44 +00:00
fu-idle.h Shut down the daemon after 2h of inactivity 2018-11-21 18:54:44 +00:00
fu-install-task.c Port from libappstream-glib to libxmlb 2018-10-17 14:41:13 +01:00
fu-install-task.h Port from libappstream-glib to libxmlb 2018-10-17 14:41:13 +01:00
fu-io-channel.c Add shared functionality for reading and writing with O_NONBLOCK 2018-12-06 14:07:02 +00:00
fu-io-channel.h Add shared functionality for reading and writing with O_NONBLOCK 2018-12-06 14:07:02 +00:00
fu-keyring-gpg.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-keyring-gpg.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-keyring-pkcs7.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-keyring-pkcs7.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +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 Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-keyring-utils.c Port from libappstream-glib to libxmlb 2018-10-17 14:41:13 +01:00
fu-keyring-utils.h Port from libappstream-glib to libxmlb 2018-10-17 14:41:13 +01:00
fu-keyring.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-keyring.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-main.c When generating a CAB Silo use the prefix "components" 2019-01-28 09:52:37 +00: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 Add FuMutex helper to make various parts of the daemon thread-safe 2018-09-12 16:10:38 +01:00
fu-plugin-list.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-plugin-list.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-plugin-private.h Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
fu-plugin-vfuncs.h Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
fu-plugin.c Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
fu-plugin.h Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00:00
fu-progressbar.c trivial: Correctly calculate the erase length for all locales 2018-11-30 15:56:28 +00:00
fu-progressbar.h trivial: Allow changing the progressbar title at runtime 2018-08-10 14:50:43 +01:00
fu-quirks.c Don't use AppStream-glib for the GUID helpers 2018-10-11 07:54:01 +01:00
fu-quirks.h trivial: Add quirk documentation 2018-11-13 09:53:19 +00:00
fu-self-test.c When using directory remote type automatically generate metadata 2019-01-29 09:21:54 -06:00
fu-smbios.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-smbios.h Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01: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 Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-tool.c Add support for an UpdateMessage and display it in tools 2019-01-29 13:59:07 -06:00
fu-udev-device-private.h trivial: Don't allow plugins to call fu_udev_device_emit_changed() 2018-09-06 16:22:46 +01:00
fu-udev-device.c trivial: Add fu_udev_device_get_slot_depth() 2019-01-29 22:28:09 +00:00
fu-udev-device.h trivial: Add fu_udev_device_get_slot_depth() 2019-01-29 22:28:09 +00:00
fu-usb-device-private.h Clarify what the platform ID actually is by renaming it 2018-09-06 16:22:46 +01:00
fu-usb-device.c Add more standard USB identifier GUIDs 2018-11-29 13:26:53 +00:00
fu-usb-device.h Use superclassed versions of FuDevice when calling udev_added() and usb_added() 2018-09-04 08:22:39 -05:00
fu-util-common.c fu-util/fu-tool: sync up reboot and shutdown behavior 2019-01-22 21:06:08 +00:00
fu-util-common.h fu-util/fu-tool: sync up reboot and shutdown behavior 2019-01-22 21:06:08 +00:00
fu-util.c Add support for an UpdateMessage and display it in tools 2019-01-29 13:59:07 -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 trivial: Fix a build issue when building with high -j values 2019-01-22 10:17:51 +00:00
org.freedesktop.fwupd.xml Show a console warning if loading an out-of-tree plugin 2019-01-19 07:26:20 +00: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.