在我的 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 解包和打包 )