Skip to main content

Memfault CLI tool

Project description

Memfault Build ID Tool

This package contains the mflt_build_id CLI tool.

The purpose of the tool is simplify reading or writing Build IDs in a firmware image irrespective of the compiler or build system being used in a project.

Example Usage

$ mflt_build_id --help
usage: mflt_build_id [-h] [--dump [DUMP]] [--crc CRC] [--sha1 SHA1] elf

Inspects provided ELF for a Build ID and when missing adds one if possible.

If a pre-existing Build ID is found (either a GNU Build ID or a Memfault Build ID),
no action is taken.

If no Build ID is found, this script will generate a unique ID by computing a SHA1 over the
contents that will be in the final binary. Once computed, the build ID will be "patched" into a
read-only struct defined in memfault-firmware-sdk/components/core/src/memfault_build_id.c to hold
the info.

If the --crc <symbol_holding_crc32> argument is used, instead of populating the Memfault Build ID
structure, the symbol specified will be updated with a CRC32 computed over the contents that will
be in the final binary.

If the --sha1 <symbol_holding_sha> argument is used, instead of populating the Memfault Build ID
structure, the symbol specified will be updated directly with Memfault SHA1 using the same strategy
discussed above. The only expectation in this mode is that a global symbol has been defined as follow:

const uint8_t g_your_symbol_build_id[20] = { 0x1, };

For further reading about Build Ids in general see:
  https://mflt.io//symbol-file-build-ids

positional arguments:
  elf

options:
  -h, --help     show this help message and exit
  --dump [DUMP]
  --crc CRC
  --sha1 SHA1

Changes

[1.1.1] - 2025-04-18

  • Fix mflt_build_id script to be installed correctly again (regression in 1.1.0)
  • Add an alternate name mflt-build-id for the mflt_build_id script

[1.1.0] - 2024-11-07

  • Remove support for Python 3.6 + 3.7

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mflt_build_id-1.1.1.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mflt_build_id-1.1.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file mflt_build_id-1.1.1.tar.gz.

File metadata

  • Download URL: mflt_build_id-1.1.1.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for mflt_build_id-1.1.1.tar.gz
Algorithm Hash digest
SHA256 a1d0282db8c3806e939c49d253a84250e12913a9a3b0bc967a0afe419370870a
MD5 bff4fca66d7af5dd7004a6f36512988e
BLAKE2b-256 b58d4a5c98f78b2a6f8aa8ef6d96224c28c5523cb199a2068656fa630f440a8e

See more details on using hashes here.

File details

Details for the file mflt_build_id-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mflt_build_id-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 48f1e0bf75b2953424fb501ef850520346a3ffb9f486c9fb120dcacae1a48fe6
MD5 4af611277465d6eb8632a78413513a59
BLAKE2b-256 19a5cb13384bf935c8cb2a4a8bbb4be79a82650aec2304e74e413e0903308633

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page