有没有办法为 Yocto 的 swupdate 层中的图像创建哈希(sha256)?
Is there a way to create hash(sha256) for images in Yocto's swupdate layer?
我的objective是,
- 为所有需要的文件创建
sha256
(进入 .swu
)
- 使用
RSA
算法签署 sw-description
文件。
我的 .swu
包括:
- 内核映像 -
bzImage
- 根文件系统 -
panther2-usb-panther2.ext4
- 软件描述文件 -
sw-description
- post 安装脚本 -
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
Is above approach better?
有没有办法让yocto/swupdate层为以上所有文件(sw-description
除外)生成sha256
并将这些生成的sha256
添加到sw-description文件中?
我可以通过在我的食谱文件中定义 SWUPDATE_SIGNING
和 SWUPDATE_PRIVATE_KEY
变量来签署 sw-description
,但是
how to generate sha256
?
meta-swupdate Yocto 层负责处理签名图像。
Swupdate 图像配方应包含例如:
SWUPDATE_SIGNING = "RSA"
SWUPDATE_PRIVATE_KEY = "/path/to/key"
然后,sha256 在 sw-description file
中自动计算,语法如下:
sha256 = "@panther2-usb-panther2.ext4";
其中 panther2-usb-panther2.ext4
是 SWUPDATE_IMAGES
变量中列出的工件。
可以在以下位置找到更多详细信息:
我的objective是,
- 为所有需要的文件创建
sha256
(进入.swu
) - 使用
RSA
算法签署sw-description
文件。
我的 .swu
包括:
- 内核映像 -
bzImage
- 根文件系统 -
panther2-usb-panther2.ext4
- 软件描述文件 -
sw-description
- post 安装脚本 -
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
Is above approach better?
有没有办法让yocto/swupdate层为以上所有文件(sw-description
除外)生成sha256
并将这些生成的sha256
添加到sw-description文件中?
我可以通过在我的食谱文件中定义 SWUPDATE_SIGNING
和 SWUPDATE_PRIVATE_KEY
变量来签署 sw-description
,但是
how to generate
sha256
?
meta-swupdate Yocto 层负责处理签名图像。
Swupdate 图像配方应包含例如:
SWUPDATE_SIGNING = "RSA"
SWUPDATE_PRIVATE_KEY = "/path/to/key"
然后,sha256 在 sw-description file
中自动计算,语法如下:
sha256 = "@panther2-usb-panther2.ext4";
其中 panther2-usb-panther2.ext4
是 SWUPDATE_IMAGES
变量中列出的工件。
可以在以下位置找到更多详细信息: