1. 安卓应用签名¶
1.1. 生成密钥¶
生成密钥需要使用Ubuntu18.04系统,高版本Ubuntu可能openssl版本过高导致生成密钥失败。
1.1.1. 获取平台密钥对¶
在SDK源码/build/make/target/product/security目录中取2个文件:platform.pk8、platform.x509.pem
platform.pk8 私钥文件,用于对应用进行数字签名的核心密钥,签名过程中会用私钥加密应用的哈希值,生成签名信息。
platform.x509.pem 公钥证书,包含公钥和证书颁发信息,用于验证应用签名的合法性,系统通过此文件确认应用是否由平台密钥签名。
1.1.2. 生成platform.jks¶
将platform.pk8、platform.x509.pem存放到同一个目录,然后执行以下命令生成platform.jks。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #将私钥转换为PEM文本格式
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
#将私钥和公钥证书合并为PKCS#12格式,需指定别名和密码
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:密码 -name 别名名称
#将PKCS#12转换为JKS格式,需指定密码,适配Android Studio等开发工具
keytool -importkeystore -deststorepass 密码 -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass 密码
#列如要形成密码和别名:
keyPassword = "temppwd"
keyAlias = "embedfire"
storePassword = "temppwd"
#以上密码和包名对应以下命令
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:temppwd -name embedfire
keytool -importkeystore -deststorepass temppwd -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass temppwd
#生成成功信息输出如下
guest@dev107:~/build$ openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
guest@dev107:~/build$ openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:temppwd -name embedfire
guest@dev107:~/build$ keytool -importkeystore -deststorepass temppwd -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass temppwd
Importing keystore ./platform.p12 to ./platform.jks...
Entry for alias embedfire successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
guest@dev107:~/build$ ls
platform.jks platform.p12 platform.pem platform.pk8 platform.x509.pem
|
生成的platform.jks就是Android Studio签名需要的文件。
1.2. 应用签名¶
Android Studio打开自己的应用,在头顶工具栏选择“Build”,在子菜单选择“Generate Signed App Bundle or APK”。

然后选择“APK”选项,再点击“Next”。

点击“Choose existing…”选择生成的platform.jks文件,然后填写别名和密码,最后点击“Next”。

点击“release”选项再点击“Create”构建release版本的apk。

构建成功后Android Studio会提示生成签名后的apk文件构建成功。

在自己应用源码/app/release目录下可以找到app-release.apk文件,该文件就是构建生成的签名后的apk文件。

可以通过adb install安装到板卡。