Ivan Mikhanchuk
5e04fae8f2
Add functions to read from and write to FU_PATH_KIND_FIRMWARE_SEARCH
2021-07-13 21:57:08 +01:00
Mario Limonciello
da895169a7
Add a new path for configuring runtime firmware load path
...
The kernel allows configuring this, and certain plugins will use this
path to be able to load firmware in the kernel driver through runtime,
but to flash to the device.
2021-07-13 21:57:08 +01:00
Richard Hughes
974d63851d
Allow calculating the CRC-16 with the CCITT polynomial
2021-07-03 13:49:50 +01:00
Mario Limonciello
d20a95458d
libfwupdplugin: add support for firmware-attributes
2021-06-25 08:12:58 -05:00
Crag Wang
5a384a3f02
trivial: fix for expr check introduced in 3a48af58
2021-06-17 09:17:43 +01:00
Mario Limonciello
3a48af58c2
trivial: move kernel version check into common library code
...
This will be used by more than one plugin in an upcoming commit.
2021-06-16 14:54:17 -05:00
Mario Limonciello
1e17457b16
Allow building the documentation with gi-docgen and gtk-doc
...
Until gi-docgen is declared stable support either of them.
This effectively means that hand builds and CI builds will use
gi-docgen, but distro builds use gtk-doc-tools.
2021-06-09 22:21:53 +01:00
Richard Hughes
4c734c797a
trivial: Remove some more _WIN32 defines now we have an OS split
2021-06-07 19:54:12 +01:00
Sergii Dmytruk
080129fc43
Handle bsdisks' UDisks2 implementation on FreeBSD
...
There is no Manager object, so block devices must be discovered
manually.
Additionally, Type field contains FS name rather than its MBR ID in
hex form or a GPT GUID.
Signed-off-by: Richard Hughes <richard@hughsie.com>
2021-06-07 19:54:12 +01:00
Richard Hughes
d783594ea5
Make fu_common_convert_to_gpt_type() FreeBSD compatible
...
Based on a patch by Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2021-06-07 19:54:12 +01:00
Sergii Dmytruk
1e5aec4eb1
Correct error msg in fu_common_get_block_devices
...
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2021-06-07 11:19:30 +01:00
Sergii Dmytruk
8d5784192f
Fix formatting in fu_common_get_block_devices ()
...
Signed-off-by: Sergii Dmytruk <sergii.dmytruk@3mdeb.com>
2021-06-07 11:19:17 +01:00
Richard Hughes
79bbcd792a
Store the BSD kernel cmdline string in the failure report
...
Also split out a kenv helper into common code.
2021-05-25 06:31:46 +01:00
Richard Hughes
8792afa894
trivial: Fixup some documentation to use the correct type
2021-05-17 09:27:54 +01:00
Richard Hughes
dbd57ebc43
trivial: Always include the newline for fu_common_string_append_kv()
2021-05-11 21:01:33 +01:00
Richard Hughes
20ef071b3c
trivial: Style fixes to lots of gtk-doc
2021-05-10 14:35:10 +01:00
Daniel Campello
a4fbe2a6f4
Switch lock directory from /var/run to /run/lock
...
This allows for proper locking between executions of fwupdtool in
Chromium OS minijail environment. It is needed after commit
9cf5f8f7ff
was introduced.
Change-Id: I37b33c8d1fbe97ec9baddc5f77ea94e2f4ff1fa4
2021-05-05 13:34:49 -06:00
Richard Hughes
89d45a0d91
trivial: Standardize on introspection for @error and @cancellable
...
Also standarize on `Returns:` for the result.
2021-04-28 16:19:50 +01:00
Richard Hughes
1ac05ef3bd
trivial: Codespell fixes
2021-04-26 10:29:39 +01:00
Richard Hughes
d42bd85059
trivial: Do not use the deprecated allow-none introspection argument
...
It's been deprecated since 2014... oops.
https://blogs.gnome.org/desrt/2014/05/27/allow-none-is-dead-long-live-nullable/
2021-04-19 14:46:42 +01:00
Richard Hughes
7f6f525f21
Add fu_bytes_get_data_safe() to check for zero sized data
...
Fixes https://github.com/fwupd/fwupd/issues/3122
2021-04-10 13:20:07 +01:00
Richard Hughes
4d76d18d35
Set the system battery state and level on the FuContext shared state
...
This allows plugins to set the battery power state of the *machine* which means
we can automatically inhibit devices with FWUPD_DEVICE_FLAG_REQUIRE_AC set.
It also allows to set the BatteryThreshold to 25% for Lenovo hardware, and we
can override other vendors with further quirks as required.
Fixes https://github.com/fwupd/fwupd/issues/3084
2021-04-07 08:05:15 +01:00
Richard Hughes
9c318a5a08
trivial: Fix 32 bit overflow in fu_common_get_memory_size()
...
Spotted by Coverity, thanks!
2021-03-20 17:32:56 +00:00
Norbert Kamiński
76e19930a8
fwupd port for BSD distros
...
Signed-off-by: Norbert Kamiński <norbert.kaminski@3mdeb.com>
2021-03-19 17:05:09 +00:00
Richard Hughes
119d260bd2
trivial: Limit alignment to 2GB to fix a fuzzing crash
...
This meant defining alignment values in FuFirmware.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32131
2021-03-17 11:14:46 +00:00
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
Richard Hughes
74db340d93
trivial: Add fu_byte_array_align_up() for future usage
2021-03-11 15:47:13 +00:00
Richard Hughes
58d52ede18
trivial: Add fu_common_align_up() for future usage
2021-03-10 17:06:57 +00:00
Richard Hughes
e9664e8448
trivial: Add fu_byte_array_append_bytes() helper
2021-03-10 14:01:11 +00:00
Richard Hughes
2d84386034
Remove unused, unsafe and deprecated functions from libfwupdplugin
...
Keeping *internal* API and ABI compatibility makes working with an already
complex codebase more mentally demanding than it needs to be.
Remember: plugins should be in-tree and upstream! If your out of tree plugin
stops working then it should be upstream.
The public-facing libfwupd will remain API and ABI stable for obvious reasons.
2021-03-09 15:47:56 +00:00
Richard Hughes
f2849d24cc
Add missing uint64 read and write helpers
2021-03-05 19:34:54 +00:00
Richard Hughes
32ffdb2677
Add helper API to write in a safer way
2021-03-05 09:34:18 +00:00
Richard Hughes
2ad99bb402
Relax fu_common_bytes_pad() to return the blob if longer than the pad size
...
This means the caller does not have to do this each time.
2021-03-03 14:29:29 +00:00
Richard Hughes
ad3cfc0fea
Convert MBR types to GPT GUIDs to help find the ESP
...
Fixes https://github.com/fwupd/fwupd/issues/2916
2021-02-22 13:00:33 +00:00
Richard Hughes
ffbb1175d0
trivial: Do not consider all whitespace a valid strsafe string
2021-02-14 22:03:57 +00:00
Richard Hughes
a4e0de462c
trivial: Fix AddressSanitizer heap-buffer-overflow
2021-02-14 22:03:57 +00:00
Mario Limonciello
be220a4f56
trivial: fu-common: fix fallback for esp-path if udisks missing
...
Fixes : #2803
2021-02-10 11:58:37 -06:00
Richard Hughes
c123bee369
trivial: Fix a buffer-overread spotted by AddressSanitizer
2021-02-09 13:05:09 +00:00
Richard Hughes
5294d0c7c0
trivial: Use g_memdup2() on new glib2 versions to avoid a warning
2021-02-05 09:50:02 +00:00
Richard Hughes
9b11af985f
Add fu_memdup_safe()
...
See https://mail.gnome.org/archives/desktop-devel-list/2021-February/msg00000.html
for more details.
2021-02-04 21:01:00 +00:00
Richard Hughes
c75466751d
trivial: Add fu_common_uri_get_scheme() for future use
2021-01-28 15:05:32 +00:00
Richard Hughes
e52e1b49ad
trivial: Add fu_common_strjoin_array() to join arrays of strings
2021-01-26 14:25:56 +00:00
Richard Hughes
68175e9ba8
Use a quarter of the RAM size as the archive maximum
...
It is impossible to choose a static default that is appropriate for both a tiny
ARM IoT device and a giant Xeon server.
Fixes https://github.com/fwupd/fwupd/issues/2760
2021-01-14 22:36:38 +00:00
Richard Hughes
97ad335e4b
Fix OOM when using large ArchiveSizeMax values
...
Read from the file descriptor in 32kB chunks rather than allocating a huge
buffer upfront.
2021-01-14 22:36:38 +00:00
Richard Hughes
5add3a75dd
Make libarchive optional for fuzzing
2021-01-13 20:12:37 +00:00
Richard Hughes
b63cfa90d6
Detect the AMD TSME encryption state for HSI
2021-01-06 16:45:33 +00:00
Richard Hughes
364e2685ca
Do not show unprintable chars from invalid firmware in the logs
2021-01-05 15:15:07 +00:00
Richard Hughes
6a489a9eaf
trivial: Add missing calls to g_return_val_if_fail()
2021-01-04 15:24:35 +00:00
Mario Limonciello
ed4e9123c6
trivial: libfwupdplugin: don't fail to set up bwrap if /lib64 doesn't exist
...
Fixes : #2690
2020-12-16 07:56:09 +00:00
Richard Hughes
9d20bf9212
Do not trust the Block.HintSystem boolean for ESP filtering
...
Instead use it for preferential selection. If there is none it's okay, but if
there are 3 pick the one with the flag.
Fixes https://github.com/fwupd/fwupd/issues/2676
2020-12-15 15:42:13 +00:00