android 系统签名

本文详细介绍如何为Android项目生成系统签名,包括从Android源码中获取必要文件,使用openssl生成私钥和pkcs12文件,以及利用keytool生成并导入debug.keystore,最后在app/build.gradle中配置签名信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取系统权限的应用就必须要有系统签名,但是在开发一个系统的时候,为了系统的安全性,往往会去改变系统的签名。我们都知道通过platform.pk8 platform.x509.pem和signapk.jar可以对应用进行签名操作,但是这样很麻烦,而且也没办法使用AndroidStudio中的调试操作了,最简单的方式还是生成keystore然后放在Androidstudio里,这样每次编译生成的APK就会自动签上名,方便许多。
接下来详细讲解如何生成对应系统的系统签名:

1、获取对应文件

文件:platform.pk8 和 platform.x509.pem
路径:Android源码目录:release/android/n-cn/build/target/product/security/
注意是源码目录下

2、生成shared.priv.pem 和 pkcs12

源码目录下新建一个文件夹signed,把platform.pk8 和 platform.x509.pem放进去,在该目录对应的Linux环境下执行命令行操作:

生成shared.priv.pem :
openssl pkcs8 -in platform.pk8 -inform DER -outform PEM -out shared.priv.pem -nocrypt

生成pkcs12:
openssl pkcs12 -export -in platform.x509.pem -inkey shared.priv.pem -out shared.pk12 -name androiddebugkey

这两份文件生成后,需要键入密码,自己设置就行

3、生成debug.keystore

在与上一步相同的位置执行命令行操作,注意:android改成自己刚才设置的密码

keytool -importkeystore -deststorepass android -destkeypass android -destkeystore debug.keystore -srckeystore shared.pk12 -srcstoretype PKCS12 -srcstorepass android -alias androiddebugkey

这步操作有可能出错,keytool不能解析,原因是环境没有配置
配置环境:

1、找到对应的jdk
grep -rn jdk .
在这里插入图片描述

找到对应文件proj_toolchain.sh,进入文件查看一下,能看到一下配置就可以

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export CLASSPATH=$ JAVA_HOME/lib
export JRE_HOME=$ JAVA_HOME/jre
export PATH=$ JAVA_HOME/bin:$ JRE_HOME/bin:$PATH

2、在该文件所在目录下,Linux命令行,引入改文件,即配置完成

source proj_toolchain.sh

执行完后再回头执行keytool的命令行操作,即可以看到生成的debug.keystore文件

4、导入debug.keystore文件并且修改app/build.gradle

        CvteConfig {
            storeFile file("debug.keystore")
            storePassword "123456"
            keyAlias "androiddebugkey"
            keyPassword "123456"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.CvteConfig
            minifyEnabled false
            //这句不用改,原来是什么就什么
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
        debug {
            signingConfig signingConfigs.CvteConfig
        }
    }
    dependencies{}
}

5、这就签名完成了,以后该项目生成的apk都会带有系统签名

注意:这个签名只是对本项目有效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值