使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录

首先下载keytool工具,地址
https://github.com/getfatday/keytool-importkeypair

我的是放在桌面下,目录如下。

C:\Users\lei\Desktop\keytool-importkeypair-master\keytool-importkeypair-master
使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第1张图片
image.png

由于这个工具需要在linux中运行,但是我没有那个环境,因此使用MinGW代替。
打开 D:\MinGW\msys\1.0目录下的msys.bat,进入环境(类似win中的cmd)。
然后输入命令进入keytool-importkeypair目录下。

cd C:/Users/lei/Desktop/keytool-importkeypair-master/keytool-importkeypair-master

注意:这里命令中的文件目录用的是反斜杠不是斜杠。用的是斜杠的话在MinGW环境中就无法进入目录。会提示No such file or directory。

使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第2张图片
image.png
windows:
C:\Users\lei\Desktop\keytool-importkeypair-master\keytool-importkeypair-master
MinGW:
C:/Users/lei/Desktop/keytool-importkeypair-master/keytool-importkeypair-master

如下图所示,进入了keytool-importkeypair-master中。

使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第3张图片
image.png

然后将platform.x509.pem和platform.pk8 copy至keytool-importkeypair-master中(platform.x509.pem和platform.pk8就是编译系统的时候security文件夹下的文件,需要厂商提供)。

使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第4张图片
image.png
使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第5张图片
image.png

至此,准备工作完成,可以生成keystore文件了。
在MinGw中执行命令。

./keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

-k 表示要生成的 keystore 文件的名字,这里命名为 platform.keystore
-p 表示要生成的 keystore 的密码,这里是 android
-pk8 表示要导入的 platform.pk8 文件
-cert 表示要导入的platform.x509.pem
-alias 表示给生成的 platform.keystore 取一个别名,这是命名为 platform

使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第6张图片
image.png

然后platform.keystore文件就生成了。


使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第7张图片
image.png

这个文件就是android studio需要的签名文件,稍后在build.gradle中进行配置。
我把platform.keystore文件放到C:\test目录下了。因此storeFile file是C:\test\platform.keystore。

android {
    ................
    signingConfigs {
        debug   {
            storeFile file('C:\\test\\platform.keystore')
            storePassword 'android'
            keyAlias 'platform'
            keyPassword 'android'
        }
        release   {
            storeFile file('C:\\test\\platform.keystore')
            storePassword 'android'
            keyAlias 'platform'
            keyPassword 'android'
        }
    }

}

dependencies {
    ..............
}

然后还需要在project structure中配置一下buildTypes,这样run app后安装的就是带签名的。

使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第8张图片
image.png

设置buildTypes中debug的signing config为debug,release的signing config为release。

使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第9张图片
image.png
使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录_第10张图片
image.png

这样就不用每次使用编译生成apk然后使用signapk.jar生成带系统签名的apk了。
最后记得在AndroidManifest.xml文件中的对应位置加上 android:sharedUserId="android.uid.system"。




    .....

    .....



这样就是系统级权限的apk了。

参考链接:

让Android Studio支持系统签名(证书)
https://www.jianshu.com/p/47265c8899b5

你可能感兴趣的:(使用keytool生成keystore签名文件并在android studio中配置系统签名简单记录)