前提:
因为一些情况需要反编译修改后出新包
api的等级为30
原因:
解决:
需要额外执行v2签名
对于签名v1、v2、zipalign对齐的顺序是:v1----zipalign对齐----v2
v1是对每个文件签名
zipalign对齐是对数据压缩
v2是对文件二进制数据签名
附:
反编译
java -jar D:apktool.jar(apk文件) d F:my.apk(apk地址) -f -o F: ecompile(反编译后的存放目录)
编译
java -jar D:apktool.jar(apk文件) b F: ecompile(反编译后的存放目录) -o F:my_Recompile.apk(编译apk的存放目录)
v1签名
jarsigner -verbose -keystore F:/my.keystore(签名文件目录) -signedjar F:my_sign.apk(签名后的存放目录) F:my_Recompile.apk oas_Korean -storepass gygame(编译apk的存放目录)
zipalign对齐
cd /d D:android-sdk-windowsuild-tools30.0.2(sdk目录,我这里选用的版本是30.0.2) && zipalign -v 4 F:my_sign.apk(签名后的存放目录) F:my_zipalign.apk(对齐后的存放目录)
v2签名
java -jar D:android-sdk-windowsuild-tools30.0.2libapksigner.jar(apksigner文件目录,我这里选的版本是30.0.2) sign --ks F:my.keystore(签名文件目录)
--ks-key-alias **(alias)
--ks-pass pass:**(keystore密码)
--key-pass pass:**(alias密码)
--out F:my_new.apk(v2签名后的存放目录) F:my_zipalign.apk(对齐后的存放目录)