在我的 android 项目中使用 apktool jar 文件?

Posted

技术标签:

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

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

【问题讨论】:

也许你应该让你的问题/要求更清楚,以便更容易提供帮助。 【参考方案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,解析它并获取有关它的信息?

以上是关于在我的 android 项目中使用 apktool jar 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 )

Android 逆向ApkTool 工具使用 ( ApkTool 简介 | ApkTool 解包和打包 )

Android逆向之旅—反编译利器Apktool使用教程(Apktool的安装使用)建议新手浏览

android_apktool工具的使用

android_apktool工具的使用

Xamarin.Android 使用 ApkTool 编辑 apk 包名称导致崩溃