通常沮协,我們在做系統(tǒng)用戶開發(fā)時,需要給應(yīng)用加上系統(tǒng)簽名卓嫂,使其擁有系統(tǒng)權(quán)限慷暂,簽名方式可以使用系統(tǒng)源碼中的platform.pk8、platform.x509.pem晨雳、signapk.jar對應(yīng)用簽名行瑞,使用方法:
java -jar signapk.jar platform.x509.pem platform.pk8 Test01.apk Test01_signed.apk
這種方法使得開發(fā)非常不方便,每次編譯完成之后還有進(jìn)行簽名操作餐禁,如果能將簽名文件轉(zhuǎn)換為keystore文件血久,加入到AndroidStudio的gradle編譯腳本中,就可以一鍵生成簽名后的apk坠宴。
轉(zhuǎn)換方法如下:
1.openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt
2.openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name testalias
其中testalias為keyAlias
3.keytool -importkeystore -deststorepass android -destkeypass android -destkeystore source.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias keyAlias
生成的source.keystore即為所需要的keystore文件洋魂,storePassword和keyPassword為android
gradle配置:
signingConfigs {
release {
storeFile file('D:\\sign\\keystore\\source.keystore')
storePassword 'android'
keyAlias 'keyAlias'
keyPassword 'android'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.release
}
}
最后,選擇編譯版本為release
20180122_183615.png