介绍
在我们做Android开发中,特别是在实业类型的公司,一般我们面对的设备都是定制的,也就是说,会有千奇百怪的功能,这时候,也就会有各种的权限问题,各种的限制问题,等等,这时候,没有比做成系统应用更省心的。
但是做系统的,一般给我们的不是我们常用的.keystore或者.jks,而是给我们.pk8和.x509.pem文件。这时候我们就需要转一下。这里我们有两种方法
方法1:我们利用 openssl
具体步骤
-
通过上面连接,直接下载自己需要的openssl版本,安装即可
-
配置环境变量,如下,配置到bin目录就行
开始生成keystore文件
cd到pk8和x509.pem文件所在目录,或者可以直接在此文件路劲下,右键打开命令窗口,均可以。
- 把platform.pk8生成了.pem 文件,指令如下:
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt
- 然后生成platform.pk12密钥文件,注意keystore的alias,我这里是123456,这里需要输入两次密码,密码也是123456结果如下
openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name android_box
3. 生成keystore文件,注意密码和上面第二步一致,alias也和第二步一致,这样我们就得到了.keystore文件。
keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass 123456 -alias 123456
方法2:我们需要在Linux环境下生成
具体方法是,
- 下载keytool-importkeypair,并解压到Linux环境下。
- 我们将两个文件,pk8和x509.pem拷贝到Linux环境下,在此文将统计目录下,执行如下命令:
keytool-importkeypair -k ~/android/debug.keystore -p android -pk8 ~/android/platform.pk8 -cert ~/android/platform.x509.pem -alias anyname
注意:
-k:表示生成keystore文件的名称
-p:表示keystore文件的密码,这里为android
-pk8:表示需要导入的pk8的文件名称,包括路径,当然也包括pem文件
-cert 表示要导入的证书文件,和pk8文件在同一个目录
-alias 表示给生成的debug.keystore取一个别名