fwupd/src
Mario Limonciello a61b4d88c9 trivial: fu-tool: Allow detach/attach to prompt for device
Makes using `fwupdtool detach` easier to use.
2019-10-22 09:12:26 -05:00
..
fuzzing Fuzz the SREC and IHEX file parsers once more 2019-10-02 16:28:28 +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 trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-chunk.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-chunk.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01: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 trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-common-guid.c Export some of the GUID functionality 2019-02-04 15:19:57 +00:00
fu-common-guid.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-common-version.c fu-engine: Read all releases and convert versions when comparing 2019-10-14 12:41:09 -05:00
fu-common-version.h fu-engine: Read all releases and convert versions when comparing 2019-10-14 12:41:09 -05:00
fu-common.c trivial: Add fu_common_read_uint16_safe() 2019-10-22 11:50:10 +01:00
fu-common.h trivial: Add fu_common_read_uint16_safe() 2019-10-22 11:50:10 +01:00
fu-config.c trivial: Fix a tiny memory leak when starting the daemon 2019-10-05 13:03:19 +01:00
fu-config.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01: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-device-locker.c trivial: Set a log domain for each file 2018-09-11 18:59:05 +01:00
fu-device-locker.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-device-metadata.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-device-private.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-device.c Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use 2019-10-17 14:06:27 +01:00
fu-device.h Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use 2019-10-17 14:06:27 +01:00
fu-dfu-firmware.c Add a generic DFU firmware object for plugins to use 2019-10-11 13:19:46 +01:00
fu-dfu-firmware.h Add a generic DFU firmware object for plugins to use 2019-10-11 13:19:46 +01:00
fu-engine.c fu-engine: Check multiple plugins if quirks match 2019-10-18 14:18:09 -05:00
fu-engine.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-firmware-common.c Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-firmware-common.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-firmware-dump.c Fuzz the SREC and IHEX file parsers once more 2019-10-02 16:28:28 +01:00
fu-firmware-image-private.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-firmware-image.c Allow a custom FuFirmwareImage->write() in superclassed objects 2019-10-15 08:10:11 -05:00
fu-firmware-image.h Allow a custom FuFirmwareImage->write() in superclassed objects 2019-10-15 08:10:11 -05:00
fu-firmware.c trivial: Add version to the FuFirmware->to_string() output 2019-10-21 18:03:07 +01:00
fu-firmware.h Add fu_firmware_set_version() 2019-10-21 10:35:01 -05:00
fu-hash.py Hash the source files when generating the daemon hash 2019-08-25 20:18:40 +01:00
fu-history.c fu-util/fu-tool: Better display historical information 2019-09-20 16:02:55 -05:00
fu-history.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-hwids.c Fix a crash when stopping the fwupd service 2019-08-01 13:00:51 +01:00
fu-hwids.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-idle.c Use the newer features of GRWLock rather than reinventing it 2019-06-12 15:20:27 +01:00
fu-idle.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-ihex-firmware.c Allow a custom FuFirmwareImage->write() in superclassed objects 2019-10-15 08:10:11 -05:00
fu-ihex-firmware.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-install-task.c Never guess the version format from the version string 2019-04-30 09:25:41 +01:00
fu-install-task.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-io-channel.c trivial: Add fu_io_channel_write_byte_array() for future use 2019-09-16 11:36:59 +01:00
fu-io-channel.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 Export the salted machine ID as a daemon property 2019-09-23 17:34:47 +01:00
fu-mutex.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-offline.c trivial: Fix a typo spotted by coverity 2019-05-02 09:59:47 +01: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-plugin-private.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-plugin-vfuncs.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-plugin.c fu-engine: Check multiple plugins if quirks match 2019-10-18 14:18:09 -05:00
fu-plugin.h fu-plugin: Add fu_plugin_get_hwid_replace_value 2019-10-17 18:31:01 +02:00
fu-progressbar.c Align the key values to the text *width* not the number of bytes 2019-09-23 15:17:28 +01:00
fu-progressbar.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-quirks.c Use the newer features of GRWLock rather than reinventing it 2019-06-12 15:20:27 +01:00
fu-quirks.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-self-test.c Allow a custom FuFirmwareImage->write() in superclassed objects 2019-10-15 08:10:11 -05:00
fu-smbios.c Fix a crash when stopping the fwupd service 2019-08-01 13:00:51 +01:00
fu-smbios.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-srec-firmware.c trivial: Fix tiny memory leak when using FuSrecFirmware 2019-09-23 09:59:19 +01:00
fu-srec-firmware.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +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-test.c Remove the unused Emacs indenting headers from all source files 2018-08-09 12:48:04 +01:00
fu-test.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-tool.c trivial: fu-tool: Allow detach/attach to prompt for device 2019-10-22 09:12:26 -05:00
fu-udev-device-private.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-udev-device.c Add a new plugin for working with eMMC devices (Fixes: #1455) 2019-10-18 14:18:09 -05:00
fu-udev-device.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-usb-device-private.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-usb-device.c Strip trailing whitespace from USB descriptors 2019-10-22 14:39:39 +01:00
fu-usb-device.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-util-common.c fu-util: Add user friendly strings for all device flags 2019-10-17 11:38:46 -05:00
fu-util-common.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-util.c trivial: don't try to enable LVFS from systemd 2019-10-18 09:21:19 -05: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 Add a generic DFU firmware object for plugins to use 2019-10-11 13:19:46 +01:00
org.freedesktop.fwupd.xml Export the salted machine ID as a daemon property 2019-09-23 17:34:47 +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.