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

Posted

技术标签:

【中文标题】如何正确重新编译apk文件?【英文标题】:How to correctly re-compile an apk file? 【发布时间】:2021-05-27 00:07:16 【问题描述】:

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

apktool d name.apk

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

apktool b name -o new.apk

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

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

【问题讨论】:

【参考方案1】:

以下内容供大家参考


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

    下载最新的apktool版本。

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

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

    打开命令提示符。

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

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

    键入以下命令。

    apktool if name-of-the-app.apk

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

    apktool d name-of-the-app.apk

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

    要重新编译应用程序,请使用以下命令“B”。 “b”只是意味着重新编译。

    apktool b name-of-the-app-folder

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

签署apk

    打开一个新的命令提示符并使用 cmd 切换到 sign-apk 目录

    将修改后未签名的 apk 移动到此文件夹中

    然后键入以下命令-

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

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

【讨论】:

以上是关于如何正确重新编译apk文件?的主要内容,如果未能解决你的问题,请参考以下文章

安卓反编译出来的代码如何修改重新生成APK

使用 javadecompilers.com 后重新编译 apk

APK注入,重新编译android manifest

Android 反编译Apk,修改资源,重新打包,签名发布

Android 反编译Apk,修改资源,重新打包,签名发布

安卓apk反编译修改重新打包签名全过程