背景
记录一下和第三方公司就apk加固的整体历程
流程
1.我方签名
打包一个apk,打包时要注意保存签名用的keystore和密码,以及keystore对应的别名。
2.他方加固
告知加固的类型,提供要加固的apk。
以及是否要加固文件,若是,提供对应的需保护的文件名称。
3.我方重签名
使用第三方提供的签名工具,用第一步的keysotre再次签名。
签名方式:在命令行输入以下指令
java -jar ApkSigner.jar [-appname test] -keystore keystorePath -alias alias [-pswd password] apkPath(or directory)
test:要签名的apk。比如有个apk叫music.apk,那么这里就把test改成music即可
keystorePath:keystore的路径。我在尝试的时候直接写了秘钥的完整路径,如E:\CC\123\abc.keystore
alias:这里指的是第二个alias,表示keystore的别名。如abc.keystore,也可以是abc
(那么问题来了, 忘了or不知道别名咋整?翻到下面看常见问题)
password: 秘钥的密码
apkPath(or directory):要打包的apk。我在尝试的时候直接写了完整的路径,如E:\CC\123\music.apk
举个例子,有个apk,路径是E:\CC\123\music.apk,要重新签名,秘钥是abc.keystore,秘钥别名是abcd,密码是111111,那么对应的命令就是:
java -jar ApkSigner.jar [-appname music] -keystore E:\\CC\\123\\abc.keystore -alias abcd [-pswd 111111] E:\\CC\\123\\music.apk
重新签名后的结果,就是E:\CC\123\music.apk 这个apk。
常见问题:忘记秘钥别名
忘记or不知道秘钥别名?
打开cmd,进入秘钥(如abc.keystore )所在目录,输入以下命令
keytool -list -v -keystore abc.keystore -storepass 秘钥密码
就会有如下所示的信息