Skip to content

A host tool to generate SWU update package for SWUpdate

License

Notifications You must be signed in to change notification settings

sbabic/swugenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swugenerator

A host tool to generate SWU update package for SWUpdate.

SYNOPSIS

usage: SWUGenerator [-h] [-K ENCRYPTION_KEY_FILE] [-k SIGN] -s SW_DESCRIPTION
[-a ARTIFACTORY] -o SWU_FILE [-c CONFIG] command

Generator SWU Packages for SWUpdate

positional arguments:
command command to be executed, one of : create
optional arguments:
-h, --help show this help message and exit
-K ENCRYPTION_KEY_FILE, --encryption-key-file ENCRYPTION_KEY_FILE
 AES Key to encrypt artifacts
-n, --no-compress
 Do not compress files
-k SIGN, --sign SIGN
 RSA key or certificate to sign the SWU
-s SW_DESCRIPTION, --sw-description SW_DESCRIPTION
 sw-description template
-t, --encrypt-swdesc
 Encrypt sw-description
-a ARTIFACTORY, --artifactory ARTIFACTORY
 list of directories where artifacts are searched
-o SWU_FILE, --swu-file SWU_FILE
 SWU output file
-c CONFIG, --config CONFIG
 configuration file

Description

swugenerator is a tool running on host to create and modify SWUpdate's Update files (SWU). SWU file contains a meta description of the release (sw-description), and swugenerator adds components to a template passed from command line. This tool requires openssl to run and to sign the SWU. It is goal of the tool to fill the gap with Yocto/OE, where SWU generation is done by classes in the meta-swupdate layer, but other buildsystems like Debian or Buildroot have no tools to create a SWU.

The tool signs the SWU and can encrypt the artifacts. The tool parses the libconf based sw-description (tool does not work for JSON based sw-description) and provides the following features:

  • replace occurrencies of variables found in the CONFIG file
  • add sha256 to each artifact
  • check if an artifact should be encrypted and encrypts it
  • sign sw-description with one of the methods accepted by SWUpdate
  • pack all artifacts into a SWU file

Installation

To install swugenerator clone the repository, and from the main project folder run pip (pip3 required):

pip install .

To uninstall:

pip uninstall swugenerator