qcom 平台系统签名流程

security boot

平台的东东,oem 可定制的功能有限,只能参考平台文档,可以在高通的网站上搜索:Secure Boot Enablement,然后找对应平台的文档xxx-Secure Boot Enablement User Guide, step by step 操作即可

开机校验流程:


生成key step:

工具路径: Clarence.LA.2.0/common/sectoolsv2/ext/Linux_aarch64/

1、Clarence.LA.2.0/common/sectoolsv2/ext/Linux_aarch64/test_key/test_L400_key-secp384r1
    生成:v3.ext v3_attest.ext
    拷贝:opensslroot.cfg          LA.QSSI.14.0.r1/LINUX/android/vendor/qcom/proprietary/common/scripts/gensecimage/qpsa/alt_resources/default/openssl/opensslroot.cfg
2、生成qpsa_rootca.key
    openssl ecparam -genkey -name secp384r1 -outform PEM -out qpsa_rootca.key
3、生成 rootca_pem.crt
    sudo openssl req -new -key qpsa_rootca.key -sha384 -out rootca_pem.crt -subj /C=CN/ST=ChinaGD/L="ChinaSZh"/OU="General test Key"/OU="CDMA Technologies"/O=test/CN="test Root CA 1" -config opensslroot.cfg -x509 -days 7300 -set_serial 1

4、生成qpsa_rootca.cer
    openssl x509 -in rootca_pem.crt -inform PEM -out qpsa_rootca.cer -outform DER
    查看刚才生成的证书
    openssl x509 -text -inform DER -in qpsa_rootca.cer


5、生成CA key和证书
    openssl ecparam -genkey -name secp384r1 -outform PEM -out qpsa_ca.key
    sudo openssl req -new -key qpsa_ca.key -out ca.CSR -subj /C=CN/ST=ChinaGD/L="ChinaSZh"/OU="CDMA Technologies"/O=test/CN="test Attestation CA" -config opensslroot.cfg -sha384
    openssl x509 -req -in ca.CSR -CA rootca_pem.crt -CAkey qpsa_rootca.key -out ca_pem.crt -set_serial 1 -days 7300 -extfile v3.ext -sha384 -CAcreateserial
    openssl x509 -inform PEM -in ca_pem.crt -outform DER -out qpsa_ca.cer


6.生成root key的hash值
    openssl dgst -sha384 qpsa_rootca.cer >sha384rootcert.txt
 

参考文档:80-49880-42_REV_AA_SM4450_Secure_Boot_Enablement_User_Guide.pdf


给img签名


使用LOCAL 的方式签名命令:

$./Linux/sectools\
    secure-image \
    --sign /path/to/tz.mbn \
    --image-id=TZ \
    --security-profile  /path/to/clarence_security_profile.xml \
    --oem-id=0x1234 \
    --oem-product-id=0x00 \
    --anti-rollback-version=0x00 \
    --signing-mode=LOCAL \
    --root-certificate=./OEM-KEYS/qpsa_rootca.cer \
    --ca-certificate=./OEM- KEYS/qpsa_attestca.cer \
    --ca-key=./OEM-KEYS/qpsa_attestca.key \
    --outfile ./signed_images_out/tz.mbn

note:
oem-id、oem-product-id、root-certificate、ca-certificate、ca-key:需要根据项目的时间情况填写。(和生成sec.elf 一样)

anti-rollback-verision:是用于bp镜像防回滚的,一般我们保持为0,因为我们不会对BP 镜像定制。如果要定制升级为1或者其他值,也是可以的,但是需要慎重,因为这里是更新到了efuse中。我们的项目暂时没动这部分,所以我是一直写的0,如果有需求,可以参考《SM4450 Secure Boot Enablement User Guide》第七章进行深入了解。

image-id:这个是高通定好了的,bp的每个镜像都有对应的值,这个和anti-rollbcak-verison 也是密切相关的,要注意不要用错了。具体需参考《SM4450 Secure Boot Enablement User Guide》 中3.2.1 Software ID field的表。当然也可以查看contents.xml 中oem_imageid 字段。

参考:《KBA-230410213415_REV_2_QCM4490_QCS4490_Enable_secure_boot_with_sectools_version2.0.pdf》

sec.elf 文件生成


作用:用于烧写efuse的,就是我们常说的熔断。所以刷这个文件需要慎重,由于efuse的特殊性,熔断是不可逆的。
时机:刷入到secdata分区中,设备启动时,BROM会检测secdata分区,如果有数据或者数据有变化,并且签名校验通过,那么就将其内容更新到efuse(QFPROM)中。
描述:efuse后,加载了TZ部分,系统会初始化RPMB 的key。这里说的是加载了TZ 才初始化RPMB key(在efuse 中有一位,是表征是否要使能RPMB的,所以我们会在日志中看到,只有efuse的设备才会使用RPMB),这属于软件部分的设置,所以我们也可以配置TZ,不进行某些操作。而TZ 是闭源的,所以我们只能配置,如何配置?只能咨询高通,或者查看高通TZ 相关的文档。

参考文档:《QCM4490/QCS4490 Enable secure boot with sectools version 2.0》

FAQ:

设备熔断后,将签名镜像刷入,要保证能正常启动、一些基本功能正常,如果有异常,需要获取日志(一般是串口日志)看看是否有镜像漏签或者错签。
一般会遇到的问题:
1.还未进入kernel之前就挂掉:BP 中某个镜像签名有问题。
2.进入kernel之后挂掉:可能是某个子系统固件签名有问题。
3.指纹、人脸等功能无法使用:可能是相关TA 签名有问题。
4.综测、校准等工厂问题:可能是fsg 的签名问题。
5.firehose 无法刷入:可能是firehose 签名有问题。

单独签名一个img文件: 
Run the following command to sign XBL:
    python sectools.py secimage -s -i "<path to xbl.elf>" -g xbl -p sm6150 --cfg_selected_cert_config= OEM-KEYS
note :
    -s is to sign the image
    -i: is the path to the image file
    -g is the sign ID corresponding to the image_file provided
    -p is the ID of the chipset corresponding to the image_file
    --cfg_selected_cert_config is the OEM certificate configuration selection
Check the secimage_log.txt output file of XBL for following prints in the metadata:
    | debug | 0x00000002 |
    | multi_serial_numbers | 0x12345678 |

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/22713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CodeBlocks官方主题颜色更换及方法

文章目录 一、前言二 、用工具导入配置文件2.1 运行 cb_share_config.exe文件2.2 替换文件2.3 设置主题 三、配置主题3.1 步骤13.2 步骤23.3 步骤3 四、设置光标4.1 配置字体4.2 展示 行号 五、设置左边行号区域部分六、设置完后的效果七、下载地址 一、前言 Codeblocks 默认的…

【Python系列】Python装饰器

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【数据结构】图论中求最短路径——迪杰斯特拉算法(Dijkstra)、弗洛伊德算法(Floyd)

目录 最短路径 (*)迪杰斯特拉算法&#xff08;Dijkstra&#xff09;迪杰斯特拉算法&#xff08;Dijkstra&#xff09;的算法原理&#xff1a; 弗洛伊德算法&#xff08;Floyd&#xff09;弗洛伊德算法&#xff08;Floyd&#xff09;的算法原理&#xff1a;弗洛伊德算法的&#…

哪种价格行为指标对投资者有用?AnzoCapital昂首资本总结6个特征

各位投资者都知道价格行为指标对于交易极具助益&#xff0c;无论是初学者还是专业交易员都能运用。构建外汇交易系统时&#xff0c;这类指标堪称核心且必不可少的工具。 但不是所有的价格行为指标都对投资者有用的&#xff0c;哪种价格行为指标才是对投资者有用的&#xff0c;都…

CogVLM2多模态开源大模型部署与使用

CogVLM2多模态开源大模型部署与使用 项目简介 CogVLM2 是由清华大学团队发布的新一代开源模型系列。2024年5月24日&#xff0c;发布了Int4版本模型&#xff0c;只需16GB显存即可进行推理。2024年5月20日&#xff0c;发布了基于llama3-8b的CogVLM2&#xff0c;性能与GPT-4V相当…

论文AI率过高?掌握这四种技巧轻松降重

随着人工智能技术的突飞猛进&#xff0c;AI生成内容&#xff08;AIGC&#xff09;已被广泛用于学术论文撰写中&#xff0c;提高效率同时也带来了原创性的挑战。面对日益严格的学术审查&#xff0c;一个突出的问题是&#xff1a;使用AI代写的论文能否通过内容检测&#xff1f;因…

Linux 搭建 ZeroTier 的 Moon 服务器

系统&#xff1a;centos 7.6 轻量云服务器&#xff1a;腾讯云 Moon是什么&#xff0c;为什么需要Moon&#xff1f; ZeroTier通过自己的多个根服务器帮助我们建立虚拟的局域网&#xff0c;让虚拟局域网内的各台设备可以打洞直连。这些根服务器的功能有些类似于通过域名查询找到…

SpringCloud Hystrix服务熔断实例总结

SpringCloud Hystrix断路器-服务熔断与降级和HystrixDashboard SpringCloud Hystrix服务降级实例总结 【1】服务熔断 熔断机制概述 熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时&#xff0c;会进行服务的降级&…

WWDC 2024前瞻:苹果如何用AI技术重塑iOS 18和Siri

苹果下周的全球开发者大会有望成为这家 iPhone 制造商历史上的关键时刻。在 WWDC 上&#xff0c;这家库比蒂诺科技巨头将展示如何选择将人工智能技术集成到其设备和软件中&#xff0c;包括通过与 OpenAI 的历史性合作伙伴关系。随着重大事件的临近&#xff0c;有关 iOS 18 及其…

AI大模型时代必须关注的数据库 DuckDB1.0 正式发布

开源数据库DuckDB1.0 经过内部6年的打磨&#xff0c;积累了30万行代码&#xff0c;1.8万star&#xff0c;2024.06.03号正式发布了1.0版本&#xff08;代号 Snow Duck&#xff09;。 我们新一代程序员&#xff0c;没能见证MySQL 1.0、PostgreSQL 1.0、Windows 1.0、Linux 1.0、…

flinksql 回撤流中主键发生变更的影响(group by中的值发生改变)

flinksql 回撤流中,主键发生变更的影响 1 什么是回撤流2 主键变更场景2.2 实践发生3 实践中发现的比较好的的实时数仓架构1 什么是回撤流 这篇文章主要谈论一个场景,简单来说: 首先我们来简单的说一下什么是回撤流,以及回撤流的底层原理,举个例子: 这个说的不是很清晰…

【吊打面试官系列】MySQL 中有哪几种锁?

大家好&#xff0c;我是锋哥。今天分享关于 【MySQL 中有哪几种锁&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MySQL 中有哪几种锁&#xff1f; 1、表级锁&#xff1a;开销小&#xff0c;加锁快&#xff1b;不会出现死锁&#xff1b;锁定粒度大&#xff0c;…

TypeScript学习(一):开发环境搭建

官方文档搭建参考 https://learn.microsoft.com/zh-cn/training/modules/typescript-get-started/ 1.下载node.js https://nodejs.org/en/download 2.下载vscode https://code.visualstudio.com/ 3.在线ts的测试工具 https://www.typescriptlang.org/play/ 4.下载typescr…

H5即时通讯群聊源码无限建群创群/H5聊天系统聊天网站源码/H5语音聊天系统

源码介绍 支持自助建群 管理群 修改群资料支持自动登录 登陆成功可自助修改资料后台可查看群组聊天消息记录支持表情 动态表情 图片发布支持消息语音提醒

docker-compose教程

1. docker-compose是什么&#xff1f; 1. 1 简介 compose、machine 和 swarm 是docker 原生提供的三大编排工具。 简称docker三剑客。Compose 项目是 Docker 官方的开源项目&#xff0c;定义和运行多个 Docker 容器的应用&#xff08;Defining and running multi-container Do…

月入30000的软件测试人员,简历是什么样子的?

我们都知道&#xff0c;简历是一个人进入职场的敲门砖。从某种层面来说&#xff0c;简历也像一个人的具象身份证&#xff0c;或者专业资格证。所以&#xff0c;一份简历的好坏&#xff0c;不仅关乎个人的“脸面”&#xff0c;更关乎你是不是一个有“含金量”的技术人员。 所以…

SVG画双色虚线并带有流动效果

实现效果 HTML代码 <svg xmlns"http://www.w3.org/2000/svg" viewBox"0 0 100 100" version"1.1"><polyline points"10,20 10,40 80,40 80,60" stroke-width"2" stroke-dasharray"10 10" fill"non…

C语言数据结构排序、插入排序、希尔排序(多组并排、一组排完排另一组)、选择排序、堆排序、冒泡排序等的介绍

文章目录 前言打印数组函数一、插入排序二、希尔排序三、选择排序四、堆排序五、冒泡排序总结 前言 C语言数据结构排序、插入排序、希尔排序&#xff08;多组并排、一组排完排另一组&#xff09;、选择排序、堆排序、冒泡排序等的介绍 打印数组函数 打印数组函数定义 // 打印…

如何以定投策略投资场外个股期权?

场外个股期权为投资者提供了一种灵活且富有潜力的投资工具。与传统的投资方式不同&#xff0c;场外个股期权以其低门槛、高灵活性和潜在的较高回报吸引了众多投资者。对于希望长期稳健增值的投资者来说&#xff0c;利用定投策略来投资场外个股期权是一个值得考虑的选项。 文章…

什么样的男士内裤比较好?按这个方法选男士内裤不会出错!

男士内裤作为日常穿着的重要服饰&#xff0c;其舒适度与卫生性对男士们的健康至关重要。随着时代的变迁&#xff0c;男士内裤的款式与材质也日益丰富多样&#xff0c;为男士们提供了更多选择。 目前市场上&#xff0c;男士内裤主要分为三角、平角和四角三大类别。其中&#xf…