fwupd/plugins
Richard Hughes 52441f28a4 Allow objects to deserialize to XML
This makes a lot more sense; we can parse a firmware and export the same XML
we would use in a .builder.xml file. This allows us to two two things:

 * Check we can round trip from XML -> binary -> XML

 * Using a .builder.xml file we can check ->write() is endian safe
2021-03-15 12:07:30 +00:00
..
acpi-dmar Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
acpi-facp Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
altos Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
amt Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
ata Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
bcm57xx Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
bios Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
ccgx Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
colorhug Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
cpu Simplify the quirk file format 2021-03-03 08:30:34 +00:00
cros-ec cros-ec: Allow a failure to write a section, do another write 2021-03-13 07:58:05 -08:00
dell Simplify the quirk file format 2021-03-03 08:30:34 +00:00
dell-dock Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
dell-esrt Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
dfu Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
dfu-csr Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
ebitdo ebitdo: Add support for writing firmware 2021-03-10 21:33:28 -06:00
elantp Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
emmc Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
ep963x Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
fastboot Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
flashrom Correct L3 GUID (#2979) 2021-03-05 11:49:29 +00:00
fresco-pd Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
goodix-moc Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
hailuck Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
iommu Simplify the quirk file format 2021-03-03 08:30:34 +00:00
jabra Be more strict for custom quirk keys 2021-03-03 08:30:34 +00:00
linux-lockdown Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
linux-sleep Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
linux-swap Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
linux-tainted Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
logind Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
logitech-hidpp Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
modem-manager Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
msr Simplify the quirk file format 2021-03-03 08:30:34 +00:00
nitrokey Simplify the quirk file format 2021-03-03 08:30:34 +00:00
nvme Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
optionrom trivial: Remove unused source file 2021-03-05 09:42:27 +00:00
pci-bcr Updated StarLabs guids 2021-03-04 17:56:43 +00:00
pci-mei Simplify the quirk file format 2021-03-03 08:30:34 +00:00
pixart-rf Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
platform-integrity Simplify the quirk file format 2021-03-03 08:30:34 +00:00
redfish Support more than one protocol for a given device 2021-03-01 16:14:36 +00:00
rts54hid Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
rts54hub Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
solokey solokey: Add support for writing firmware 2021-03-11 10:13:46 +00:00
spi Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
steelseries Simplify the quirk file format 2021-03-03 08:30:34 +00:00
superio Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
synaptics-cxaudio Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
synaptics-mst Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
synaptics-prometheus Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
synaptics-rmi Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
system76-launch Simplify the quirk file format 2021-03-03 08:30:34 +00:00
test Simplify the quirk file format 2021-03-03 08:30:34 +00:00
thelio-io Simplify the quirk file format 2021-03-03 08:30:34 +00:00
thunderbolt Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
tpm Simplify the quirk file format 2021-03-03 08:30:34 +00:00
tpm-eventlog tpm-eventlog: Fix a possible crash if not using _new() 2021-02-18 16:56:40 +00:00
uefi-capsule Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
uefi-dbx Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
uefi-pk Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
uefi-recovery Simplify the quirk file format 2021-03-03 08:30:34 +00:00
upower Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
vli Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
wacom-raw Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
wacom-usb Allow objects to deserialize to XML 2021-03-15 12:07:30 +00:00
meson.build spi: Move all the IFD parsing to the new 'spi' plugin 2021-03-15 09:45:17 +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.