反编译重新签名后android11无法安装,提示无法安装引用

前提:

因为一些情况需要反编译修改后出新包

api的等级为30

原因:

 参考链接:https://developer.android.com/about/versions/11/behavior-changes-11?hl=zh-cn#minimum-signature-scheme

解决:

需要额外执行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(对齐后的存放目录)
原文地址:https://www.cnblogs.com/wangle/p/14649170.html