Android 用 platform.pk8 和 platform.x509.pem 生成 keystore 系统签名文件

一,背景介绍

        最近需要开发一个拥有系统级权限的应用,就了解了下系统应用的签名方式,这里来简单介绍下。

        在进行 Android 应用开发的时候,如果开发的是系统应用,那么就需要有系统签名才能正常运行,而系统应用一般是放到系统代码库中跟随系统一起编译。如果想要用 Android Studio 单独对某个开发的应用进行签名的话,有两种方式可以选择。一种方法是编译完成后使用 signApk.jar 、platform.pk8 和 platform.x509.pem 进行配合签名。第二种方法是把系统的 platform.pk8 和 platform.x509.pem 转换成为我们可以直接使用的 keystore 文件,在编译时自动签名。

        相对而言,第二种方法更为方便,可以全自动化对应用进行签名,方便开发人员测试。
这里介绍下第二种方式的实现方法。

二,生成keystore系统签名文件

2.1 转换pk8文件为pem

        cd到pk8以及x509.pem文件的目录执行如下命令,把platform.pk8生成了.pem 文件,/build/make/target/product/security,

执行脚本:

openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out platform.priv.pem -nocrypt

执行如下命令,生成pkcs12格式的密钥文件,生成platform.pk12文件,最后的android是keystore的alias,这里默认为android, platform.pk12是pk12文件名,需要输入两次密码(密码android),

openssl pkcs12 -export -in platform.x509.pem -inkey platform.priv.pem -out platform.pk12 -name android

执行如下命令生成keystore文件,

keytool -importkeystore -destkeystore platform.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass android -alias android

Android Studio的app/build.gradle中加入:
 

signingConfigs {
    debug {
        storeFile file('platform.keystore')
        storePassword "android"
        keyAlias "android"
        keyPassword "android"
    }
    release {
        storeFile file('platform.keystore')
        storePassword "android"
        keyAlias "android"
        keyPassword "android"
        v1SigningEnabled true
        v2SigningEnabled true
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佳哥的技术分享

创作不易,谢谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值