apktool - 即使经过 zipalign 和 Sign 后,apktool 重建的 apk 也无法安装

标签 apktool zipalign apksigner

我需要为我的应用程序制作数百种风格。他们有不同的标志和名称。当我使用android studio的productFlavor时,它总是OOM,并且花费很长时间来构建数百个应用程序。 所以我想通过apktool制作这些应用程序。 反编译重建zipalignapksign。但我发现,最终生成的apk无法安装。 错误是:

Failure [INSTALL_FAILED_INVALID_APK: ed to extract native libraries, res=-2]
apktool d my_app.apk decompile

更改 Logo 和名称。

apktool b decompile my_app-rebuild.apk
zipalign -v 4 my_app-rebuild.apk my_app-align.apk
apksigner sign --ks my_key.jks --ks-pass pass:my_ks_pass --key-pass pass:my_key_pass --v1-signing-enabled true --v2-signing-enabled true --out my_app_out.apk my_app-align.apk

完成这些工作后,my_app_out.apk 无法安装。

最佳答案

从错误中你got :

Failure [INSTALL_FAILED_INVALID_APK: ed to extract native libraries, res=-2]

如果设置为 false,则您的 native 库必须进行页面对齐并以未压缩的方式存储在 APK 中。

您需要将 extractNativeLibs 标志设置为 true,或者您需要在执行 zipaligning 时对 apk 进行页面对齐。通过添加 -p 参数:

-p : outfile.zip 应对 infile.zip 中的所有共享对象文件使用相同的页面对齐方式

zipalign 命令应该是:

zipalign -p -v 4 my_app-rebuild.apk my_app-align.apk

关于apktool - 即使经过 zipalign 和 Sign 后,apktool 重建的 apk 也无法安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204032/

相关文章:

linux - 无法使用 apktool kali linux 重建 apk

android - 如何检查 apk 是否对齐?

android - key 轮换后,我是否仍然需要旧 key 来签署应用程序的更新?

android - 在设备上的 Android 应用程序中创建 APK 文件?

java - zipalign 未随 Java SDK/JRE 一起安装

java - 为什么这是一个无效的 smali 寄存器?

带有 SHA1 算法证书的 Android SHA256 签名算法

android - 关于使用 apktool 从 apk 反转的特殊 smali 类的两个问题

android - 我们可以使用 Apktool 更改 APK 的 targetSdkVersion