将如下文件拷贝到我们创建的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 上新增的,高通文档说要这个文件
注意:高通建议使用的是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
将生成的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
所以按照一定规则,使用的签名文件为qti_presigned_certs-key2048_exp65537
当然,也可以自己创建目录存放我们自己的签名文件,只需要在这里配置即可
在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
结果为SHA256(qpsa_rootca.cer)= 781243930c4eaa8ec60a2afcdb1bcfb9b0d2f579b3c504e1ad9def23d0274aca
在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
结果为SHA384(qpsa_rootca.cer)= 3af2114c7685ff37e515385a8261e03beef85c8a3df9eeb647865a9dbfc30ff60cfe26f99d3737a4a734343fc41cac8a
所需修改的xml文件位于QCM2290.LA.3.0/common/sectools/config/agatti/agatti_fuseblower_USER.xml 目录下,所以我们需要进入这个目录。
<entry ignore="false"> <descriptionxml