fwupd/plugins
Richard Hughes c4b7f42e43 Only compress one version of the builtin-quirks
Saving the quirks in the GResource section worked well, but it made the build
system very complicated and also meant the .data section was duplicated in
both `fwupd` and `fwupdtool` -- negating a lot of the hard-fought savings.

Simplify this feature so that we just `cat` all the quirk files together, then
gzip them into a single file. This means that at startup fwupd only needs to
check the mtime of one file, and weirdly it's actually faster to load a smaller
compressed file from disk that it is to load multiple uncompressed files.
2022-09-27 12:44:04 +01:00
..
acpi-dmar Convert HSI into a meson tristate-feature 2022-08-22 06:03:38 -05:00
acpi-facp Convert HSI into a meson tristate-feature 2022-08-22 06:03:38 -05:00
acpi-ivrs Convert HSI into a meson tristate-feature 2022-08-22 06:03:38 -05:00
acpi-phat Check firmware magic in a more standard way 2022-07-14 14:48:15 +01:00
amd-pmc Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
amt Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
analogix Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
android-boot Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
ata Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
bcm57xx Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
bios Set the target value on the security attribute 2022-08-01 07:12:18 +01:00
ccgx Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
cfu Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
ch341a Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
colorhug Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
corsair Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
cpu Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
cros-ec Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
dell Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
dell-dock Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
dell-esrt trivial: Make meson.build indentation consistent 2022-06-21 03:27:38 -04:00
dfu Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
dfu-csr Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
ebitdo Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
elanfp Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
elantp Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
emmc Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
ep963x Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
fastboot Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
flashrom Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
focalfp Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
fresco-pd Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
genesys Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
goodix-moc Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
gpio Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
hailuck Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
intel-spi Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
intel-usb4 Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
iommu Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
jabra Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
lenovo-thinklmi trivial: Always use g_assert_no_error() first 2022-09-27 12:10:07 +01:00
linux-lockdown Convert HSI into a meson tristate-feature 2022-08-22 06:03:38 -05:00
linux-sleep Convert HSI into a meson tristate-feature 2022-08-22 06:03:38 -05:00
linux-swap Allow self tests to pass when run in LXC zones 2022-08-22 12:46:36 +01:00
linux-tainted Only fail the kernel tainted HSI test for specific taint reasons 2022-08-24 13:35:55 +01:00
logind Allow plugins and backends to print debugging information to the console 2022-07-28 16:10:06 +01:00
logitech-bulkcontroller Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
logitech-hidpp Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
modem-manager Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
msr Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
mtd Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
nitrokey Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
nordic-hid Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
nvme Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
optionrom Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
parade-lspcon Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
pci-bcr Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
pci-mei Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
pci-psp Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
pixart-rf Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
powerd trivial: Use 'priv' for plugin private data to be consistent 2022-06-26 13:57:53 -05:00
realtek-mst Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
redfish Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
rts54hid Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
rts54hub Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
scsi Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
steelseries Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
superio Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
synaptics-cape Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
synaptics-cxaudio Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
synaptics-mst Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
synaptics-prometheus Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
synaptics-rmi Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
system76-launch Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
test Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
thelio-io Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
thunderbolt Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
tpm Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
uefi-capsule Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
uefi-dbx Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
uefi-pk Convert HSI into a meson tristate-feature 2022-08-22 06:03:38 -05:00
uefi-recovery Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
uf2 Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
upower trivial: Use 'priv' for plugin private data to be consistent 2022-06-26 13:57:53 -05:00
usi-dock Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
vbe vbe: Fix a crash when dumping firmware 2022-09-09 18:50:56 +01:00
vli Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
wacom-raw Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
wacom-usb Only compress one version of the builtin-quirks 2022-09-27 12:44:04 +01:00
meson.build focalfp: Add new plugin to update touchpads from focaltech 2022-09-27 09:13:08 +01:00
README.md Rename the development branch from master to main 2021-09-24 14:20:24 -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/main/libfwupdplugin/fu-device-metadata.h

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