Android给第三方应用添加系统签名的两种方式
第一种:使用keytool-importkeypair生成keystore文件,后缀名为.jks,放到android studio中。
1、 下载keytool-importkeypair 地址:https://github.com/getfatday/keytool-importkeypair
2、 在源码中拷贝 platform.x509.pem、platform.pk8(位于../build/target/product/security)
不同厂商的位置不同,需要正确路径下的platform.x509.pem、platform.pk8,否则签名会失败。
3、 在linux平台下新建一个文件夹,吧 keytool-importkeypairplatform.x509.pem、platform.pk8 拷贝到这个文件夹下,使用以下命令:
./keytool-importkeypair-k demo.jks -p 123456 -pk8 platform.pk8 -cert platform.x509.pem -alias demo
其中demo.jks是生成的签名文件123456是密码demo是别名,然后再用命令
keytool-importkeystore -srckeystore demo.jks -destkeystore demo_signed.jks-deststoretype pkcs12
迁移到行业标准格式即可,这样我们就可以在android studio 中使用我们的系统签名文件了
4、 打开android studio 在项目的根目录新建一个文件夹
然后在app的build.gradle的android闭包中添加如下代码
android{
compileSdkVersion 25
buildToolsVersion "26.0.2"
defaultConfig {
applicationId"com.honeywell.applock"
minSdkVersion 19
targetSdkVersion 25
}
signingConfigs {
release {
storeFile file('../platformSign/demo_signed.jks')
storePassword '123456'
keyAlias 'demo'
keyPassword'123456'
}
debug {
storeFile file("../platformSign/demo_signed.jks")
storePassword '123456'
keyAlias 'demo'
keyPassword'123456'
}
}
然后运行项目即可。也可以用下面这种方式生成签名的apk
第二种:用signapk.jar 直接签名apk
1、 找到源码中的signapk.jar包(./out/host/linux-x86/framework/signapk.jar
或是./prebuilts/sdk/tools/lib/signapk.jar)
2、 在源码中拷贝 platform.x509.pem、platform.pk8(位于../build/target/product/security)
不同厂商的位置不同,需要正确路径下的platform.x509.pem、platform.pk8,否则签名会失败。
3、 把signapk.jar platform.x509.pem、platform.pk8和需要签名的apk放在一个文件下,使用命令:
java-Xmx512m -jar signapk.jar -w platform.x509.pem platform.pk8 demo.apkdemo_Signed.apk
4、 或者直接把apk拷贝到源码目录,使用命令 :
java-Xmx2048m -Djava.library.path="out/host/linux-x86/lib64" -jarout/host/linux-x86/framework/signapk.jar -w build/target/product/security/platform.x509.pem build/target/product/security/platform.pk8 demo.apk demo_Signed.apk
进行签名即可。(platform.x509.pem、platform.pk8的路径需要和平台的一致,不一定是以上路径)