简介
线下设备使用的都是RockChip芯片的主板,我们要求最终运行的App都有系统权限,因此最终签名都会使用系统签名。之前都是打包完成之后再手动签名,现改成打包的时候直接使用RockChip的签名。
操作
手动签名
先生成apk,然后使用 signapk.jar
签名:
java -jar signapk.jar platform.x509.pem platform.pk8 in.apk out.apk
Gradle签名
task ttdevs(type: Exec) {
String apkPath = "${rootProject.projectDir}/app/build/outputs/apk/"
String signPath = "${rootProject.projectDir}/"
file(apkPath).listFiles(new FileFilter() {
@Override
boolean accept(File file) {
return file.name.endsWith(".apk") && !file.name.startsWith("signed")
}
}).each { File file ->
// println file.path = file.parent + file.name
commandLine "java", "-jar", "${signPath}/signapk.jar",
"${signPath}/platform.x509.pem",
"${signPath}/platform.pk8",
"${file.path}",
"${file.parent}/signed_${file.name}"
}
}
系统签名
sh keytool-importkeypair.sh -k rockchip.jks -pk8 platform.pk8 -cert platform.x509.pem -alias rockchip -p rockchip
- k: 生成的 keystore 文件
- pk8: 要导入的 platform.pk8 文件
- cert: 要导入的 platform.x509.pem 文件
- alias 生成的 keystore 的 alias
- p: 生成的 keystore 文件的密码
在 build.gradle
中使用上面生成的 rockchip.jks
:
android {
...
signingConfigs {
rockchip {
keyAlias 'rockchip'
keyPassword 'rockchip'
storeFile file('rockchip.jks')
storePassword 'rockchip'
}
}
...
}
查看签名信息
-
Android studio
Gradle > app > Tasks > android > signingReport
-
查看apk的签名
解压apk,找到
META-INF/CERT.RSA
,执行:keytool -printcert -file META-INF/CERT.RSA
文件列表
-
platform.pk8
MD5:
67c8896ff5995a62ef31e60436ef129e
-
platform.x509.pem
MD5:
5bf3063021a4e4cfa8203e1cb2bf9f4f
-
keytool-importkeypair.sh
-
添加可执行权限:
chmod +x keytool-importkeypair.sh
-
-
rockchip.jks
签名文件的MD5: 7ba48fc279bcae59f7005310ae8c5aea
签名信息:
Alias: rockchip
MD5: 0E:BA:50:A4:5C:15:B3:5D:97:7D:04:D8:43:79:B3:55
SHA1: 41:79:1C:9B:8F:AF:15:E1:AC:D5:AA:F5:92:10:FD:42:46:7D:82:77
Valid until: Saturday, May 10, 2042
附件下载:点我下载
网友评论