Android系统签名转换为keystore

通常,我们在做系统用户开发时,需要给应用加上系统签名,使其拥有系统权限,签名方式可以使用系统源码中的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
        }
    }

最后,选择编译版本为release

Android系统签名转换为keystore_第1张图片
20180122_183615.png

你可能感兴趣的:(Android系统签名转换为keystore)