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

Mat*_*ari 6 java android decompiling apk apktool

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

apktool d name.apk
Run Code Online (Sandbox Code Playgroud)

我找到了我想要的内容,对其进行了更改(我只修改了一堆 .json 文件和一些 .png,全部位于 /assets 文件夹中),但是在使用

apktool b name -o new.apk
Run Code Online (Sandbox Code Playgroud)

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

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

zha*_*hen 14

以下供您参考


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

  1. 下载最新的 apktool 版本。

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

  3. 在电脑的任意位置创建一个文件夹,并将所有 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. 最终的修改后的应用程序将位于 apktool 创建的原始应用程序文件夹内的“dist”文件夹中。

签署 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。

  • 哪里可以找到certificate.pem? (3认同)