通常,我們在做系統用戶開發時,需要給應用加上系統簽名,使其擁有系統權限,簽名方式可以使用系統源碼中的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 } }