如何正确地重新编译 apk 文件?

How to correctly re-compile an apk file?

我试图检查项目的 .apk 文件,所以我决定使用 APKtool 反编译它:

apktool d name.apk

我找到了我想要的东西,改变了它(我只修改了一堆 .json 文件和一些 .png,都在 /assets 文件夹中),但是在用

apktool b name -o new.apk

我在我的设备上安装应用程序时遇到了一些问题。有什么建议吗?

根据其他类似问题,这可能是.apk 的签名。但其中 none 解释了以正确方式签署 .apk 文件的方法。

以下供大家参考


使用 apktool 实用程序编译、反编译和签署 APK。

  1. 下载最新的 apktool 版本。

  2. 下载批处理文件并aapt.exe。

  3. 在PC任意位置创建文件夹,将所有apktool.jar、aapt.exe和批处理脚本放入该文件夹。

  4. 打开命令提示符。

  5. 导航到放置 apktool.jar、批处理脚本和 aapt.exe 的文件夹。

  6. 现在,您需要使用“IF”命令安装文件。

  7. 键入以下命令。

    apktool if name-of-the-app.apk

  8. 反编译使用命令“d”。 “d”代表反编译。

    apktool d name-of-the-app.apk

  9. 应用程序正确反编译后,将在您放置应用程序的同一文件夹中创建一个新文件夹。这包含所有 xml 和 smali 文件,可以针对不同模式进行编辑。

  10. 要重新编译应用程序,请使用以下命令“B”。 “b”仅表示重新编译。

    apktool b name-of-the-app-folder

  11. 最终修改后的应用程序将位于“dist”文件夹中,该文件夹位于由 apktool 创建的原始应用程序文件夹内。

签署 apk

  1. 打开一个新的命令提示符并使用 cmd

    切换到 sign-apk 目录
  2. 将修改后未签名的 apk 移动到此文件夹中

  3. 然后输入以下命令-

    java -jar signapk.jar certificate.pem key.pk8 path-of-the-folder-contaning-the-apk.apk path-of-the-new-signed-apk.apk

  4. 编译后,将在同一文件夹中找到已签名的 apk。