android生成系统应用签名[通俗易懂]

android生成系统应用签名[通俗易懂]1、编译android源码。2、cdbuild/target/product/security/已有platform.pk8和platform.x509.pem文件可省略1-2步骤3、执行opensslpkcs8-informDER-nocrypt-inplatform.pk8-outplatform.pem需要安装openssl,安装完后配置openssl环境(下载地址:http://slproweb.com/products/Win32OpenSSL.html)详见博客

大家好,欢迎来到IT知识分享网。

生成步骤如下:

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.csdn.net/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.csdn.net/swallow_csdn/article/details/83012642
Error:Execution failed for task ‘:app:lintVitalRelease’
debug版可以运行,release版生成不了。似乎是有没有用到的module,只需在app下的gradle文件的android部分添加代码:

lintOptions {
        checkReleaseBuilds false
        abortOnError false
}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/26166.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信