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

标签 java android apk decompiling apktool

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

apktool d name.apk
我找到了我想要的,改变了它(我只修改了一堆 .json 文件和一些 .png,都在/assets 文件夹中),但是在重新构建它之后
apktool b name -o new.apk
我在我的设备上安装应用程序时遇到了一些问题。有什么建议么?
根据其他类似问题,它可能是 .apk 的签名。但是这些都没有解释以正确方式签署 .apk 文件的方法。

最佳答案

以下内容供您引用

使用 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 将在同一文件夹中找到。
  • 关于java - 如何正确重新编译apk文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66354829/

    相关文章:

    安卓APK问题

    java - Xpath 获取 href 标签中匹配文本的第二个 url

    java - 解析 href 以捕获其中的一部分

    java - 如何从 JMenuItem (Java Swing) 中删除空图标间隙?

    java - ListView 中的复选框具有奇怪的检查行为

    android - ACRA 崩溃报告是否也需要服务许可?

    android - BroadcastReceiver启动Service时的顺序

    java - java中将一个文件从一个文件夹复制到另一个文件夹

    android - 应用程序未安装在 Android 11 中,但适用于以前的版本

    android - 如何签署使用 PhoneGap Build 构建的 Android APK?