反编译重新签名后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:\recompile(反编译后的存放目录)

编译

java -jar D:\apktool.jar(apk文件) b F:\recompile(反编译后的存放目录) -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-windows\build-tools\30.0.2(sdk目录,我这里选用的版本是30.0.2) && zipalign -v 4 F:\my_sign.apk(签名后的存放目录) F:\my_zipalign.apk(对齐后的存放目录)

v2签名

java -jar D:\android-sdk-windows\build-tools\30.0.2\lib\apksigner.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(对齐后的存放目录)

 

posted @ 2021-04-12 17:38  酉乐  阅读(2495)  评论(0编辑  收藏  举报