1第一步生成私密文件platform.pem
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
2第二步生成p12密钥文件
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:pwdpwd -name platform
3第三步生成platform.jks
keytool -importkeystore -deststorepass pwdpwd -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass pwdpwd
注意问题:
1.报错提示找不到openssl,去官网下载openssl,安装,配置系统环境变量到bin下。
2.运行以上命令,要cd进到要生成的文件目录下,例如platform.pk8在哪里,就cd到哪里。
3.windows用户,前面2步,没问题,第三步,总是提示密码不正确:
keytool 错误: java.io.IOException: keystore password was incorrect
解决办法:前面1-2步,生成p12到linux系统下面生成,然后复制到windows,在windows生成 kestore,也就是运行第三步。具体原因不明,猜测是linux,windows加密算法不一样。
4.报一下错误:java.io.IOException: parseAlgParameters failed: ObjectIdentifier() – data isn’t an object ID (tag = 48),这个是keytool命令的java版本太低,系统环境变量改成java11的环境,
5.pwdpwd是密码 platform是alias
6.AndroidManifest.xml配置如下属性
android:sharedUserId=“android.uid.system”
接下我们在项目中无论是debug还是release都可以获得与android.uid.system相同的权限