一、概述
在开发的时候,如果涉及到需要给apk添加android:sharedUserId="android.uid.system" 属性,变为系统级apk,安装时,需要先进行签名再安装。不然会提示安装失败。
通过adb install 安装apk的时候,提示应用未签名提示: INSTALL_PARSE_FAILED_NO_CERTIFICATES 。
提示内容如下:[INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl979122267.tmp/base.apk: Attempt to get length of null array]
这时候需要对应用进行签名。如何知道应用是否签名成功可以解压apk 查看 META-INF 文件中是否存在 CERT.RSA 文件,如果不存在则说明没签名。需要对其进行签名。

二、生成系统签名文件
在安卓系统源码目录:
build/target/product/security/
按步骤执行以下操作:
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:pwdpwd -name platform
keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass pwdpwd
执行完以上步骤之后,会生成 platform.jk