最近需要开发一个拥有系统级权限的应用,就了解了下系统应用的签名方式,这里来简单介绍下。
在进行 Android 应用开发的时候,如果开发的是系统应用,那么就需要有系统签名才能正常运行,而系统应用一般是放到系统代码库中跟随系统一起编译。如果想要用 Android Studio 单独对某个开发的应用进行签名的话,有两种方式可以选择。一种方法是编译完成后使用 signApk.jar 、platform.pk8 和 platform.x509.pem 进行配合签名。第二种方法是把系统的 platform.pk8 和 platform.x509.pem 转换成为我们可以直接使用的 keystore 文件,在编译时自动签名。
相对而言,第二种方法更为方便,可以全自动化对应用进行签名,方便开发人员测试。
这里介绍下第二种方式的实现方法。
首先,需要使用到 keytool-importkeypair 这个工具
可以在 https://github.com/getfatday/keytool-importkeypair 下载
然后,运行如下命令,就可以利用 platform.pk8 和 platform.x509.pem 生成 keystore 文件
./keytool-importkeypair -k ./release.keystore -p youPassword -pk8 platform.pk8 -cert platform.x509.pem -alias youAlias
其中
- -k 表示要生成的 keystore 文件的名字,这里命名为 release.keystore
- -p 表示要生成的 keystore 的密码,这里是 youPassword
- -pk8 表示要导入的 platform.pk8 文件
- -cert 表示要导入的platform.x509.pem
- -alias 表示给生成的 release.keystore 取一个别名,这是命名为 youAlias