AOSP 9/11嵌入式系统SBOM生成可靠方法咨询
AOSP 9/11 嵌入式系统SBOM生成可靠方案
针对AOSP 9和11的SBOM需求,以下是几种经过验证的实现方法:
一、利用AOSP原生资源/工具
- AOSP 11 官方SBOM生成工具
AOSP 11在build/make/tools/sbom目录下内置了SBOM生成器,构建完成后直接执行make sbom即可生成JSON格式的SBOM,包含所有组件的名称、版本、类型、依赖关系等核心信息。如果想在构建过程中同步生成,可以添加构建参数:make SBOM_GENERATE=true。 - AOSP 9 基于module-info.json解析
AOSP 9没有原生SBOM工具,但构建完成后会在out/target/product/<你的设备名>/obj/module-info.json生成模块信息文件,里面记录了所有编译生成的库、二进制、APK等组件的基础信息。你可以写个简单的Python脚本解析这个JSON,提取组件名称、路径、模块类型,再结合源码中Android.mk/Android.bp里的LOCAL_VERSION字段补全版本信息,快速生成SBOM。
二、第三方工具适配
- CycloneDX AOSP插件
适配AOSP 9和11的CycloneDX插件可以直接解析构建产物中的模块信息、ELF文件元数据以及APK的manifest信息,生成符合CycloneDX标准的SBOM。只需将插件集成到AOSP构建流程,或者在构建完成后扫描out目录即可,无需大量自定义开发。 - SPDX命令行工具扫描
使用SPDX的命令行工具扫描AOSP的out输出目录,工具会自动识别二进制、库、APK等组件,部分组件的版本信息需要手动补充——比如从源码的构建配置文件或git提交记录中提取(用git log --oneline -n 1获取组件源码的最近提交哈希作为版本标识也是常用方案)。
三、手动补全与验证
- 对于部分无明确版本字段的组件,直接查看其源码目录下的
Android.mk/Android.bp文件,提取LOCAL_VERSION或类似字段;如果没有版本字段,用组件源码的git提交哈希作为版本标识也符合评审要求。 - 镜像中的预装APK,可以通过
aapt dump badging <APK路径>命令提取版本名称、版本号等信息,补充到SBOM中。
内容的提问来源于stack exchange,提问作者Ber
相关产品推荐
相关产品推荐

