Scrutiny Firmware Description (SFD)#

A Scrutiny Firmware Description (SFD) is a file that’s generated during the firmware’s build phase for embedded systems. This file includes:

  1. The device’s static and global variables, which are identified from the debug symbols (including address, size, type, endianness)

  2. firmware ID, which is used to match the SFD with the corresponding firmware

  3. Metadata about the firmware, such as its name, project version, author, build date, etc.

  4. Alias definitions

The SFD must be installed on the server using the install-sfd command with the CLI.

When a device connects, the server will automatically load the appropriate SFD based on the firmware ID that the device broadcasts.


ScrutinyClient.get_installed_sfds()[source]#

Gets the list of Scrutiny Firmware Description file installed on the server

Raises:

OperationFailure – Failed to get the SFD list

Returns:

A dictionary mapping firmware IDS (hash) to a SFDInfo structure

Return type:

Dict[str, SFDInfo]


class scrutiny.sdk.SFDInfo[source]#

(Immutable struct) Represent a Scrutiny Firmware Description

firmware_id: str#

Unique firmware hash

metadata: SFDMetadata | None#

The firmware metadata embedded in the Scrutiny Firmware Description file if available. None if no metadata has been added to the SFD


class scrutiny.sdk.SFDMetadata[source]#

(Immutable struct) All the metadata associated with a Scrutiny Firmware Description

project_name: str | None#

Name of the project. None if not available

author: str | None#

The author of this firmware. None if not available

version: str | None#

The version string of this firmware. None if not available

generation_info: SFDGenerationInfo | None#

Metadata regarding the creation environment of the SFD file. None if not available


class scrutiny.sdk.SFDGenerationInfo[source]#

(Immutable struct) Metadata relative to the generation of the SFD

timestamp: datetime | None#

Date/time at which the SFD has been created None if not available

python_version: str | None#

Python version with which the SFD has been created None if not available

scrutiny_version: str | None#

Scrutiny version with which the SFD has been created None if not available

system_type: str | None#

Type of system on which the SFD has been created. Value given by Python platform.system(). None if not available