Commit Graph

1403 Commits

Author SHA1 Message Date
Mario Limonciello
a61b4d88c9 trivial: fu-tool: Allow detach/attach to prompt for device
Makes using `fwupdtool detach` easier to use.
2019-10-22 09:12:26 -05:00
Richard Hughes
77606cc3b8 Strip trailing whitespace from USB descriptors
Some vendors use a space to fill, rather than NUL to terminate the string.
Keeping the space makes fwupdmgr and gnome-firmware look broken.
2019-10-22 14:39:39 +01:00
Richard Hughes
80768f557f trivial: Add fu_common_read_uint16_safe()
This allows us to put the offsets-to-offset checks in the right place.
2019-10-22 11:50:10 +01:00
Richard Hughes
afca71aeb3 trivial: Add version to the FuFirmware->to_string() output 2019-10-21 18:03:07 +01:00
Richard Hughes
fd3c8ae7fd Add fu_firmware_set_version()
In the future, for firmware that supports getting a version we can check the
parsed version matches the version specified in the metainfo file.
2019-10-21 10:35:01 -05:00
Mario Limonciello
eb5d7a4659 Add a new plugin for working with eMMC devices (Fixes: #1455) 2019-10-18 14:18:09 -05:00
Mario Limonciello
0e500321d7 fu-engine: Check multiple plugins if quirks match
`ata` and `emmc` both have block devices and so they both need to
be checked
2019-10-18 14:18:09 -05:00
Mario Limonciello
561751faff trivial: don't try to enable LVFS from systemd 2019-10-18 09:21:19 -05:00
Mario Limonciello
fd877a02e0 fu-util: Add user friendly strings for all device flags
This also hides some flags that users don't care about unless run with
`--verbose`
2019-10-17 11:38:46 -05:00
Patrick Rudolph
a60b547edb fu-plugin: Add fu_plugin_get_hwid_replace_value
Allow a plugins to cherry-pick specific HWIDs and add them as InstanceIds.
By adding them as InstanceIds rather than adding them as GUIDs, the
original string can be found in the output generated by:
$ fupdmgr get-devices

Example output:
  Guid:                 230c8b18-8d9b-53ec-838b-6cfc0383493a <- main-system-firmware
  Guid:                 de6fd40f-4ec9-5c0b-95e1-8fb13d1b030c <- LENOVO&ThinkPad T410&2537VG5
  Guid:                 978b0d18-bfe9-5279-9a9f-68dc247a705f <- LENOVO&ThinkPad T410&LENOVO&2537VG5

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
2019-10-17 18:31:01 +02:00
Richard Hughes
791c91be1e trivial: Increase verbosity when actually updating devices
As the plugin is allowed to change print out the entire FuDevice before
performing each step when in verbose mode.

Note, these are only show during update if run with --verbose, not at startup.
2019-10-17 14:06:27 +01:00
Richard Hughes
802bb313c6 trivial: Allow plugins to use WAIT_FOR_REPLUG in prepare and cleanup 2019-10-17 14:06:27 +01:00
Richard Hughes
b05d39adff Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use 2019-10-17 14:06:27 +01:00
Mario Limonciello
326950cd68 trivial: fu-util: break out of automatic reports if one is not automatic
Currently this is controlled by the order of remotes enumerated and might
return the wrong result with too many remotes.
2019-10-16 10:13:10 -05:00
Richard Hughes
1db25c9f2c Allow a custom FuFirmwareImage->write() in superclassed objects 2019-10-15 08:10:11 -05:00
Mario Limonciello
1d01d3bb38 Fix device flag filtering
When multiple flags were passed, they made combinations that would never
exist in the daemon causing advanced filtering to not work.
2019-10-14 12:41:09 -05:00
Mario Limonciello
2a0e20bfaa trivial: fu-engine: Don't compare device and content checksums
Use `FWUPD_DEVICE_FLAG_CAN_VERIFY_IMAGE` to register that a content
checksum should be used.
2019-10-14 12:41:09 -05:00
Mario Limonciello
91d36095e1 fu-engine: Read all releases and convert versions when comparing
Fixes matching ESRT version to metadata version for UEFI
2019-10-14 12:41:09 -05:00
Mario Limonciello
8fa0b382fa Add new flags can-verify and can-verify-image
These are used to indicate that the device can verify checksums or
can dump an image for checksumming.
2019-10-14 12:41:09 -05:00
Mario Limonciello
49556a3948 trivial: make verify and verify-update safer
Don't show output for all devices - it doesn't work for most of them.

I also found that running verify on my Synaptics touchpad device puts it
into a pretty bad state until reboot.  That's of course a problem on
it's own, but at least prompting for it will prevent it from easily
happening.
2019-10-14 12:41:09 -05:00
Mario Limonciello
248e3f8d6e trivial: fu-udev-device: use parent udev device to indicate internal
If the parent device is hooked up via I2C that's a pretty good
indication that the touchpad is internal to the device.
2019-10-14 11:36:42 -05:00
Richard Hughes
cbf53fe52d trivial: Fix a recent regression causing a double-free
This was introduced accidentally in a9be536ef0.

Fixes https://github.com/fwupd/fwupd/issues/1461
2019-10-14 12:31:03 +01:00
Mario Limonciello
e202a39851 trivial: fu-util: add some extra checks around automatic reports
Avoid some extra roundtrips to the daemon if user has poked at some
files.
2019-10-13 07:34:09 +01:00
Mario Limonciello
8692d01cf9 trivial: fu-tool: typo 2019-10-13 07:30:43 +01:00
Mario Limonciello
3a10c3cf3d fu-systemd: Use correct method for stopping units.
Fixes a regression in 3d00522dd3 that caused systemd stopping to
not work.

Previously the flow was to use `GetUnit` and `StopUnit` on the manager
interface.  In that code this was switched over it should have been
using the unit interface + `Stop` or manager interface + `StopUnit`
not try to use the manager interface on the unit proxy with `StopUnit`.
2019-10-13 07:30:43 +01:00
Mario Limonciello
fece7553af trivial: fu-udev-device: Use ID_PCI_CLASS_FROM_DATABASE if name not set
This helps at least with display controllers
2019-10-12 14:29:21 -05:00
Mario Limonciello
a9be536ef0 trivial: fu-plugin: quiet down debug output for optionrom plugin
All of these messages continually output are just noise for unsupported
devices:

```
18:11:52:0851 FuPlugin             using generic udev_device_added() on optionrom
18:11:52:0851 FuEngine             optionrom ignoring: no FWUPD_GUID property
```
2019-10-12 14:29:21 -05:00
Mario Limonciello
e1b4d8ebcd Add a new device flag for indicating device won't come back
Devices like this can't be verified that the version was updated
until they're manually put into the correct mode by the user.
2019-10-12 14:07:34 -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
f591a3594b trivial: Add fu_firmware_parse_file() helper for future use 2019-10-10 16:18:58 +01:00
Richard Hughes
224e991ab8 trivial: Add klass->to_string for superclassed FuFirmwareImage objects
This matches the behaviour of FuFirmware.
2019-10-10 16:16:42 +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
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
d8a8d5e776 Set all FuUdevDevice plugins to use FU_QUIRKS_PLUGIN
This speeds up startup as we're only calling fu_plugin_udev_device_added() on
plugins that can actually handle the device.
2019-10-09 20:02:16 +01:00
Richard Hughes
42f33df3dc trivial: Remove some now-unused vfuncs 2019-10-07 12:37:21 +01:00
Richard Hughes
989acf12e7 Create the custom plugin GType in common code
This reduces the amount of boilerplate in plugins.
2019-10-07 12:37:21 +01:00
Richard Hughes
7f67721432 Reduce more boilerplate in plugins 2019-10-07 12:37:21 +01:00
Mario Limonciello
d70260692f trivial: fu-engine: fix never reporting remotes
```
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection):
0.	Do not upload reports at this time, but prompt again for future updates
1.	Do not upload reports, and never ask to upload reports for future updates
2.	Upload reports just this one time, but prompt again for future updates
3.	Upload reports this time and automatically upload reports after completing future updates
1
key ReportUri not supported
```
2019-10-07 05:36:22 -05:00
Mario Limonciello
9213c5c7bf trivial: fu-util: don't show warnings for no reports to upload
```
(fwupdmgr:5605): FuMain-WARNING **: 22:16:06.048: No reports require uploading
```
2019-10-07 05:36:22 -05:00
Richard Hughes
e4ad9d27fd trivial: Fix a tiny memory leak when starting the daemon 2019-10-05 13:03:19 +01:00
Richard Hughes
4b30380e78 Provide a default implementation of common FuDevice actions
This reduces the amount of boilerplate in each plugin.

    32 files changed, 156 insertions(+), 584 deletions(-)
2019-10-04 14:57:32 +01:00
Mario Limonciello
d837ca8c28 fu-util: add support for a reinstall command 2019-10-03 08:16:41 -05:00
Mario Limonciello
350fc4c787 trivial: fu-util/fu-tool: update re-install help text to reinstall 2019-10-03 08:16:41 -05:00
Mario Limonciello
f59cc375ae trivial: fu-util: remove double printed message about succesful firmware update 2019-10-03 08:16:41 -05:00
Mario Limonciello
d122facc09 trivial: fu-util: show no updatable devices error for update command
This makes it mirror the behavior of `get-updates` command.
2019-10-03 08:16:41 -05:00
Richard Hughes
47ae4f89d7 Fuzz the SREC and IHEX file parsers once more 2019-10-02 16:28:28 +01:00
Richard Hughes
e9232c4fc0 Use parallel fuzzing for the SMBIOS checks too 2019-10-02 16:28:28 +01:00
Mario Limonciello
2b69098d89 trivial: fu-util: output newline after prompt.
Before:
```
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection):0.	Do not upload reports at this time, but prompt again for future updates
1.	Do not upload reports, and never ask to upload reports for future updates
2.	Upload reports just this one time, but prompt again for future updates
3.	Upload reports this time and automatically upload reports after completing future updates
```

After:
```
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection):
0.	Do not upload reports at this time, but prompt again for future updates
1.	Do not upload reports, and never ask to upload reports for future updates
2.	Upload reports just this one time, but prompt again for future updates
3.	Upload reports this time and automatically upload reports after completing future updates
```
2019-10-01 16:07:48 -05:00
Mario Limonciello
fac50a8eef trivial: fix %u output in report upload
Don't bother showing the numbers, they were listed right above.
2019-10-01 16:07:48 -05:00