系统签名文件pk8&x509.pem 转成jks或者keystore签名文件

做系统应用开发的时候,往往将应用的sharedUserId 声明成android.uid.system 来将其作为系统应用。这时侯就需要系统签名文件给应用签名,才能安装到设备上。

将应用签名改成系统签名的方式有两种:

  • 1. 使用signapk.jar修改应用应用签名问系统签名
  • 2. 将plateform.pk8和plateform.x509.pem 文件装成AS 直接使用的jks签名文件

plateform.pk8与plateform.x509.pem转成jks 文件

将plateform.pk8 与plateform.x509.pem 转成jks 文件需要openssl 工具。openssl Window 版本可以在http://slproweb.com/products/Win32OpenSSL.html下载

转换步骤:

  • 1、openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt   将pk8 转成pem 格式文件
  • 2、openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name {{KEY_ALIAS}}  生成pk12 文件
  • 3、keytool -importkeystore -destkeystore {{STORE_FILE_NAME}}.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass {{KEY_PASSWORD}} -alias {{KEY_ALIAS}}  使用pk12文件输出jks 签名文件

示例:

openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt

openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name android 

执行生成pk12 文件时,需要设置alias 别名为android 密码

keytool -importkeystore -destkeystore test.jks -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass 111111 -alias android
这一步先需要在生成pk12 文件时设置的别名密码。

生成jks 文件时会检测文件是否存在:

  •        如果设置的jks文件存在,会检测输入的密码是否正确
  •        如果jks 文件不存在,生成jks 文件

keytool -list -v -keystore test.jks 查看签名文件指纹信息

参考: https://stackoverflow.com/questions/39657812/how-to-import-x509-pem-pk8-file-into-jks-keystore

 

番外:使用signapk.jar 修改应用签名系统签名

准备工作

  1. signapk.jar 路径 prebuild/sdk/tools/lib 目录下
  2. plateform.pk8与plateform.x509.pem 路径 build/target/product/security
  3. 将需要签名的apk文件解压,将其中MATE-INF下面的CERT.RSA 与CERT.SF文件删除。重新将文件压缩,并重命名为apk文件

上面的准备工作准备完成后执行 

java -jar signapk.jar platform.x509.pem platform.pk8 {{input.apk}} {{output.apk}}

input.apk 需要被签名的apk文件

output.apk 已经签名成系统签名的apk

 

keytool platform.x509.pem 文件是一个 X.509 格式的证书文件。在计算机安全领域,X.509 是一种通用的证书标准,用于在公钥加密体系中对实体进行身份验证。 keytool 是一个Java密钥和证书管理工具,用于管理Java密钥库(JKS)中的密钥、证书和可信任的证书颁发机构(CA)。 .platform.x509.pem 文件是基于 X.509 标准的证书文件的命名方式,并且带有.platform前缀,可能表示其是与某个特定平台相关的证书。 使用keytool命令可通过以下方式操作 platform.x509.pem 文件: 1. 导入证书:可以使用 keytool 命令导入指定的证书到 Java 密钥库。例如,可以使用以下命令将 platform.x509.pem 导入到密钥库中: `keytool -importcert -alias mycert -file platform.x509.pem -keystore mykeystore.jks` 2. 查看证书:可以使用 keytool 查看证书的详细信息。例如,可以使用以下命令查看 platform.x509.pem 证书的详细信息: `keytool -printcert -file platform.x509.pem` 3. 导出证书:可以使用 keytool 将密钥库中的证书导出为独立的证书文件。例如,可以使用以下命令将密钥库中名为 mycert 的证书导出为 platform.x509.pem 文件: `keytool -exportcert -alias mycert -file platform.x509.pem -keystore mykeystore.jks` 需要注意的是,以上命令仅为示例,具体的命令参数和使用方法可能会因实际情况而异。在使用 keytool 时,应注意保证密钥库和证书文件的安全,并且遵循最佳实践来管理密钥和证书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值