Android如何在系统源码生成签名文件

参考文章

Android 如何获取系统签名 并使用系统签名_android 获取系统签名_菜鸟xiaowang的博客-CSDN博客

Android生成系统签名文件jks_ItJavawfc的博客-CSDN博客

Android查看、修改KeyAlias_keyalias是什么_lahhass的博客-CSDN博客

需要用到两个系统源文件
release/build/target/product/security/platform.pk8
release/build/target/product/security/platform.x509.pem

新建一个文件夹用于处理签名文件
在release文件夹下执行创建文件夹命令
mkdir signed_dir

将release文件夹下的这两个文件复制到新建的文件夹
在release文件夹下执行复制文件命令
cp -rf build/target/product/security/platform.pk8 signed_dir/
cp -rf build/target/product/security/platform.x509.pem signed_dir/

进入signed_dir文件夹
cd signed_dir/
接着在这个文件夹执行如下命令使用platform.pk8生成platform.pem文件,这时文件夹有了platform.pk8 platform.x509.pem platform.pem三个文件
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem

然后执行如下命令,使用刚才生成的platform.pem文件和platform.x509.pem文件生成第四个文件platform.pk12,执行后文件夹中有platform.pk8 platform.x509.pem platform.pem platform.pk12四个文件.另外输入这个命令会要求填写两次密码,调试用的话建议填写123456
openssl pkcs12 -export -in platform.x509.pem -inkey platform.pem -out platform.pk12 -name android_debug(这个android_debug是别名可以自定义,在app的gradle中配置签名文件时需要用到,是其中的keyAlias属性.在执行生成keystore签名文件命令时也需要用到,在执行生成jks文件命令时则不需要也能生成)


最后就是生成签名文件了,按照需要可以成keystore文件和jks文件
生成keystore文件

keytool -importkeystore -deststorepass test_name -destkeypass 123456(刚刚自己填写的密码) -destkeystore signed.keystore -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass 123456(刚刚自己填写的密码) -alias android_debug(这里是上一条命令命名的别名android_debug,前后不一致就无法生成xx.store文件)

生成jks文件:
keytool -importkeystore -deststorepass 12345678(自定义别名的密码) -destkeystore platform.jks(生成的签名文件名字) -srckeystore platform.pk12 -srcstoretype PKCS12 -srcstorepass 123456(刚刚自己填写的密码)

生成的jks文件如何修改别名
先使用如下命令查看别名
同样在signed_dir文件夹下执行keytool -list -v -keystore platform.jks(这是刚刚生成的签名文件) -storepass 12345678(别名对应的密码)
在前几行就能看到别名 我取的别名叫android
这是我这里的情况
/*
密钥库类型: PKCS12
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: android
创建日期: 2023年6月16日
条目类型: PrivateKeyEntry
证书链长度: 1
*/

修改别名命令,这个命令会要求输入签名文件密码,输入刚刚创建签名文件时添加的密码就行
keytool -changealias -keystore xxx.jks(签名文件) -alias 当前别名 -destalias 修改后的别名

app端使用签名文件
在src同级目录下创建signature文件夹并将签名文件放入
在编译配置的gradle中的android域下添加如下代码
signingConfigs {
        release {
            storeFile file("./signature/platform.jks")
            storePassword '123456'
            keyAlias 'android_debug'
            keyPassword '123456'
        }

        debug {
            storeFile file("./signature/platform.jks")
            storePassword '12345678'//这个属性对应生成jks时最后一步生成文件的密码,是参数-deststorepass后的那个密码
            keyAlias 'android_debug'
            keyPassword '123456'//这个密码是platform.pk12生成时的密码 也是密钥的密码
        }
    }
即可使用该签名文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值