Android 8.1系统签名详解
在工作中我们经常会提供接口给客户调用,我们就需要提供jar给客户调用,客户那边使用就都需要系统的签名才能正常运行。而如果我们想用Android Studio单独开发某个应用而使用系统签名的时候,有两种开发的方式,一种是编译完成后,使用SignApk.jar来进行签名,另外一种是把系统的pemplatform.pk8和platform.x509转换成为Android Studio常用的 .keystore文件,编译时候自动签名。
Android系统签名证书的目录是“build/target/product/security”。
一、SignApk.jar签名
1、工具下载地址:链接:https://pan.baidu.com/s/1cLQFMFyRzCuTxP99QiEG0A 提取码:ck2g
2、拿到终端上系统的签名(由定制系统的厂商提供):
3、在应用程序的项目中配置:
androidManifest.xml中添加android:sharedUserId=“android.uid.system”
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxxx.xxxx"
android:sharedUserId="android.uid.system">
</manifest>
4、将(机器)系统的签名放到signapk同一个目录中
5、AndroidStudio通过build–> 生成带有签名的apk,将程序apk放到signapk同一个目录中:
6、在signapk所在文件夹中运行命令行:
为应用程序配置系统的签名:
解释: 第一个xxx.apk是项目打包后的apk, 第二个xx.apk被系统签名后的apk。
work\tools\signapk>java -jar signapk.jar platform.x509.pem platform.pk8 app-release.apk app-releasetest.apk
结果提示:
Usage: signapk publickey.x509[.pem] privatekey.pk8 input.jar output.jar
再次调整未被系统签名的apk的路径,将apk拖动放到命令行中,重新输入:
work\tools\signapk>java -jar signapk.jar platform.x509.pem platform.pk8 G:\wangqi\work\tools\signapk\app-release.apk app-release-test.apk
7、 最终效果如下:
被系统签名后的apk如下:
二、转换为 .keystore文件
keytool-importkeypair下载地址:https://github.com/getfatday/keytool-importkeypair
1、蒋keytool-importkeypair下载下来的文件拷贝到Linux中,然后再拷贝platform.pk8 和 platform.x509.pem文件到keytool-importkeypair目录下面
2、使用如下命令来执行:
/keytool-importkeypair-master$ ./keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform
3、修改 build.gradle 再次编译即可
signingConfigs {
release {
storeFile file('keystore/platform.keystore')
keyAlias 'platform'
keyPassword 'android'
storePassword 'android'
}
debug {
storeFile file('keystore/platform.keystore')
keyAlias 'platform'
keyPassword 'android'
storePassword 'android'
}
}
上一篇: Java初学-数组3
下一篇: 有趣的事 java