簡介
線下設(shè)備使用的都是RockChip芯片的主板钥星,我們要求最終運(yùn)行的App都有系統(tǒng)權(quán)限,因此最終簽名都會使用系統(tǒng)簽名。之前都是打包完成之后再手動簽名拌倍,現(xiàn)改成打包的時(shí)候直接使用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}"
}
}
系統(tǒng)簽名
sh keytool-importkeypair.sh -k rockchip.jks -pk8 platform.pk8 -cert platform.x509.pem -alias rockchip -p rockchip
- k: 生成的 keystore 文件
- pk8: 要導(dǎo)入的 platform.pk8 文件
- cert: 要導(dǎo)入的 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
藏雏,執(zhí)行:keytool -printcert -file META-INF/CERT.RSA
文件列表
-
platform.pk8
MD5:
67c8896ff5995a62ef31e60436ef129e
-
platform.x509.pem
MD5:
5bf3063021a4e4cfa8203e1cb2bf9f4f
-
keytool-importkeypair.sh
添加可執(zhí)行權(quán)限:
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
附件下載:點(diǎn)我下載