Fwupd – 2.0
Description: Reference for Fwupd-2.0

### Namespace

# Fwupd – 2.0

Functionality exported by libfwupd for client applications

Version | 2.1.4
Authors | fwupd Development Team
License | LGPL-2.1-or-later
Website | https://www.fwupd.org
Source | https://github.com/fwupd/fwupd

#### Build

C headers | `fwupd.h`
pkg-config files | `fwupd`

#### Dependencies

GObject—2.0 | The base type system library
| Browse documentation
Gio—2.0 | A modern, easy-to-use VFS API
| Browse documentation

#### Additional documentation

- Classes Hierarchy

#### Classes

BiosSetting | A BIOS setting that represents a setting in the firmware.
Client | Allow client code to call the daemon methods.
Device | A physical device on the host with optionally updatable firmware.
JcatBlob |
JcatFile |
JcatItem |
JsonParser | A streaming tokenizer JSON parser that is resistant to malicious input.
Plugin | A plugin which is used by fwupd to enumerate and update devices.
Release | A firmware release with a specific version.
Remote | A source of metadata that provides firmware.
Report | A firmware report from a vendor.
Request | A user request from the device.
SecurityAttr | A Host Security ID attribute that represents something that was measured.

#### Interfaces

Codec | A codec that can serialize and deserialize objects to formats such as text, JSON or `GVariant`.

#### Structs

JsonArray | A JSON array.
JsonNode | A JSON node.
JsonObject | A JSON object.

#### Aliases

_guid_t |

#### Enumerations

BiosSettingKind | The type of BIOS setting.
JcatBlobKind |
JcatBlobMethod |
JsonNodeKind | JSON node kind.
ReleaseUrgency | The release urgency.
RemoteKind | The kind of remote.
RequestKind | The kind of request we are asking of the user.
SecurityAttrLevel | The HSI level.
SecurityAttrResult | The HSI result.
Status | The flags to show daemon status.
UpdateState | The update state.
VersionFormat | The flags used when parsing version numbers. If no verification is required then `PLAIN` should be used to signify an unparsable text string.

#### Bitfields

ClientDownloadFlags | The options to use for downloading.
ClientUploadFlags | The options to use for uploading.
CodecFlags | The flags to use when converting data from one form to another.
DeviceFlags | Flags used to represent device attributes.
DeviceProblem | Problems are reasons why the device is not updatable. All problems have to be fixable by the user, rather than the plugin author.
FeatureFlags | The flags to the feature capabilities of the front-end client.
GuidFlags | The flags to show how the data should be converted.
InstallFlags | Flags to set when performing the firmware update or install.
JcatBlobFlags |
JsonExportFlags | JSON export flags.
JsonLoadFlags | JSON load flags.
PluginFlags | Flags used to represent plugin attributes.
ReleaseFlags | Flags used to represent release attributes.
RemoteFlags | The flags available for the remote.
ReportFlags | Flags used to represent report attributes.
RequestFlags | Flags used to represent request attributes.
SecurityAttrFlags | The flags available for HSI attributes.
SelfSignFlags | Flags to set when performing the firmware update or install.

#### Error Domains

Error | The error code.

#### Functions

checksum_format_for_display | Formats a checksum for display. since: 0.9.3
checksum_get_best | Gets a the best possible checksum kind. since: 0.9.4
checksum_get_by_kind | Gets a specific checksum kind. since: 0.9.4
checksum_guess_kind | Guesses the checksum kind based on the length of the hash. since: 0.9.3
checksum_type_to_string_display | Formats a checksum type for display. since: 1.9.6
error_convert | Convert the error to a `FwupdError`, if required. since: 2.0.0
error_from_string | Converts a string to an enumerated error. since: 0.7.0
error_quark | An error quark. since: 0.1.1
error_to_string | Converts an enumerated error to a string. since: 0.7.0
feature_flag_from_string | Converts a string to an enumerated value. since: 1.4.5
feature_flag_to_string | Converts an enumerated value to a string. since: 1.4.5
guid_from_string | Converts a string GUID into its binary encoding. All string GUIDs are formatted as big endian but on-disk can be encoded in different ways. since: 1.2.5
guid_hash_data | Returns a GUID for some data. This uses a hash and so even small differences in the `data` will produce radically different return values. since: 1.2.5
guid_hash_string | Returns a GUID for a given string. This uses a hash and so even small differences in the `str` will produce radically different return values. since: 1.2.5
guid_is_valid | Checks the string is a valid GUID. since: 1.2.5
guid_to_string | Returns a text GUID of mixed or BE endian for a packed buffer. since: 1.2.5
install_flags_from_string | Converts a string to an enumerated value. since: 2.0.4
install_flags_to_string | Converts an enumerated value to a string. since: 2.0.0
percentage_delta_notify | Calculates if a percentage change is significant, and worth notifying the client about. since: 2.1.3
percentage_is_valid | Calculates is a percentage value is valid, i.e. `>= 0.0` and `<= 100.0`. since: 2.1.3
status_from_string | Converts a string to an enumerated value. since: 0.1.1
status_to_string | Converts an enumerated value to a string. since: 0.1.1
strerror | Returns an untranslated string corresponding to the given error code, e.g. “no such process”. since: 2.0.11
update_state_from_string | Converts a string to an enumerated value. since: 0.7.0
update_state_to_string | Converts an enumerated value to a string. since: 0.7.0
variant_from_hash_kv |
variant_get_boolean | Gets a boolean value from a variant. since: 2.1.4
variant_get_double | Gets a double from a variant. since: 2.1.4
variant_get_int32 | Gets an signed integer from a variant. since: 2.1.4
variant_get_string | Gets a string value from a variant. since: 2.1.4
variant_get_strv | Gets an array of strings from a variant. since: 2.1.4
variant_get_uint32 | Gets an unsigned integer from a variant, handling both ‘u’ and ‘i’ types. since: 2.1.4
variant_get_uint64 | Gets an unsigned integer from a variant, handling both ‘t’ and ‘x’ types. since: 2.1.4
version_format_from_string | Converts a string to an enumerated value. since: 1.2.9
version_format_to_string | Converts an enumerated value to a string. since: 1.2.9
version_string | Gets the libfwupd installed runtime version. since: 1.6.1

#### Function Macros

CHECK_VERSION | Check whether a fwupd version equal to or greater than major.minor.micro.

#### Constants

BATTERY_LEVEL_INVALID | This value signifies the battery level is either unset, or the value cannot be discovered.
BIOS_SETTING_DEBUG_CMD |
BIOS_SETTING_KIND_LAST |
BIOS_SETTING_PENDING_REBOOT |
BIOS_SETTING_RESET_BIOS |
BIOS_SETTING_SELF_TEST |
DBUS_INTERFACE | The dbus interface.
DBUS_PATH | The dbus path.
DBUS_SERVICE | The dbus service.
DEVICE_ID_ANY | Wildcard used for matching all device ids in fwupd.
ERROR_LAST |
JCAT_BLOB_KIND_LAST |
JCAT_BLOB_METHOD_LAST |
JSON_NODE_KIND_LAST |
MAJOR_VERSION | The compile-time major version.
MICRO_VERSION | The compile-time micro version.
MINOR_VERSION | The compile-time minor version.
PERCENTAGE_UNKNOWN | The percentage value when the daemon does not know the current progress value. This usually results in a “bouncing” progressbar.
RELEASE_URGENCY_LAST |
REMOTE_KIND_LAST |
REQUEST_ID_DO_NOT_POWER_OFF | Show the user a message not to unplug the machine from the AC power, e.g. “Do not turn off your computer or remove the AC adaptor until you are sure the update has completed.”.
REQUEST_ID_INSERT_USB_CABLE | The user needs to insert the cable to complete the update, e.g. “The update will continue when the device USB cable has been re-inserted.”.
REQUEST_ID_PRESS_UNLOCK | The user needs to press unlock on the device to continue, e.g. “Press unlock on the device to continue the update process.”.
REQUEST_ID_REMOVE_REPLUG | The user needs to remove and reinsert the device to complete the update, e.g. “The update will continue when the device USB cable has been unplugged and then re-inserted.”.
REQUEST_ID_REMOVE_USB_CABLE | The user needs to remove the device to complete the update, e.g. “The update will continue when the device USB cable has been unplugged.”.
REQUEST_ID_REPLUG_INSTALL | Show the user a message to replug the device and then install the firmware, e.g. “Unplug and replug the device, to continue the update process.”.
REQUEST_ID_REPLUG_POWER | Show the user a message to replug the power connector, e.g. “The update will continue when the device power cable has been unplugged and then re-inserted.”.
REQUEST_ID_RESTART_DAEMON | Show the user a message that they need to restart the daemon, e.g. “Please restart the fwupd service.”.
REQUEST_KIND_LAST |
RESULT_KEY_APPSTREAM_ID | Result key to represent AppstreamId.
RESULT_KEY_BATTERY_LEVEL | Result key to represent the current battery level in percent. Expressed from 0-100%, or 101 for invalid or unset.
RESULT_KEY_BATTERY_THRESHOLD | Result key to represent the minimum battery level required to perform an update. Expressed from 0-100%, or 101 for invalid or unset.
RESULT_KEY_BIOS_SETTING_CURRENT_VALUE | Result key to represent the current value of BIOS setting.
RESULT_KEY_BIOS_SETTING_FILENAME | Result key to represent the filename within `path` for BIOS setting value operations.
RESULT_KEY_BIOS_SETTING_ID | Result key to represent the unique identifier of the BIOS setting.
RESULT_KEY_BIOS_SETTING_LOWER_BOUND | Result key to represent the upper bound for an integer BIOS setting. or minimum length for string BIOS setting. The D-Bus type signature string is ‘t’ i.e. a unsigned 64 bit integer.
RESULT_KEY_BIOS_SETTING_POSSIBLE_VALUES | Result key to represent possible values.
RESULT_KEY_BIOS_SETTING_READ_ONLY | Result key to represent whether BIOS setting is read only.
RESULT_KEY_BIOS_SETTING_SCALAR_INCREMENT | Result key to represent the scalar increment for an integer BIOS setting.
RESULT_KEY_BIOS_SETTING_TARGET_VALUE | Result key to represent the value that would enable this attribute.
RESULT_KEY_BIOS_SETTING_TYPE | Result key to represent the type of BIOS setting. 0 is invalid, 1+ represent an attribute type.
RESULT_KEY_BIOS_SETTING_UPPER_BOUND | Result key to represent the lower bound for an integer BIOS setting or maximum length for string BIOS setting.
RESULT_KEY_BRANCH | Result key to represent Branch.
RESULT_KEY_CATEGORIES | Result key to represent Categories.
RESULT_KEY_CHECKSUM | Result key to represent Checksum.
RESULT_KEY_COMPOSITE_ID | Result key to represent CompositeId.
RESULT_KEY_CREATED | Result key to represent Created.
RESULT_KEY_DESCRIPTION | Result key to represent Description.
RESULT_KEY_DETACH_CAPTION | Result key to represent DetachCaption.
RESULT_KEY_DETACH_IMAGE | Result key to represent DetachImage.
RESULT_KEY_DETAILS_URL | Result key to represent DetailsUrl.
RESULT_KEY_DEVICE_ID | Result key to represent DeviceId.
RESULT_KEY_DEVICE_NAME | Result key to represent the device name.
RESULT_KEY_DISTRO_ID | Result key to represent the distribution ID.
RESULT_KEY_DISTRO_VARIANT | Result key to represent the distribution variant.
RESULT_KEY_DISTRO_VERSION | Result key to represent the distribution version.
RESULT_KEY_FILENAME | Result key to represent Filename.
RESULT_KEY_FLAGS | Result key to represent Flags.
RESULT_KEY_FLASHES_LEFT | Result key to represent FlashesLeft.
RESULT_KEY_GUID | Result key to represent Guid.
RESULT_KEY_HOMEPAGE | Result key to represent Homepage.
RESULT_KEY_HSI_LEVEL | Result key to represent HsiLevel.
RESULT_KEY_HSI_RESULT | Result key to represent HsiResult.
RESULT_KEY_HSI_RESULT_FALLBACK | Result key to represent the fallback HsiResult.
RESULT_KEY_HSI_RESULT_SUCCESS | Result key to represent the desired HsiResult.
RESULT_KEY_ICON | Result key to represent Icon.
RESULT_KEY_INSTALL_DURATION | Result key to represent InstallDuration.
RESULT_KEY_INSTANCE_IDS | Result key to represent InstanceIds.
RESULT_KEY_ISSUES | Result key to represent Issues.
RESULT_KEY_KERNEL_CURRENT_VALUE | Result key to represent the current kernel setting.
RESULT_KEY_KERNEL_TARGET_VALUE | Result key to represent the target kernel setting.
RESULT_KEY_LICENSE | Result key to represent License.
RESULT_KEY_LOCATIONS | Result key to represent Locations.
RESULT_KEY_METADATA | Result key to represent Metadata.
RESULT_KEY_MODIFIED | Result key to represent Modified.
RESULT_KEY_NAME | Result key to represent Name.
RESULT_KEY_NAME_VARIANT_SUFFIX | Result key to represent NameVariantSuffix.
RESULT_KEY_PARENT_DEVICE_ID | Result key to represent ParentDeviceId.
RESULT_KEY_PERCENTAGE | Result key to represent progress percentage, typically installation or verification.
RESULT_KEY_PLUGIN | Result key to represent Plugin.
RESULT_KEY_PROBLEMS | Result key to represent problems.
RESULT_KEY_PROTOCOL | Result key to represent Protocol.
RESULT_KEY_RELEASE | Result key to represent Release.
RESULT_KEY_RELEASE_ID | Result key to represent the release ID.
RESULT_KEY_REMOTE_ID | Result key to represent RemoteId.
RESULT_KEY_REPORTS | Result key to represent an array of reports.
RESULT_KEY_REQUEST_FLAGS | Result key to represent RequestFlags.
RESULT_KEY_REQUEST_KIND | Result key to represent RequestKind.
RESULT_KEY_SBOM_URL | Result key to represent SourceUrl.
RESULT_KEY_SERIAL | Result key to represent Serial.
RESULT_KEY_SIZE | Result key to represent Size.
RESULT_KEY_SOURCE_URL | Result key to represent SourceUrl.
RESULT_KEY_STATUS | Result key to represent Status.
RESULT_KEY_SUMMARY | Result key to represent Summary.
RESULT_KEY_TAGS | Result key to represent release tags.
RESULT_KEY_TRUST_FLAGS | Result key to represent TrustFlags.
RESULT_KEY_UPDATE_ERROR | Result key to represent UpdateError.
RESULT_KEY_UPDATE_IMAGE | Result key to represent UpdateImage.
RESULT_KEY_UPDATE_MESSAGE | Result key to represent UpdateMessage.
RESULT_KEY_UPDATE_STATE | Result key to represent UpdateState.
RESULT_KEY_URGENCY | Result key to represent Urgency.
RESULT_KEY_URI | Result key to represent Uri.
RESULT_KEY_VENDOR | Result key to represent Vendor.
RESULT_KEY_VENDOR_ID | Result key to represent VendorId.
RESULT_KEY_VERSION | Result key to represent Version.
RESULT_KEY_VERSION_BOOTLOADER | Result key to represent VersionBootloader.
RESULT_KEY_VERSION_BOOTLOADER_RAW | Result key to represent VersionBootloaderRaw.
RESULT_KEY_VERSION_BUILD_DATE | Result key to represent VersionBuildDate.
RESULT_KEY_VERSION_FORMAT | Result key to represent VersionFormat.
RESULT_KEY_VERSION_HIGHEST | Result key to represent VersionHighest.
RESULT_KEY_VERSION_HIGHEST_RAW | Result key to represent VersionHighestRaw.
RESULT_KEY_VERSION_LOWEST | Result key to represent VersionLowest.
RESULT_KEY_VERSION_LOWEST_RAW | Result key to represent VersionLowestRaw.
RESULT_KEY_VERSION_OLD | Result key to represent the old version string.
RESULT_KEY_VERSION_RAW | Result key to represent VersionRaw.
SECURITY_ATTR_ID_AMD_ENTRY_SIGN | Host Security ID attribute for entry sign protection of AMD platform firmware.
SECURITY_ATTR_ID_AMD_PLATFORM_SECURE_BOOT | Host Security ID attribute for Platform Secure Boot of AMD platform firmware.
SECURITY_ATTR_ID_AMD_ROLLBACK_PROTECTION | Host Security ID attribute for Rollback protection of AMD platform firmware.
SECURITY_ATTR_ID_AMD_SMM_LOCKED | Host Security ID attribute for AMD SMM locked.
SECURITY_ATTR_ID_AMD_SPI_REPLAY_PROTECTION | Host Security ID attribute for SPI replay protection.
SECURITY_ATTR_ID_AMD_SPI_WRITE_PROTECTION | Host Security ID attribute for SPI Write protection.
SECURITY_ATTR_ID_BIOS_CAPSULE_UPDATES | Host Security ID attribute indicating Capsule updates are supported by the BIOS.
SECURITY_ATTR_ID_BIOS_ROLLBACK_PROTECTION | Host Security ID attribute for Rollback protection of BIOS firmware.
SECURITY_ATTR_ID_CET_ACTIVE | Host Security ID attribute for Intel CET active.
SECURITY_ATTR_ID_CET_ENABLED | Host Security ID attribute for Intel CET enabled.
SECURITY_ATTR_ID_ENCRYPTED_RAM | Host Security ID attribute indicating encrypted RAM available.
SECURITY_ATTR_ID_FWUPD_ATTESTATION | Host Security ID attribute for attestation.
SECURITY_ATTR_ID_FWUPD_PLUGINS | Host Security ID attribute for plugins.
SECURITY_ATTR_ID_FWUPD_UPDATES | Host Security ID attribute for updates.
SECURITY_ATTR_ID_HOST_EMULATION | Host Security ID attribute for host emulation.
SECURITY_ATTR_ID_HP_SURESTART | Host Security ID attribute for HP Surestart.
SECURITY_ATTR_ID_INTEL_BOOTGUARD_ACM | Host Security ID attribute for Intel Bootguard ACM.
SECURITY_ATTR_ID_INTEL_BOOTGUARD_ENABLED | Host Security ID attribute for Intel Bootguard enabled.
SECURITY_ATTR_ID_INTEL_BOOTGUARD_OTP | Host Security ID attribute for Intel Bootguard OTP fuse.
SECURITY_ATTR_ID_INTEL_BOOTGUARD_POLICY | Host Security ID attribute for Intel Bootguard policy.
SECURITY_ATTR_ID_INTEL_BOOTGUARD_VERIFIED | Host Security ID attribute for Intel Bootguard verified.
SECURITY_ATTR_ID_INTEL_GDS | Host Security ID attribute indicating the processor is safe against Gather Data Sampling.
SECURITY_ATTR_ID_IOMMU | Host Security ID attribute for IOMMU.
SECURITY_ATTR_ID_KERNEL_LOCKDOWN | Host Security ID attribute for kernel lockdown.
SECURITY_ATTR_ID_KERNEL_SWAP | Host Security ID attribute for kernel swap.
SECURITY_ATTR_ID_KERNEL_TAINTED | Host Security ID attribute for kernel taint.
SECURITY_ATTR_ID_MEI_KEY_MANIFEST | Host Security ID attribute for Intel ME Key Manifest.
SECURITY_ATTR_ID_MEI_MANUFACTURING_MODE | Host Security ID attribute for Intel ME manufacturing mode.
SECURITY_ATTR_ID_MEI_OVERRIDE_STRAP | Host Security ID attribute for Intel ME override strap.
SECURITY_ATTR_ID_MEI_VERSION | Host Security ID attribute for Intel ME version.
SECURITY_ATTR_ID_PLATFORM_DEBUG_ENABLED | Host Security ID attribute for parts with debugging capabilities enabled.
SECURITY_ATTR_ID_PLATFORM_DEBUG_LOCKED | Host Security ID attribute for parts locked from debugging.
SECURITY_ATTR_ID_PLATFORM_FUSED | Host Security ID attribute for fused parts.
SECURITY_ATTR_ID_PREBOOT_DMA_PROTECTION | Host Security ID attribute for Pre-boot DMA protection.
SECURITY_ATTR_ID_SMAP | Host Security ID attribute for SMAP.
SECURITY_ATTR_ID_SPI_BIOSWE | Host Security ID attribute for Intel SPI BIOSWE configuration.
SECURITY_ATTR_ID_SPI_BLE | Host Security ID attribute for Intel SPI BLE configuration.
SECURITY_ATTR_ID_SPI_DESCRIPTOR | Host Security ID attribute for Intel SPI descriptor.
SECURITY_ATTR_ID_SPI_SMM_BWP | Host Security ID attribute for Intel SPI SMM BWP.
SECURITY_ATTR_ID_SUPPORTED_CPU | Host Security ID attribute for Supported CPU.
SECURITY_ATTR_ID_SUSPEND_TO_IDLE | Host Security ID attribute for Suspend to Idle.
SECURITY_ATTR_ID_SUSPEND_TO_RAM | Host Security ID attribute for Suspend to RAM.
SECURITY_ATTR_ID_TPM_EMPTY_PCR | Host Security ID attribute for empty PCR.
SECURITY_ATTR_ID_TPM_RECONSTRUCTION_PCR0 | Host Security ID attribute for TPM PCR0 reconstruction.
SECURITY_ATTR_ID_TPM_VERSION_20 | Host Security ID attribute for TPM 2.0.
SECURITY_ATTR_ID_UEFI_BOOTSERVICE_VARS | Host Security ID attribute indicating if Bootservice-only variables are hidden.
SECURITY_ATTR_ID_UEFI_DB | Host Security ID attribute for UEFI db certificate store.
SECURITY_ATTR_ID_UEFI_MEMORY_PROTECTION | Host Security ID attribute for UEFI memory protection.
SECURITY_ATTR_ID_UEFI_PK | Host Security ID attribute for UEFI PK.
SECURITY_ATTR_ID_UEFI_SECUREBOOT | Host Security ID attribute for UEFI secure boot.
SECURITY_ATTR_LEVEL_LAST |
SECURITY_ATTR_RESULT_LAST |
STATUS_LAST |
UPDATE_STATE_LAST |
VERSION_FORMAT_LAST |