通常,我们在做系统用户开发时,需要给应用加上系统签名,使其拥有系统权限,签名方式可以使用系统源码中的platform.pk8、platform.x509.pem、signapk.jar对应用签名,使用方法:
java -jar signapk.jar platform.x509.pem platform.pk8 Test01.apk Test01_signed.apk
这种方法使得开发非常不方便,每次编译完成之后还有进行签名操作,如果能将签名文件转换为keystore文件,加入到AndroidStudio的gradle编译脚本中,就可以一键生成签名后的apk。
转换方法如下:
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 } }