许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  QCS2290 secureboot 流程

QCS2290 secureboot 流程

阅读数 4
点赞 0
article_banner

1、提前准备

  1. Bp侧代码
  2. Ap侧代码(全编译通过)
  3. HEXAGON_Tools
  4. Snapdragon_SD_LLVM_ARM.LNX.4.0 Installer_40200.1.tar 高通Boot编译工具
  5. 8.0版本以下版本的gcc

2、创建新的 文件夹 存放临时的签名文件OEM-KEYS

将如下文件拷贝到我们创建的OEM-KEYS目录下:

QCM2290.LA.3.0/common/sectools/resources/data_prov_assets/General_Assets/Signing/openssl/opensslroot.cfg 
QCM2290.LA.3.0/common/sectools/resources/data_prov_assets/General_Assets/Signing/openssl/v3.ext
QCM2290.LA.3.0/common/sectools/resources/data_prov_assets/General_Assets/Signing/openssl/v3_attest.ext  //Android R 上新增的,高通文档说要这个文件
  • 1
  • 2
  • 3

3、生成对应的公钥和私钥

注意:高通建议使用的是ECDSA方法,这里我们使用2048的方式,接下来的都是有关2048的流程
在OEM-KEY目录下执行以下命令生成签名文件:

openssl genrsa -out qpsa_rootca.key -3 2048
openssl req -new -key qpsa_rootca.key -x509 -out rootca_pem.crt -subj /C=US/ST=California/L="San Diego"/OU="General Use Test Key (for testing 13 only)"/OU="CDMA Technologies"/O=QUALCOMM/CN="QCT Root CA 1" -days 7300 -set_serial 1 -config opensslroot.cfg
openssl x509 -in rootca_pem.crt -inform PEM -out qpsa_rootca.cer -outform DER
openssl x509 -text -inform DER -in qpsa_rootca.cer
 
openssl genrsa -out qpsa_attestca.key -3 2048
openssl req -new -key qpsa_attestca.key -out attestca.csr -subj /C=US/ST=CA/L="San Diego"/OU="CDMA Technologies"/O=QUALCOMM/CN="QUALCOMM Attestation CA" -days 7300 -config opensslroot.cfg
openssl x509 -req -in attestca.csr -CA rootca_pem.crt -CAkey qpsa_rootca.key -out attestca_pem.crt -set_serial 5 -days 7300 -extfile v3.ext
openssl x509 -inform PEM -in attestca_pem.crt -outform DER -out qpsa_attestca.cer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

将生成的qpsa_attestca.key,qpsa_attestca.cer,qpsa_rootca.cer,qpsa_rootca.key拷贝到 源码 目录里面,目录在QCM2290.LA.3.0/common/sectools/resources/data_prov_assets/Signing/Local/qti_presigned_certs-key2048_exp65537/

所以为啥要拷贝到qti_presigned_certs-key2048_exp65537目录下呢?

因为从文件QCM2290.LA.3.0/common/sectools/config/agatti/agatti_secimage.xml 可以看到:

<general_properties>
    <selected_signer>local_v2</selected_signer>
    <selected_encryptor>unified_encryption_2_0</selected_encryptor>
    <selected_cert_config>qti_presigned_certs</selected_cert_config>
    <cass_capability>secboot_sha2_pss_subca2</cass_capability>
...
    <key_size>2048</key_size>
    <exponent>65537</exponent>
...
xml
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • selected_cert_config: 代表的是签名文件名
  • key_size:表示签名文件的key大小
  • exponent:表示id,表示差异

所以按照一定规则,使用的签名文件为qti_presigned_certs-key2048_exp65537

当然,也可以自己创建目录存放我们自己的签名文件,只需要在这里配置即可

4、替换rootcert.txt文件

4.1、重新生成sha256rootcert.txt

在QCM2290.LA.3.0/common/sectools/resources/data_prov_assets/Signing/Local/qti_presigned_certs-key2048_exp65537/目录下,执行如下命令替换sha256rootcert.txt

openssl dgst -sha256 qpsa_rootca.cer > sha256rootcert.txt
  • 1

结果为SHA256(qpsa_rootca.cer)= 781243930c4eaa8ec60a2afcdb1bcfb9b0d2f579b3c504e1ad9def23d0274aca

4.2、重新生成sha384rootcert.txt

在QCM2290.LA.3.0/common/sectools/resources/data_prov_assets/Signing/Local/qti_presigned_certs-key2048_exp65537/目录下,执行如下命令替换sha384rootcert.txt

openssl dgst -sha384 qpsa_rootca.cer >sha384rootcert.txt
  • 1

结果为SHA384(qpsa_rootca.cer)= 3af2114c7685ff37e515385a8261e03beef85c8a3df9eeb647865a9dbfc30ff60cfe26f99d3737a4a734343fc41cac8a

5、修改XML配置文件

所需修改的xml文件位于QCM2290.LA.3.0/common/sectools/config/agatti/agatti_fuseblower_USER.xml 目录下,所以我们需要进入这个目录。

5.1 修改agatti_fuseblower_USER.xml文件

5.1.1 配置hash值,替换其中的value值为第三步最后生成的hash值
<entry ignore="false">
  <description
xml
  • 1

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空