场景:
解决方案:
生成.签名文件jks,直接放在AS里面,生成apk时候就已经是系统签名。这个时候直接install安装或者直接放到系统源码里面编译都行的。
具体实施方案
1)先找到签名相关的包,资源,源码位置:
build/target/product/security 就是这个security文件夹里面的内容
2)实现方式
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
步骤二:
接着执行以下命令,将在目录下生成platform.p12文件,它本质上应该就是一个数字证书
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:huld123 -name huld
生成platform.p12文件,其中huld 为alias名(app添加签名要用到),huld123 为密码。
步骤三:
keytool -importkeystore -deststorepass huld123 -destkeystore platform.jks -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass huld123
生成platform.jks (app打签名最终用到的文件),其中-deststorepass huld123设置的是这个签名的密码,上面指令中的-src*的其他参数都是从前面两个指令中生成的。
这样就生成了.jks 签名文件
常规部署签名文件就简单了:
signingConfigs {
main {
storeFile file("./key/platform.jks") //签名文件路径
storePassword "huld123"
keyAlias "huld"
keyPassword "huld123"
}
}
特别说明:
mac 环境配置和ubuntu处理方式一模一样的,最终需要只有两个文件;windows平台一样,需要两个文件再生成其它必要的文件进行签名。
platform.pk8 platform.x509.pem
如果是windows处理,根据自己的系统和软件配置,看是否需要安装opensll keytool 两个不可少的工具,也可以实现。
其它方式:
如果,我手动签名,怎么实现。
驱动工程师一般会提供给App开发人员一个签名工具,或者就给App开发人员两个文件,app开发人员拿到签名的signapk.jar。然后App开发人员自己写脚本就行。
platform.pk8 platform.x509.pem
签名工具下载地址
具体实施操作:
@echo off
echo 程序开始执行,请等待.......
java -jar signapk.jar platform.x509.pem platform.pk8 app-debug.apk MYLauncher.apk
pause & exit
准备好原apk,运行脚本即可生成新的签了系统签名的apk