2 构建过程的安全性
OpenEmbedded Build System 负责执行构建。它的运行方式经过仔细设计, 旨在兼顾安全性和可复现性。与任何系统一样,要实现这些目标,必须谨慎使用, 并遵循其设计方式。使用本系统时应考虑以下事项:
构建通常力求以某种形式验证构建过程的所有输入。源码归档包带有校验和, Git 源码树指定具体的 Git 修订版本,元数据通常也纳入源码版本管理并具有 修订版本。
更多信息请参阅 BitBake 用户手册的 File Download Support 一节。
某些可能影响构建的因素并未经过验证。系统假定运行构建的操作系统是安全的, 并且其配置和版本已知。系统采取了大量措施来隔离主机环境对输出的污染, 但这种污染仍然可能发生,尤其是在有人蓄意破坏时。
支持的主机发行版见 Yocto Project 参考手册的 受支持的 Linux 发行版 一节。
构建假定 DL_DIR 是安全的位置。下载产物进入该目录后,不会反复 验证。用户可能修改其中的 Git 树或归档包,而构建过程未必能检测到。
构建假定来自 SSTATE_DIR 或已配置的 共享状态镜像站 的共享状态对象是 安全的(如果配置了 签名检查, 则会执行检查)。
核心构建工具 BitBake 是一个执行引擎,在构建以及解析配方时都会 执行代码。这是其功能与用途不可或缺的一部分,本身并非安全问题。
OpenEmbedded-Core (OE-Core) 已充分测试可复现性问题,但其他层及其 配方和代码未必经过同样充分的测试。这些可复现性测试也可供其他人用于测试 自己的层和代码。
构建会组合许多不同的软件组件,我们信任这些代码库没有问题。建议以可随时 丢弃的方式设置构建环境:如果某天发现这类问题,应能直接销毁构建环境, 然后从干净状态重新创建。