android生成系统应用签名

生成步骤如下:

1、编译android源码。

2、cd build/target/product/security/

已有platform.pk8和platform.x509.pem文件可省略1-2步骤

3、执行 openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem
需要安装openssl,安装完后配置openssl环境(下载地址:http://slproweb.com/products/Win32OpenSSL.html)详见博客https://blog.youkuaiyun.com/sunhuansheng/article/details/82218678

生成platform.pem文件

4、执行 openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:123456 -name sign

生成platform.p12文件,其中sign 为alias名(app添加签名要用到),123456 为密码。

5、执行 keytool -importkeystore -deststorepass 123456 -destkeystore platform.jks -srckeystore platform.p12 -srcstoretype PKCS12 -srcstorepass 123456

生成platform.jks (app打签名最终用到的文件),其中-deststorepass 123456设置的是这个签名的密码,上面指令中的-src*的其他参数都是从前面两个指令中生成的。

6、将生成的platform.jks 拷贝到app工程目录下。7、在对应需要签名的module的build.gradle中添加如下代码:

android {
    compileSdkVersion 28
    buildToolsVersion "28.0.3"


    defaultConfig {
        applicationId "com.zhonghong.settings"
        minSdkVersion 28
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }

    //添加如下代码
    signingConfigs {
        def KEY_ALIAS = "sign"
        def KEY_PSWD = "123456"
        def STORE_FILE = "../sign/platform.jks"
        def STORE_FILE_PSWD = "123456"

        debug {
            storeFile file(STORE_FILE)
            storePassword STORE_FILE_PSWD
            keyAlias KEY_ALIAS
            keyPassword KEY_PSWD
        }

        release {
            storeFile file(STORE_FILE)
            storePassword STORE_FILE_PSWD
            keyAlias KEY_ALIAS
            keyPassword KEY_PSWD
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }

    //解决Execution failed for task ':app:lintVitalRelease
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

8.build-Generate Signed Bundle/APK-APK-Kep Store Path:Choosing exiting 选择签名文件platform.jks目录位置,输入key store password:123456,Key alias:sign,KeyPassword:123456   输入的内容为生成签名文件时设置的密码和别名。Next:勾选V1,V2,生成你要的release或者debug apk。
生成的签名apk可直接安装运行和卸载。(注意:android 9.0以上版本做了限制,加了persistent属性的常驻应用在已预置apk的情况下不能直接安装调试)
以上步骤免去了要签名脚本(signjar)对apk进行签名的步骤。


出现的错误
https://blog.youkuaiyun.com/swallow_csdn/article/details/83012642
Error:Execution failed for task ':app:lintVitalRelease'
debug版可以运行,release版生成不了。似乎是有没有用到的module,只需在app下的gradle文件的android部分添加代码:

lintOptions {
        checkReleaseBuilds false
        abortOnError false
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

言并肃

感谢大哥支持!您的鼓励是我动力

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

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

打赏作者

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

抵扣说明:

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

余额充值