Richard Hughes
9e4bf87184
dfu: Implement FuDevice->to_string()
2019-10-17 14:06:27 +01:00
Richard Hughes
6b72cfa25a
dfu: Remove two completely unused helpers
2019-10-15 13:04:09 +01:00
Richard Hughes
8cc41cfa6f
dfu: Make DfuFirmware derive from FuFirmware
2019-10-14 15:24:08 -05:00
Richard Hughes
f7862c0085
dfu: Make DfuImage derive from FuFirmwareImage
2019-10-14 15:24:08 -05:00
Richard Hughes
4fec0302d2
dfu: Remove private headers that do not need to exist
...
These are a throwback to when we exported the DFU headers.
2019-10-14 15:24:08 -05:00
Richard Hughes
c0695320c8
Add a generic DFU firmware object for plugins to use
2019-10-11 13:19:46 +01:00
Richard Hughes
13f1c2a4da
dfu: Use FwupdInstallFlags rather than a DFU-specific version
2019-10-11 13:19:46 +01:00
Richard Hughes
0ae53d3782
dfu: Remove functionality for modifying DfuSe files
...
Better tools already exist.
2019-10-10 16:53:44 +01:00
Richard Hughes
58bed5200e
dfu: Remove functionality you can do now with fwupdtool
2019-10-10 16:53:44 +01:00
Richard Hughes
5a5a824a8d
dfu: Remove the merge command as it's unused and broken
2019-10-10 16:53:44 +01:00
Richard Hughes
341ab10808
trivial: Remove the fuzzing details for DfuPatch
2019-10-10 16:18:26 +01:00
Richard Hughes
940df2eade
dfu: Remove DfuPatch as no vendor actually uses this
...
This was a new file format to help out an OEM, but they didn't actually use it.
If we do need it in the future, it would some back as a src/ helper, not in
plugins/dfu.
2019-10-10 16:07:38 +01:00
Richard Hughes
85c34215c7
dfu: Don't wrap provided VID-PID functions
2019-10-10 13:53:27 +01:00
Richard Hughes
23c89edeaa
dfu: Use the standard FuDevice custom flags functionality
2019-10-10 13:53:27 +01:00
Richard Hughes
8583184489
dfu: Use klass_device->write_firmware() directly
2019-10-10 13:53:27 +01:00
Richard Hughes
13ffa3e13f
dfu: Use the generic fu_plugin_usb_device_added() function
2019-10-10 13:53:27 +01:00
Richard Hughes
b6fbf80f95
dfu: Use daemon flags to ignore devices rather than a special flag
2019-10-10 13:53:27 +01:00
Richard Hughes
79e033907b
dfu: Set the device state directly to avoid proxying signals
2019-10-10 13:53:27 +01:00
Richard Hughes
f9fb2a6366
dfu: Use the built-in detach() and attach() vfuncs
2019-10-10 13:53:27 +01:00
Richard Hughes
f0eb091173
Read firmware back from the device as a FuFirmware
...
Returning a GBytes is not good enough when the device may be returning multiple
partitions which have to be stored as FuFirmwareImage objects.
2019-10-10 11:57:48 +01:00
Richard Hughes
48dbaadd03
dfu: Remove a pointless function
2019-10-09 20:56:38 +01:00
Richard Hughes
7301d06f23
dfu: Remove support for the Metadata Store Proposal
...
This was never adopted, and firmware now indicates the license in the metainfo
file rather than the DFU file itself.
2019-10-09 20:56:38 +01:00
Richard Hughes
5d064d92e0
dfu: Remove XTEA support
...
We don't support any hardware that actually uses this proposed standard, and
nowadays there is much better public-key encryption people can easily use.
2019-10-09 20:56:38 +01:00
Richard Hughes
52ccaa305e
dfu: Remove the SREC and IHEX parsing out of the DFU plugin
...
libdfu used to be a grab-bag of useful firmware functions, but now with the
addition of FuFirmware we have proper shared objects for plugins to use.
2019-10-09 20:56:38 +01:00
Richard Hughes
8653e70480
trivial: Remove G_BEGIN_DECLS from all private headers
2019-10-09 20:02:16 +01:00
Richard Hughes
731875af86
Remove FU_PLUGIN_RULE_REQUIRES_QUIRK as all the plugins now use it
2019-10-09 20:02:16 +01:00
Richard Hughes
7f67721432
Reduce more boilerplate in plugins
2019-10-07 12:37:21 +01:00
Richard Hughes
47ae4f89d7
Fuzz the SREC and IHEX file parsers once more
2019-10-02 16:28:28 +01:00
Richard Hughes
17c02b8b1f
trivial: Fix some NULL/FALSE confusion
2019-09-23 09:59:30 +01:00
Richard Hughes
5308ea4fae
Never use memcpy() in a possibly unsafe way
...
There are several subtle bugs in various places in fwupd caused by not treating
user-provided offsets into buffers as unsafe. As fwupd runs as root we have to
assume that all user firmware is evil, and also that devices cannot be trusted.
Make a helper to put all the logic into one place and convert all users.
2019-08-12 09:22:09 -05:00
Richard Hughes
7afd7cba0d
Use FuFirmware as a container for firmware images
...
In many plugins we've wanted to use ->prepare_firmware() to parse the firmware
ahead of ->detach() and ->write_firmware() but this has the limitation that it
can only return a single blob of data.
For many devices, multiple binary blobs are required from one parsed image,
for instance providing signatures, config and data blobs that have to be pushed
to the device in different way.
This also means we parse the firmware *before* we ask the user to detach.
Break the internal FuDevice API to support these firmware types as they become
more popular.
This also allows us to move the Intel HEX and SREC parsing out of the dfu plugin
as they are used by a few plugins now, and resolving symbols between plugins
isn't exactly awesome.
2019-08-08 13:10:57 +01:00
Richard Hughes
c84b36c541
Export the version-format to clients
...
This allows a vendor to verify the VersionFormat of a device without running
the daemon in verbose mode.
2019-04-30 09:25:41 +01:00
Richard Hughes
5d7f5a2a87
dfu: Add some trivial, but useful, debugging for AVR DFU devices
2019-04-29 08:27:51 -05:00
Richard Hughes
3c7f58170d
dfu: Correctly identify DFU firmware that starts at offset zero
...
Use 0xffffffff as the 'never set' base address.
2019-04-29 08:27:51 -05:00
Richard Hughes
2cebf6c555
dfu: Don't keep showing trivial debug output
2019-04-29 08:27:51 -05:00
Richard Hughes
e4e96742e7
dfu: Reset the forced version during attach and detach
...
If the runtime DFU version is a vanilla DFU runtime rather than the AVR32 DFU
variant then we no longer need to use the override.
2019-04-29 08:27:51 -05:00
Richard Hughes
8fada51919
Correctly parse DFU interfaces with extra vendor-specific data
...
Fixes: https://github.com/hughsie/fwupd/issues/1152
2019-04-17 15:12:43 +08:00
Richard Hughes
dce91204c9
Fix some typos spotted using codespell
2019-04-08 12:47:53 +01:00
Richard Hughes
2aad104473
trivial: Add fu_common_bytes_compare()
2019-03-21 10:28:20 +00:00
Richard Hughes
36999464c7
trivial: Move a useful function out of libdfu
2019-03-19 21:17:48 +00:00
Richard Hughes
bfd946e463
Use '#pragma once' to avoid a lot of boilerplate
2019-02-09 08:42:30 -06:00
Richard Hughes
040ac626b5
dfu: Fill holes when reading SREC files
...
It is perfectly valid to have non-continuous ranges, so fill in any holes like
we do for Intel HEX files.
2019-02-06 14:48:48 +00:00
Richard Hughes
96e6783982
trivial: Fix potential compile failures for high -j values
2019-02-01 16:52:16 +00:00
Richard Hughes
206b70120d
dfu: Simplify the SREC parser to avoid a crash with an invalid file
...
Splitting the file into lines does increase memory usage, but allows us to use
a much simpler parser design. This is just like we fixed IHEX a few weeks ago.
2019-01-31 16:05:34 +00:00
Richard Hughes
ccc79c9fbc
trivial: Split out strnsplit for future use
2019-01-31 16:05:34 +00:00
Richard Hughes
4fef28d0ac
trivial: Add the missing protocol IDs to the plugin READMEs
2019-01-29 22:28:09 +00:00
Richard Hughes
42c514764a
dfu: Ignore the SUB ASCII value
...
This is probably written by a non-free post-processing tool and can be ignored.
2019-01-22 14:43:13 +00:00
Richard Hughes
720b5deb00
dfu: Fix the parser to support extended segment addresses
...
Split the data into lines, which is less efficient but also much easier to
understand and debug.
2019-01-22 14:43:13 +00:00
Richard Hughes
f6a6fe8ec5
dfu: Support ihex files with leading comments
...
Also look for the EOF in the file.
2019-01-22 14:43:13 +00:00
Richard Hughes
f425d29a28
Show a console warning if loading an out-of-tree plugin
...
Fixes https://github.com/hughsie/fwupd/issues/950
2019-01-19 07:26:20 +00:00