参与的项目近期要求安全检测,apk不达标并且无法修复的话会要求使用官方加固包。加固之后的包签名会失效,所有需要重新进行签名。今天借此机会记录一下整个操作流程。
原来apk是使用jks格式的签名文件来操作的,还有一种是keystore文件格式。我们先来看jks文件格式怎么操作
一、jks格式操作步骤:
1、基本语法
jarsigner -digestalg SHA1 -sigalg SHA1withRSA -verbose -keystore {签名文件} -storepass {签名密码} -signedjar {签名之后的包名} {需要签名的apk} {别名}
这里很多人说签名文件及需要签名的apk要使用绝对路径,经过测试发现使用相对路径也是可以的。
2、示例
#先进入目录,如D:\sign_test
cd D:\sign_test
#再敲入下面的签名指令,签名文件是sign.jks,apk包名sign_test_2.41.apk
jarsigner -digestalg SHA1 -sigalg SHA1withRSA -verbose -keystore ./sign.jks -storepass xxxx -signedjar sign_test_2.41_signed.apk ./sign_test_2.41.apk "sign app"
演示环境是Windows,在相同目录操作的,所以使用./xxx
;别名因为有空格所以使用了双引号。这里注意的是如果没有设置有效期的话会给出警告。
二、keystore格式操作步骤
1、基本语法
jarsigner -digestalg SHA1 -sigalg RSA -keystore {keystore文件路径} -storepass {keystore文件的密码} -signedjar {新的apk包名} {要签名的apk包路径} {别名}
2、示例
#先进入目录,如D:\sign_test
cd D:\sign_test
#再敲入下面的签名指令,签名文件是sign.keystore,apk包名sign_test_2.41.apk
jarsigner -digestalg SHA1 -sigalg RSA -keystore ./sign.keystore -storepass xxxx -signedjar sign_test_2.41_signed.apk ./sign_test_2.41.apk "sign app"