【问题标题】:Use apktool jar file in my android project?在我的 android 项目中使用 apktool jar 文件?
【发布时间】:2018-06-30 19:11:44
【问题描述】:
  1. 放入要解码的.apk文件
  2. 下载最新版本的 apktool 和 apktool 安装窗口(都可以从同一个链接下载)并将它们放在同一个文件夹中
  3. 现在运行类似apktool if framework-res.apk 的命令,然后运行下一个 apktool d myApp.apk(其中 myApp.apk 表示您要解码的文件名)

我可以在android项目中执行apktool的上述步骤吗?让我知道是否有人可以帮助我。我想做一个类似于apkEditor的应用。

【问题讨论】:

  • 也许你应该让你的问题/要求更清楚,以便更容易提供帮助。

标签: android reverse-engineering decompiling apktool


【解决方案1】:

答案是肯定的,您可以执行您提到的步骤。

我不会为您编写应用程序,但这里有一些指导原则。首先,apktool 是用 Java 编写的,因此您可以从 here 下载打包的最新版本。请务必先阅读license。然后将其导入您的 Android Studio 项目。有一个名为 Main 的特定类,它有一个负责 CLI 的 main 方法。例如:

import brut.apktool.Main;
try {
    Main.main(new String[]{"if", "/sdcard/...your_path.../framework-res.apk"});
    Main.main(new String[]{"d", "myApp.apk"});
} catch (IOException | InterruptedException | BrutException e) {
    e.printStackTrace();
}

PS:如果我误解了你的问题。如果您希望每次程序运行时都从 Github 下载最新版本的 apktool jar,您可以使用 JarURLConnection 获取远程 jar 文件并使用反射调用 Main.main() 参数。一个全面的例子可以在here找到。

【讨论】:

  • 如果我想再次构建那个文件,那么呢?
  • 如果我理解您的问题,反编译后您将获得源代码,而不是 Android Studio 项目。您可以尝试通过“从现有来源导入”将其导入 Android Studio,但可能仍然存在错误。
  • 不是这样,我要求在 apk 中再次构建该源。当我使用您提供的代码反编译源代码时,我想在该应用程序的 apk 中再次构建该源代码。
  • 是否可以在 Android 上使用 ApkTool 库来解析 APK 而不是创建新文件?给定一个 APK 的 InputStream,解析它并获取有关它的信息?
猜你喜欢
  • 2013-02-07
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多