0

我的目标是,

  1. 为所有需要的文件创建sha256(进入.swu
  2. 用算法签署sw-description文件。RSA

我的.swu组成:

  • 内核图像 -bzImage
  • 根文件系统 -panther2-usb-panther2.ext4
  • 软件描述文件 -sw-description
  • 安装后脚本 -postinstall_swu.sh

我创建了一个生成sha256和签名的脚本sw-description。这是脚本:

#!/bin/bash

IMAGES="bzImage panther2-usb-panther2.ext4"
FILES="sw-description sw-description.sig postinstall_swu.sh $IMAGES"
echo "Executing swu signing script..."

cp ../sw-description .
cp ../postinstall_swu.sh .
cp ../../../../../deploy/images/panther2/bzImage .
cp ../../../../../deploy/images/panther2/panther2-usb-panther2.ext4 .

read -d ' ' SHA_ROOTFS < <(sha256sum panther2-usb-panther2.ext4)
read -d ' ' SHA_BZIMAGE < <(sha256sum bzImage)
read -d ' ' SHA_POSTINSTALL < <(sha256sum postinstall_swu.sh)

sed -i ':a;N;$!ba; s/sha256 = "[0-9A-Za-z]*"/sha256 = '"\"${SHA_ROOTFS}"\"'/1' sw-description
sed -i ':a;N;$!ba; s/sha256 = "[0-9A-Za-z]*"/sha256 = '"\"${SHA_BZIMAGE}"\"'/2' sw-description
sed -i ':a;N;$!ba; s/sha256 = "[0-9A-Za-z]*"/sha256 = '"\"${SHA_POSTINSTALL}"\"'/3' sw-description

openssl dgst -sha256 -sign ../priv.pem -passin file:../passphrase sw-description > sw-description.sig

for i in $FILES;do
        echo $i;done | cpio -ov -H crc >  panther2-swu-$USER-devbuild.swu

cp panther2-swu-$USER-devbuild.swu ../../../../../deploy/images/panther2

上述方法更好吗?

有没有办法让 yocto/swupdate 层sha256为所有上述文件(除了sw-description)生成并将这些生成的文件添加sha256到 sw-description 文件中?

sw-description我可以通过在我的配方文件中定义SWUPDATE_SIGNINGSWUPDATE_PRIVATE_KEY变量来签名,但是

如何生成sha256

4

1 回答 1

3

meta-swupdate Yocto 层负责处理签名图像。

Swupdate 图像配方应包含例如:

SWUPDATE_SIGNING = "RSA" 
SWUPDATE_PRIVATE_KEY = "/path/to/key"

然后,sw-description file使用以下语法自动计算 sha256:

sha256 = "@panther2-usb-panther2.ext4";

变量中panther2-usb-panther2.ext4列出的工件在哪里。SWUPDATE_IMAGES

更多详情可参见:

于 2019-04-30T10:58:03.373 回答