目前拿到一个机器的Android系统签名,以JKS格式文件提供,要如何对APK签名呢?按如下步骤操作:
jarsigner -verbose -keystore xxx.jks -signedjar xxx_signed.apk xxx_unsigned.apk xxx_alias
其中,xxx.jdk为相应的签名文件,xxx_alias为签名文件里面配置的keystore别名。例如:
jarsigner -verbose -keystore xbh.jks -signedjar Explorer_signed.apk Explorer_unsigned.apk android
执行该命令后,要求输入keystore的密码,输入完后,碰到如下提示:
jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 6716 but got 6831 bytes)
查了下资料,是由于APK已有签名了,于是执行如下命令删除到现有签名:
zip -d Explorer_unsigned.apk META-INF/\*
命令执行后有如下提示:
deleting: META-INF/MANIFEST.MF
deleting: META-INF/CERT.SF
deleting: META-INF/CERT.RSA