fwupd/plugins
Richard Hughes f9fe19f7f6 Make libcurl optional for fuzzing
For fuzzing we want to exclude libcurl support as it depends on other very heavy
libraries like OpenSSL or libtasn which make the fuzzing binary much larger if
linked statically.
2021-01-04 16:22:36 +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 added my ssd giving the error 2020-12-06 15:31:23 +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 Add external interface messages 2020-10-26 12:05:20 -05: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 trivial: Codespell fixes 2020-11-02 14:26:26 +00:00
dell-dock Add external interface messages 2020-10-26 12:05:20 -05:00
dell-esrt Add external interface messages 2020-10-26 12:05:20 -05: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 Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
emmc libfwupdplugin: Use G_GNUC_WARN_UNUSED_RESULT for methods that should be checked 2021-01-04 15:24:35 +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 Add external interface messages 2020-10-26 12:05:20 -05: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 Add external interface messages 2020-10-26 12:05:20 -05:00
modem-manager modem-manager: validate firmware update method combinations 2020-11-29 07:08:05 +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
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 trivial: Fix some error prefixes 2020-11-06 09:57:03 +00:00
synaptics-cxaudio Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
synaptics-mst synaptics-mst: Improve reliability by waiting 2 seconds after writing data 2020-11-10 13:13:48 +00:00
synaptics-prometheus Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
synaptics-rmi Remove now-unused synaptics_rmi_dump fuzzing target generator 2021-01-04 15:42:17 +00:00
test Add external interface messages 2020-10-26 12:05:20 -05:00
thelio-io Add external interface messages 2020-10-26 12:05:20 -05:00
thunderbolt Make the 'id' for fu_plugin_add_firmware_gtype() optional 2021-01-04 15:27:10 +00:00
tpm trivial: Fix some error prefixes 2020-11-06 09:57:03 +00:00
tpm-eventlog Use honggfuzz to fuzz firmware rather than AFL 2020-12-11 09:37:42 +00:00
uefi libfwupdplugin: Use G_GNUC_WARN_UNUSED_RESULT for methods that should be checked 2021-01-04 15:24:35 +00:00
uefi-dbx Use honggfuzz to fuzz firmware rather than AFL 2020-12-11 09:37:42 +00:00
uefi-recovery Add external interface messages 2020-10-26 12:05:20 -05: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 trivial: Codespell fixes 2020-11-02 14:26:26 +00:00
meson.build Make libcurl optional for fuzzing 2021-01-04 16:22:36 +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.