如何在已有的 .aab 文件中更改资源后重新构建 .aab 文件

4
我使用“./gradlew bundle”命令生成了.aab文件。然后解压缩.aab,得到资源和dex文件。现在我想要在AndroidManifest.xml、一些资源文件中更改一些版本代码,并且再次需要重新编译相同的.aab文件。
对于.apk文件,我们可以使用APKTool(反向工程)来实现这一点,这个方法完美地工作。
由于我们必须从APK转移到AAB,我无法修改.aab文件后重新构建它。请给出如何使用命令完成此操作的提示?
提前致谢!!

1
我在这里添加了一个解决方案https://dev59.com/Pbroa4cB1Zd3GeqPoKAo#68334407。请查看一下。 - Kumar Gaurav
2个回答

3
如果您只需要更改资产,可以使用bundletool来完成此操作,但我尚未测试是否可以像APK + apktool一样更改源代码。

BundleTool:

更改AAB文件:

  1. 将BUILD.aab文件解压到bundletool.jar所在的同一目录中。

  2. 打开终端并执行以下命令来解压aab zip文件。

    unzip BUILD.aab -d ./aab_unpack

  3. 完成后,在目录中搜索要编辑的文件。建议使用终端或脚本编辑器以避免创建.DS_STORE文件。

  4. 如果需要,移动到aab_unpack根目录并使用以下命令删除.DS_STORE文件:find . -name ".DS_Store" -delete

  5. 移动到aab_unpack/base文件夹并在与bundletool.jar相同的目录下创建一个base.zip文件。使用以下命令:

    zip -r --no-dir-entries ../../base.zip *

  6. 使用bundletool.jar重新打包

    java -jar bundletool.jar build-bundle --modules base.zip --output BUILD_REPACK.aab

  7. 使用以下命令验证生成的aab文件

    java -jar bundletool.jar validate --bundle BUILD_REPACK.aab

你应该会收到这样的消息:

enter image description here

使用jarsigner签署abb文件: /Library/Java/JavaVirtualMachines/jdk-11.0.4.jdk/Contents/Home/bin/jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore YOUR_KEY.jks -signedjar BUILD_OUTPUT_SIGNED.aab BUILD_REPACK.aab ALIAS_NAME

我想更改我的应用程序名称,为此我需要修改已编译的resources.pb文件,而且不需要进行序列化即可编辑它。你有任何方法可以编辑它吗? - Maveňツ

-2
通常我们建议不要手动操作.aab文件,而是让完成任务。 建议在对正在构建的项目进行更改后,像第一次那样使用./gradlew bundle。生成的.aab文件将包含这些更改。
这意味着您不必手动操作内容。

1
在第一次实例之后,假设我没有源代码和Android Studio。我只想使用第一个实例的.aab文件在运行时更改资源中的应用程序名称。并且在进行这些更改后,我想重新构建.aab文件。对于APK,我们可以使用APKTool在没有源代码的情况下完成此操作。 - Prasanna Kumar Peddinti
现有的官方工具目前不支持该使用情况。我们建议您使用上面答案中提供的路径。 - Ben Weiss
1
谢谢,@keyboardsurfer。我明白了。有没有办法在运行时编辑resources.pb文件并重新编译成.pb文件? - Prasanna Kumar Peddinti
@PrasannaKumarPeddinti 嘿兄弟,你有解决这个问题的办法吗? - Maveňツ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接