fwupd/plugins
Richard Hughes eddaed0c11 Allow specifying more than one VendorID for a device
Asking the user for the UID mapping isn't working very well, as it requires lots
of manual handholding. It also doesn't work very well when the device vendor
does not actually have a PCI ID or if the vendor has split into two entities.

Just use the OUI address as an additional VendorID and match any of the device
IDs against any of the metadata-supplied values.
2021-01-04 22:30:20 +00:00
..
acpi-dmar Add external interface messages 2020-10-26 12:05:20 -05:00
acpi-facp Add external interface messages 2020-10-26 12:05:20 -05:00
altos Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
amt Add external interface messages 2020-10-26 12:05:20 -05:00
ata Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
bcm57xx Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
bios Export FwupdPlugin so we can convey enumerated system errors to the end user 2020-10-13 15:56:49 +01:00
ccgx Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
colorhug colorhug: Don't set the version format to triplet at startup 2020-11-07 08:03:24 +00:00
coreboot Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
cpu trivial: Don't crash when failing to detect the CPU 2020-12-10 20:43:54 +00:00
cros-ec Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
csr Add external interface messages 2020-10-26 12:05:20 -05:00
dell Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
dell-dock Add external interface messages 2020-10-26 12:05:20 -05:00
dell-esrt Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
dfu libfwupdplugin: Use G_GNUC_WARN_UNUSED_RESULT for methods that should be checked 2021-01-04 15:24:35 +00:00
ebitdo Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
elantp Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
emmc Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
ep963x Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
fastboot Add external interface messages 2020-10-26 12:05:20 -05:00
flashrom Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
fresco-pd Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
goodix-moc trivial: Require <string.h> for strlen() and memcpy() 2020-12-14 16:49:03 +00:00
hailuck Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
iommu Add external interface messages 2020-10-26 12:05:20 -05:00
jabra trivial: Require <string.h> for strlen() and memcpy() 2020-12-14 16:49:03 +00:00
linux-lockdown Add external interface messages 2020-10-26 12:05:20 -05:00
linux-sleep Add external interface messages 2020-10-26 12:05:20 -05:00
linux-swap trivial: Fix swap self tests 2020-11-10 19:55:33 +00:00
linux-tainted Add external interface messages 2020-10-26 12:05:20 -05:00
logind Add external interface messages 2020-10-26 12:05:20 -05:00
logitech-hidpp Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
modem-manager Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
msr Install modules-load configs in the correct directory 2020-11-16 15:27:13 +00:00
nitrokey trivial: Fix two more missing <string.h> instances 2020-12-14 20:24:04 +00:00
nvme Add external interface messages 2020-10-26 12:05:20 -05:00
optionrom Use honggfuzz to fuzz firmware rather than AFL 2020-12-11 09:37:42 +00:00
pci-bcr trivial: Fix some error prefixes 2020-11-06 09:57:03 +00:00
pci-mei Add external interface messages 2020-10-26 12:05:20 -05:00
pixart-rf Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
platform-integrity Install modules-load configs in the correct directory 2020-11-16 15:27:13 +00:00
redfish Lower the CURL version required to fix build in RHEL 2020-12-07 14:17:22 +00:00
rts54hid plugins: rts54hid fix get report index error 2020-12-23 09:33:35 +00:00
rts54hub plugins: rts54hub: add Lenovo HotRod VID/PID 2020-12-31 09:18:46 +00:00
solokey Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
steelseries Add external interface messages 2020-10-26 12:05:20 -05:00
superio Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
synaptics-cxaudio Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
synaptics-mst Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
synaptics-prometheus synaptics-prometheus: Fix flashing a fingerprint reader that is in use 2021-01-04 21:52:10 +00:00
synaptics-rmi trivial: Fix up some NULL/FALSE confusion 2021-01-04 16:32:50 +00:00
test Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
thelio-io Add external interface messages 2020-10-26 12:05:20 -05:00
thunderbolt Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
tpm Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
tpm-eventlog Use honggfuzz to fuzz firmware rather than AFL 2020-12-11 09:37:42 +00:00
uefi Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
uefi-dbx Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
uefi-recovery Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
upower Add external interface messages 2020-10-26 12:05:20 -05:00
vli Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
wacom-raw trivial: Fix some error prefixes 2020-11-06 09:57:03 +00:00
wacom-usb Allow specifying more than one VendorID for a device 2021-01-04 22:30:20 +00:00
meson.build Add plugin to update PixArt RF devices 2021-01-04 17:20:13 +00:00
README.md trivial: plugins: clarify stance on afuefi.efi 2019-08-23 10:54:58 -05:00

Adding a new plugin

An extensible architecture allows for providing new plugin types (for reading and writing different firmware) as well as ways quirk their behavior.

You can find more information about the architecture in the developers section of the fwupd website.

You can use the fwupd developer documentation to assist with APIs available to write the plugin.

If you have a firmware specification and would like to see support in this project, please file an issue and share the spec. Patches are also welcome.

We will not accept plugins that upgrade hardware using a proprietary Linux executable, proprietary UEFI executable, proprietary library, or DBus interface.

Plugin interaction

Some plugins may be able to influence the behavior of other plugins. This includes things like one plugin turning on a device, or providing missing metadata to another plugin.

The ABI for these interactions is defined in: https://github.com/fwupd/fwupd/blob/master/src/fu-device-metadata.h

All interactions between plugins should have the interface defined in that file.