1、使用源码编译
将编译出的apk放到源码中进行platform签名
2、使用signapk.jar签名
之前查看资料也是说,将平台的platform.x509.pem、platform.pk8、signapk.jar三个文件拷贝到一个文件夹下,再将Android studio编译出的apk也放到此文件夹下,使用如下命令签名:
java -Xmx512m -jar signapk.jar -w platform.x509.pem platform.pk8 app-release-unsigned.apk app-release.apk
但是资料都是说从build/target/product/security/下拷贝 platform.x509.pem、platform.pk8,但是编译出的还是失败的,当时就放弃了;时隔近一年后再次注意到了这个问题,于是就考虑到查看下方式1中进行平台签名是不是没有使用此处的文件;就尝试在源码中搜索platform.x509.pem platform.pk8,发现在device/fsl/common/security/下也有,于是就尝试了一下结果成功了;所以说,还是要注意平台真正使用哪个路径下的platform.x509.pem platform.pk8。
signapk.jar从out/host/linux-x86/framework/signapk.jar拷贝。
3、使用keytool-importkeypair生成keystore.jks后,放到Android studio中直接进行系统签名
此方法是需要在Linux下执行命令:
keytool-importkeypair -k test.jks -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
其中platform.x509.pem platform.pk8均来自平台,test.jks是Android studio中使用的,我们需要对此文件进行系统签名后,再将其替换原有的文件,使用Android studio编译时用此文件对apk进行打包签名后,即具有系统签名了。
使用此方法时,可以将这些文件拷贝到一个文件夹下去执行,就不需要配一些环境变量了。
4、使用keytool-importkeypair生成platform.keystore,放到Android studio中直接进行系统签名
keytool-importkeypair -k platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
keytool-importkeypair下载:https://github.com/getfatday/keytool-importkeypair