Skip to content


ComponentInterface (Generic, ABC)

A component is responsible for modifying or create firmware resources. They are categorized as identifiers, unpackers, analyzers, modifiers and packers.

run(self, job_id, resource_id, job_context, resource_context, resource_view_context, config) async


Name Type Description Default
job_id bytes required
resource_id bytes required
job_context JobRunContext required
resource_context ResourceContext required
resource_view_context ResourceViewContext required
config ~CC required


Type Description

The IDs of all resources modified by this component

Source code in ofrak/component/
async def run(
    job_id: bytes,
    resource_id: bytes,
    job_context: JobRunContext,
    resource_context: ResourceContext,
    resource_view_context: ResourceViewContext,
    config: CC,
) -> ComponentRunResult:

    :param job_id:
    :param resource_id:
    :param job_context:
    :param resource_context:
    :param resource_view_context:
    :param config:
    :return: The IDs of all resources modified by this component
    raise NotImplementedError()