Linux kernel Yocto/Bitbake:如何处理系统生成的每个二进制文件?

Linux kernel Yocto/Bitbake:如何处理系统生成的每个二进制文件?,linux-kernel,openssl,glibc,yocto,bitbake,Linux Kernel,Openssl,Glibc,Yocto,Bitbake,用例: 我正在为我的Raspberry Pi开发物联网Linux系统。只读rootfs不是一个选项,因为我想动态升级可执行文件。我想的是我的解决方案:我开发了一个可以对ELF文件(Linux可执行文件和库)进行签名的工具。它使用一些pub/priv密钥对节进行签名,将签名保存到一个节中,并在执行之前检查文件(与DigSig类似,但需要借助openssl lib)。库加载器(glibc)也被修改为在加载之前检查所有的linux“.so”-库。最后,我想在开源许可下发布项目和我的解决方案。目前它还没

用例: 我正在为我的Raspberry Pi开发物联网Linux系统。只读rootfs不是一个选项,因为我想动态升级可执行文件。我想的是我的解决方案:我开发了一个可以对ELF文件(Linux可执行文件和库)进行签名的工具。它使用一些pub/priv密钥对节进行签名,将签名保存到一个节中,并在执行之前检查文件(与DigSig类似,但需要借助openssl lib)。库加载器(glibc)也被修改为在加载之前检查所有的linux“.so”-库。最后,我想在开源许可下发布项目和我的解决方案。目前它还没有完成,离稳定还很远

开发状态:

  • ELF文件签名工具已完成
  • 内核被修改(新的安全模块/own syscall函数用于检查elf二进制签名)
  • Glibc已针对我的本地源代码进行了修改和修补
  • Quemu经过修补以支持我的新系统调用
  • Yocto环境已建立。图像在我的RaspberryPi 2测试机上运行
到目前为止还不错。我觉得我很接近我的解决方案

现在我需要: 使Yocto/bitbake启用所有ELF文件在生成过程之后都被签名。最好是rpm文件已经包含签名的ELF文件。签名过程将由一个配方为所有其他包完成。(因此我不想创建只修改根文件夹上文件的安装后脚本)


在谷歌搜索了几个小时,查看了yocto的文档后,我没有任何解决方案。如果有人能帮助我,那就太好了。

我想你可以在poky/meta/classes中定制package.bbclass,特别是split_和_strip_files函数可以帮助剥离每个文件

oe.utils.multi-process\u exec(sfiles,oe.package.runstrip)

您可以添加签名,然后在poky/meta/lib/oe/package.py中添加自定义工具