Some parsers are ignoring the magic when using _FLAG_IGNORE_CHECKSUM
(which is wrong; fuzzers have no problem with enforcing a static prefix)
and other either disregard the offset or check the magic in an unsafe
way. Also, use FWUPD_ERROR_INVALID_FILE consistently for magic failure.
Add a vfunc, and move all the clever code into one place.
We tried to solve this by matching the org.fwupd.hsi AppStream ID, but
in some cases the resolution depends on what actually failed.
Add "the action the user is supposed to do" as flags so that the
front-end can translate this in the appropriate way, for instance,
using a different string for log events and HSI dialogs.
1. Using bulk transfer instead of control transfer to send command.
2. Adding header to command format.
Signed-off-by: michaelcheng04 <michael.cheng@emc.com.tw>
This adds the logic for the VBE plugin. It supports reading information
from the system to determine which VBE method (a device in fwupd) is in
use, then creating those devices to handle the actual update.
Verified Boot for Embedded (VBE) relies on FIT files to operate.
FIT is a way of packaging multiple images along with information about
them.
Signed-off-by: Simon Glass <sjg@chromium.org>
This regressed in faa7871b08 as the
ONLY_QUIRK vendor instance ID was no longer being added when the device
switched into bootloader mode.
We could add back the ->probe() to get the vendor quirk, but arguably
the most sensible and correct thing to do is to just use the PID as
well. There is only two PIDs we care about, and matching *every* device
with the vendor ID is probably asking for trouble with other devices.
It is weird to do this when constructing the object, and it allows us
to match PossiblePlugin quirk matches on potentially better instance
IDs added by the superclass.
Some Poly usb devices will STALL the dfu detach request if the
audio/video is streaming. By setting the high byte of wIndex
in detach control request to 1, it could bypass the streaming
status check.
This fixes a potential critical warning (seen in the hailuck plugin,
although others may be affected too) where the parent does not set the
ID before the child sets the number of steps.
It's much more helpful to have the child position for debugging anyway,
so just set it in all cases.
The usb3 hub 413c:b06f may be added to the plugin ahead of ec device
while dock type is yet known at that time. Cache the hub until ec can
tell the instance id, then add it to the plugin.
We don't show messages in the logs about unable to probe other
device types by default, MM should be no different.
This gets rid of this message coming up every fwupd startup on a
EM05-G:
"failed to probe MM device: modem cannot be put in programming mode"