刚接手的一个项目有一些需要系统权限的需求 比如定时关机等,这些需要获得系统签名打包后才可以实现。 项目的设计的是这样的,软件要在多种厂家的硬件上运行,因此需要多个厂家的系统签名,然后Gradle多渠道打包,在共用的同一个keystore库根据各自的别名来打包就是了。 关于获取系统签名打包的方式网上有很多了大家可以自行百度了解。,这里不做过多解释。因为厂家提供的了签名需要的文件,所以可以选择的是手动签名,不过那种方式不方便调试 最重要的是!我不需要直接在我的安装包上签名,而是需要给我生成一个key,然后追加到项目本来的keystore库里去 这里推荐一个写的比较详细的生成系统签名key的博文
引用文本 https://blog.csdn.net/weixin_42072033/article/details/109778230 实战讲解Android如何生成系统签名keystore,让AS自写APK系统化
具体步骤
厂家提供的用于生成签名的文件 只需要画框的那两个,sign.jar是用来签名的,不需要我们是gradle签名 1在Linux系统(Windows放弃吧 我试过了没戏的 去求求同事或者自己会的就不用。。反正就是四个命令) 2把这两个放入同一个文件夹下 生成keystore 第一条命令
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
第二条命令
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name [你要设置的别名]
回车后要输入两次密码 自己要记好下面要用 第三条命令
keytool -importkeystore -deststorepass [密码] -destkeypass [密码] -destkeystore [你要想要得keystore的文件名].keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias [第二条设置的别名]
然后你就看到keystore后缀的系统签名了,如果只需要系统签名,之前没有自己签名的可以到此为止了,直接拿去打包吧 4最后把他导入到本来的keystore里去(这一步开始在什么系统就无所谓了) 在这里插入代码片
keytool importkeystore -scrkeystore [你刚生成的keystore] -destkeystore [你要导入的keystore路径]
OK 完工 附上导入前和导入后的图片
|