APK加固后后重签,Android11及之后的版本安装是报错,如下:
Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary]
使用AS构建时,会自动对齐,所以并不会出现以上问题。而重签后,apk需要进行4字节对齐,可参考谷歌官方文档
命令行对齐指令为:zipalign
遇到如上问题可以使用以下指令对齐
L:\Android\sdk\build-tools\33.0.0\zipalign.exe -v source.apk destination.apk
之后使用apksigner.jar重签
java -jar L:\Android\sdk\build-tools\33.0.0\lib\apksigner.jar sign --ks {keystore} --ks-key-alias {alias} --v1-signing-enabled true --v2-signing-enabled true --out app-release-out.apk app-release.apk
最后检查重签结果
L:\Android\sdk\build-tools\33.0.0\apksigner verify -v app-release-out.apk