有没有办法从APK文件中获取源代码?

时间:2010-08-29 03:40:14

标签: android android-resources decompiling apk

我的笔记本电脑上的硬盘刚刚崩溃,我丢失了过去两个月一直在处理的应用程序的所有源代码。 我所拥有的是从我发送给朋友时存储在我的电子邮件中的APK文件。

有没有办法从这个APK文件中提取我的源代码?

28 个答案:

答案 0 :(得分:1476)

简单方法:使用在线工具http://www.javadecompilers.com/apk,上传apk并获取源代码。


解码.apk文件的步骤,分步方法:

第1步:

  1. 制作一个新文件夹并复制您要解码的.apk文件。

  2. 现在将此.apk文件的扩展名重命名为.zip(例如,从filename.apk重命名为filename.zip)并保存。现在你可以访问classes.dex文件等了。在这个阶段你可以看到drawables而不是xml和java文件,所以继续。

  3. 第2步:

    1. 现在将此.zip文件解压缩到同一文件夹(或新文件夹)中。

    2. Download dex2jar并将其解压缩到同一个文件夹(或新文件夹)。

    3. 将classes.dex文件移动到dex2jar文件夹中。

    4. 现在打开命令提示符并将目录更改为该文件夹(或NEW FOLDER)。然后写d2j-dex2jar classes.dex(对于mac终端或ubuntu写./d2j-dex2jar.sh classes.dex)并按Enter键。您现在在同一文件夹中有classes.dex.dex2jar文件。

    5. Download java decompiler,双击jd-gui,点击打开的文件,然后打开该文件夹中的classes.dex.dex2jar文件:现在你得到了类文件。

    6. 通过src名称保存所有这些类文件(在jd-gui中,单击文件 - >保存所有源)。在这个阶段你得到java源代码,但.xml文件仍然不可读,所以继续。

    7. 第3步:

      现在打开另一个新文件夹

      1. 输入要解码的.apk文件

      2. 下载最新版本的apktool AND apktool install window(两者都可以从同一个链接下载)并将它们放在同一个文件夹中

      3. 打开命令窗口

      4. 现在运行apktool if framework-res.apk之类的命令(如果你没有get it here)和下一个

      5. apktool d myApp.apk(其中myApp.apk表示您要解码的文件名)

      6. 现在你在该文件夹中获得了一个文件夹,可以轻松读取apk的xml文件。

        第4步:

        这不是任何步骤只是将两个文件夹的内容(在这种情况下都是新文件夹)复制到单个文件夹

        并享受源代码......

答案 1 :(得分:117)

这是一个替代描述 - 以防有人卡住上述说明。请按照以下步骤操作:

  1. apktool.bat下载apktool(或apktool_<version>.jar for Linux)和http://ibotpeaches.github.io/Apktool/install/
  2. 将jar文件从上面重命名为apktool.jar并将两个文件放在同一个文件夹中

  3. 打开一个dos框(cmd.exe)并切换到该文件夹​​;验证是否已安装Java环境(对于Linux,还要检查有关所需库的说明)
  4. 开始:apktool decode [apk file]

    中间结果:资源文件,AndroidManifest.xml

  5. 使用您选择的解包器解压APK文件

    中级结果classes.dex

  6. http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. 下载并解压缩dex2jar-0.0.9.15.zip
  8. classes.dex拖放到dex2jar.bat上(或在DOS框中输入<path_to>\dex2jar.bat classes.dex;对于Linux使用dex2jar.sh

    中级结果classes_dex2jar.jar

  9. 解包classes_dex2jar.jar(可能是可选的,具体取决于使用的反编译器)
  10. 反编译您的班级文件(例如,使用JD-GUIDJ Decompiler

    结果:源代码

  11. 注意:不允许反编译第三方包;本指南仅用于从APK文件中恢复个人源代码;最后,生成的代码很可能会被混淆

答案 2 :(得分:106)

虽然您可以反编译APK文件,但您可能会遇到一个大问题:

它不会返回您编写的代码。相反,它将返回编译器内联的任何内容,变量给定随机名称,以及给定随机名称的函数。尝试将其反编译并恢复到您拥有的代码中可能需要更多的时间,而不是重新开始。

可悲的是,这样的事情已经导致许多项目丧生 对于未来,我强烈建议学习版本控制系统,如 CVS SVN git 等。

以及如何备份。

答案 3 :(得分:49)

Play Store上还有一个新的应用程序可用于反编译apk(系统应用程序)并直接在智能手机上查看源代码。它将文件保存到SD卡,以便您也可以在计算机上查看。它不需要root或其他东西。

只需安装并享受乐趣。我认为这是反编译应用程序的最简单方法。

答案 4 :(得分:26)

apktool是你可以尝试的最好的东西。我用它保存了一些xml,但说实话,我不知道它将如何与.java代码一起使用。

即使您是唯一的编码器,我也建议您拥有代码库。我一直在为自己的项目使用Project Locker。它为您提供免费的svn和git repos。

答案 5 :(得分:21)

这两篇文章描述了如何结合使用apktooldex2jar来获取APK文件,并创建一个可以构建和运行它的Eclipse项目。

  

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

     

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

基本上你:

  1. 使用apktool从apk
  2. 中获取资源文件
  3. 使用dex2jar以Eclipse希望的格式获取包含类的jar文件。
  4. 创建一个Eclipse项目,将其指向资源文件和新的jar文件
  5. 使用zip实用程序打开jar文件并删除现有资源
  6. 使用JDGui打开jar文件以查看源代码
  7. JDGui获取所需的任何源代码,将其粘贴在Eclipse内的类中并进行修改
  8. 从jar文件中删除该类(因此您没有多次定义相同的类)
  9. 运行它。

答案 6 :(得分:19)

apktool会起作用。您甚至不需要知道密钥库来提取源代码(这有点可怕)。主要缺点是源代码以Smali格式而不是Java格式呈现。其他文件,如icon和main.xml虽然完美无缺,但至少可以恢复它们。最终,您很可能需要从头开始重新编写Java代码。

你可以找到apktool here。只需下载apktool和相应的帮助程序(适用于Windows,Linux或Mac OS)。我建议使用7-zip等工具打开它们。

答案 7 :(得分:12)

有几种方法可以做到这一点:

  1. 使用Android Studio 3.0中的“配置文件或调试APK”功能。

    它允许您在Android Studio中打开和浏览APK。类被反编译成smali。没有提取资源,诸如“转到定义”,“查找所有引用”和调试之类的东西没有源代码(android studio 3.0 canary 9)就无法工作。一些额外的smali功能可能适用于smalidea

    android-studio

    select-file

    code

  2. 使用jadx

    Jadx将给定APK中的代码反编译为java源文件。

    jdax-img

  3. 使用apktool

    Apktool是一个命令行工具,它可以为给定的apk提取资源并将代码反编译为smali。你也可以使用apktool重新编译。以下是它的实例:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
    

答案 8 :(得分:8)

可能很容易看到来源:

在Android studio 2.3中,{ String user_name; String name_answer; String yes_no; String rules_yes; String rules_no; char input; private char yes; private char Yes; { user_name = JOptionPane.showInputDialog("Enter Your Name"); name_answer = ("Hello " + user_name + " Welcome to Tic-Tac-Toe, Click OK to Start"); JOptionPane.showMessageDialog( null, name_answer ); } { yes_no = JOptionPane.showInputDialog("Would you like the rules (Y/N)"); if (input == Yes || input == yes) { rules_yes = ("Yes? The Rules: X goes first, each player takes turns to put their symbol in one of nine boxes, you cannot put your symbol in a box which already contains a symbol, the first one to make a row of three wins"); JOptionPane.showMessageDialog( null, rules_yes ); } else { rules_no = ("No? Well too bad, here are the rules, The Rules: X goes first, each player takes turns to put their symbol in one of nine boxes, you cannot put your symbol in a box which already contains a symbol, the first one to make a row of three wins"); JOptionPane.showMessageDialog( null, rules_no ); } }
你会看到它的源代码。

参考链接:
https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2

答案 9 :(得分:6)

我将向您展示反编译 .apk 文件的其他方法。

您可以按照“ prankul garg ”的前两个步骤操作。所以你有另一个机会:

第3步:

下载“JD-GUI”,很容易找到这个。 在“jd-gui.exe”中打开 .jar 文件。 (文件&gt;打开文件&gt;'找到您的 .jar 文件')。完成此过程后,您可以将所有资源保存在 .zip 文件中。

所以,

1st - 您必须将 .apk 文件重命名为 .zip

第二 - 您必须解码 .dex 文件(如果需要,将 .apk 文件解码为 dex2jar ,这是可能的)< / p>

3 - 您必须使用 JD-GUI

解码 .jar 文件

答案 10 :(得分:5)

我个人推荐使用 Show Java Android App 来获取源代码。您可以从Play商店或here

下载

答案 11 :(得分:5)

此网站https://www.apkdecompilers.com/自动完成。

我首先尝试了接受的答案中提到的网站,但这对我没用。

答案 12 :(得分:5)

在线工具

http://www.javadecompilers.com/apk

它只需点击一下即可:反编译 .java文件+资源+ xml (在一个.zip文件中),反编译器非常好(jadx在其他编译返回注释的地方/函数中返回java代码内部函数,如“无法反编译”或一些Android汇编程序/机器代码)

答案 13 :(得分:4)

Apktool 用于逆向工程第三方,封闭式二进制Android应用。

它可以将资源解码为近乎原始的形式,并在进行一些修改后重建它们。

可以逐步调试smali代码。此外,由于类似项目的文件结构和一些重复性任务(如构建apk等)的自动化,它使应用程序更容易。

http://ibotpeaches.github.io/Apktool/

答案 14 :(得分:3)

apktool 是要走的路。 在线apktool服务也存在:http://www.javadecompilers.com/apktool

由于服务“在线性质”,显然存在一些限制:您可以提取和研究资产和清单文件,但目前无法重新编译应用程序。

尽管如此,这是一个“打开”Android应用程序的麻烦方式。

答案 15 :(得分:3)

您可以尝试DexPatcher。它甚至可以与Android Studio集成。它在内部使用ApktoolDex2Jar 您也可以单独使用这些工具。 Apktool反编译apk,并提取.dex文件,可以使用Dex2Jar进一步转换为jar。 Jar可以使用JD-GUI进行反编译。您可以在该工具的帮助下查看Java代码。虽然反编译代码与实际代码的相似性无法保证。市场上有一些先进的code obfuscation工具,它们使代码变得混乱,难以反编译/理解。例如。 Proguard

答案 16 :(得分:1)

最简单的方法是使用Apk OneClick反编译器。这是一个用于反编译和反汇编APK的工具包(Android包)。

功能

  • 所有功能都集成到Windows的右键单击菜单中。
  • 将APK类反编译为Java源代码。
  • 将APK分解为smali代码并解码其资源。
  • 通过右键单击将APK安装到手机上。
  • 在编辑smali代码和/或资源后重新编译APK。 重新编译期间:
  • 优化png图像
  • 签署apks
  • Zipalign

要求

必须安装Java Runtime Environment(JRE)。

您可以从此链接Apk OneClick Decompiler

下载它

享受。

答案 17 :(得分:1)

有一个用于此的应用程序,通常只需单击几下即可完成。 https://github.com/Nuvolect/DeepDive-Android

  1. 选择应用程序,在“已安装的应用程序”下选择您的应用程序。如果不是 在那里,您可以加载APK。
  2. 选择“提取APK”
  3. 选择“解压APK”
  4. 选择“使用Jadx进行反编译”。这可能需要几秒钟或几分钟的时间,具体取决于 设备的速度

之后,您可以浏览源代码,使用elFinder将其下载到另一台计算机上,或使用Lucene进行搜索。

除了Jadx,它还具有CFR和Fernflower反编译器。

答案 18 :(得分:1)

Android Studio可让您分析任何apk文件。

1-从构建菜单中选择分析apk选项,然后选择apk文件。 2-这将导致您找到classes.dex文件和其他文件。 3-单击classes.dex,它将为您提供文件夹,软件包,库和文件的列表。 4-从和android studio设置安装一个名为“ Dex to Jar”的插件 5-单击提取的项目的任何活动文件,然后从构建菜单中选择要添加的dex。

这将为您生成Java文件的实际代码。

干杯。

答案 19 :(得分:1)

我开发了一个工具-代码分析器,它可以在iPhone / iPad / Mac中运行,以分析Java / Android文件https://decompile.io

enter image description here

enter image description here

答案 20 :(得分:1)

1。从本地Android应用程序中提取源代码

获取本机Android应用程序的源代码并不难,但确实需要与Windows,Mac和Linux兼容的其他工具。我个人最喜欢的工具是dex2jarJD-GUI

如果您不熟悉这些工具,则dex2jar将读取Dalvik可执行文件,并将其转换为标准JAR格式。 JD-GUI将读取JAR文件并反编译其中找到的类文件。

为了使提取过程更容易理解,我们首先创建一个新的原生Android项目:

android create project --target 19 --name TestProject --path . --activity TestProjectActivity --package com.nraboy.testproject

以上命令将在当前命令提示符路径中为您提供一个Android项目。

由于我们的项目已经包含一个Activity类,因此让我们直接进入构建过程。对于使用Ant而不是Gradle或Maven来说,您可能会整天给我带来麻烦,但是对于本教程,我将继续使用它。

ant debug

上面的命令将创建一个调试版本,通常在 bin / TestProject-debug.apk 中找到。

使用您喜欢的解压缩工具,提取APK文件。 7-zip是一种流行的工具,但是如果您使用的是Mac,则可以从终端上运行以下命令:

unzip TestProject-debug.apk

这将给我们留下一堆文件和文件夹,但其中一个对我们很重要。记下classes.dex,因为它包含我们所有的源代码。要将其转换为可读的内容,我们需要在其上运行dex2jar。您可以在Mac,Linux和Windows上使用dex2jar,但我将从Mac的角度进行解释。

在提取的 dex2jar 目录中使用 classes.dex 文件,从终端运行以下命令:

./dex2jar.sh classes.dex

打开您下载的JD-GUI应用程序,因为现在是时候解码JAR和打包的类文件了。打开新创建的 classes_dex2jar.jar 文件,您应该看到类似以下内容的文件:

enter image description here 看到原生Android APK的源代码有多容易?现在您该怎么做才能更好地保护自己?

Android SDK随附Proguard,这是一个模糊处理模块。您问什么是混淆?

通过Wikipedia进行混淆:

混淆(或模糊)是隐藏预期含义 沟通,使沟通混乱,故意模棱两可, 而且很难解释。

虽然混淆不会加密您的源代码,但会使理解变得更加困难。在配置了Proguard的情况下,以发布模式运行Ant,并且应该在构建时混淆代码。

2。从混合Android应用程序中提取源代码

到目前为止,混合应用程序的源代码最容易提取。您无需在计算机上安装任何其他软件,只需访问APK文件即可。

为使事情更容易理解,首先创建一个新的Apache Cordova项目,然后将其提取。首先执行以下操作:

cordova create TestProject com.example.testproject TestProject
cd TestProject
cordova platform add android

在项目创建过程中,您将获得默认的Apache Cordova CSS,HTML和JavaScript模板。在这个例子中,对我们来说很好。让我们继续,将我们的项目构建为分布式APK文件:

cordova build android

您将只剩下 platforms / android / ant-build / CordovaApp-debug.apk或类似于platform / android / ant-build / *-debug.apk 的东西

即使这是调试版本,它仍然非常有用。安装7-zip或类似文件后,右键单击APK文件,然后选择解压缩或解压缩。现在,在解压缩的目录中,您应该可以访问所有基于Web的源文件。我说基于Web的原因是因为Apache Cordova使用的所有Java文件都将被编译成类文件。但是,CSS,HTML和JavaScript文件不会受到影响。

您刚刚看到获取混合应用程序源代码多么容易。那么,您该怎么做才能更好地保护自己?

您可以混淆代码,这是一种混淆处理。

这样做不会对您的代码进行加密,但是会使代码的理解变得更加困难。

如果您想丑陋的代码,我建议您安装UglifyJS,因为到目前为止它几乎是标准的。如果您更喜欢使用任务运行器,那么Grunt和Gulp也具有适用于UglifyJS的模块。

答案 21 :(得分:1)

市场上有很多将apk文件反编译为java类的应用程序和方法,但是如果使用ProGuard规则编译该应用程序,那么您将遇到很大麻烦,因为该规则会将所有dex文件缩小为较小的字符名称,则您将无法追溯实现。有关模式的说明,请参见https://developer.android.com/studio/build/shrink-code

快乐编码...

答案 22 :(得分:0)

我发现以下是最简单的方法:

  1. 将您的app.apk重命名为app.zip(将扩展名从apk更改为zip)
  2. 将zip文件提取到文件夹中
  3. 使用JADX工具读取显示在classes.dex文件中的源代码。

答案 23 :(得分:0)

根据您的情况,如果您的Android apk:

条件1:没有变硬(由腾讯Legu /奇虎360 /...)

选择1:使用在线服务

例如:

使用www.javadecompilers.com

转到:

从apk自动解码为Java源代码

步骤:

upload apk文件+单击Run +等待一段时间+单击Download以获取zip +解压缩->

sources/com/{yourCompanyName}/{yourProjectName}

是您期望的Java源代码

选择2:自己反编译/破解

使用相关工具自行反编译/破解:

使用jadx / jadx-guiapk转换为java sourcecode

下载jadx-0.9.0.zip,然后解压缩到bin/jadx,然后:

  • 命令行模式:
    • 在终端运行中:jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder将显示已解码的sourcesresources
      • sources/com/{yourCompanyName}/{yourProjectName}是您期望的java sourcecode
  • GUI模式
    • 双击运行jadx-0.9.0/bin/jadx-gui(Linux的jadx-gui.sh / Windows的jadx-gui.bat
    • 打开apk文件
    • 它将自动解码->查看您期望的Java源代码
    • save allsave as Gradle project

例如:

条件2:变硬(由腾讯Legu /奇虎360 /...)

3 steps的主要方法:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

详细说明:

第1步:apk/app to dex

使用工具(FDex2 / DumpDex)从运行的应用程序中转储/挂出(一个或多个)dex文件

步骤:

准备环境

从正在运行的应用中转出dex

  • 运行FDex2,然后单击您的apk名称以稍后启用以捕获/捕获dex

  • (在手机/模拟器中)运行您的应用
  • /data/data/com/yourCompanyName/yourProjectName中查找并复制转储的整个apk资源
    • 在其根文件夹中通常会找到几个dex文件

第二步:dex to jar

使用工具(dex2jar)将dex文件(包含应用程序逻辑的特定文件)转换为jar文件

下载dex2jar得到dex-tools-2.1-SNAPSHOT.zip,解压缩得到dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh,然后

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

例如:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

第3步:jar to java src

使用其中一种工具:

jar转换为java src

对于从jar到Java src的转换效果:

Jadx> Procyon> CRF >> JD-GUI

因此建议使用:Jadx / jadx-gui

步骤:

  • 双击运行jadx-gui
  • 打开dex文件
  • File-> save all

例如:

导出的Java src:


更详细的解释可以参见我的在线电子书中文教程:

答案 24 :(得分:0)

几天来,我一直让自己发疯,试图让dex2jar在无法正常工作的apk上在fedora 31笔记本电脑上工作。这个python 3脚本在几分钟内就完成了技巧,并安装了jd-gui使类文件易于阅读。

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

具体来说,这就是我运行的内容:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

现在应该可以朗读以下内容以获得类文件:

$> enjarify yourapkfile.apk

然后启动jd-gui:

$> jd-gui

然后只需打开您的课程文件!

答案 25 :(得分:0)

使用此工具 http://www.javadecompilers.com/

但是最近,反编译器涌入了新一波市场: Procyon,CFR,JD,Fernflower,Krakatu,Candle。

以下是此网站上显示的反编译器列表:

CFR - 免费,没有可用的源代码,http://www.benf.org/other/cfr/ 作者:李本菲尔德(Lee Benfield)

非常好的更新反编译器! CFR能够反编译现代Java功能-Java 9模块,Java 8 lambda,Java 7字符串开关等。 甚至可以将其他JVM语言的类文件转换回Java!

JD - 免费,仅用于非商业用途,http://jd.benow.ca/ 作者:伊曼纽尔·杜普伊(Emmanuel Dupuy)

在2015年更新。具有自己的可视界面以及Eclipse和IntelliJ的插件。用C ++编写,非常快。支持Java 5。

Procyon - 开源https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler 作者:Mike Strobel

蕨类植物- 开源https://github.com/fesh0r/fernflower 作者:Egor Ushakov

2015年更新。非常有前途的分析Java反编译器,现已成为IntelliJ 14的组成部分。(https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler) 支持Java直到版本6(注释,泛型,枚举)

JAD - 仅出于历史原因在此给出。免费,没有源代码,jad下载镜像 作者:Pavel Kouznetsov

答案 26 :(得分:0)

是的,有可能。

可以使用大量软件对android .apk文件进行反向工程。

最近,我在自己的网站上编制了47 best APK decompilers的最终列表。我将它们分为4个不同的部分。

  1. 开源APK反编译器
  2. 在线APK反编译器
  3. 适用于Windows,Mac或Linux的APK反编译器
  4. APK反编译器应用

我希望这个收藏对您有所帮助。

链接:https://www.edopedia.com/blog/best-apk-decompilers/

答案 27 :(得分:0)

第 1 步: 创建一个新文件夹并复制您要解码的 .apk 文件。

现在将这个 .apk 文件的扩展名重命名为 .zip(例如,从 filename.apk 重命名为 filename.zip)并保存它。现在你可以访问 classes.dex 文件等。在这个阶段你可以看到 drawables 但不能看到 xml 和 java 文件,所以继续。

第 2 步: 现在将此 .zip 文件解压缩到同一文件夹(或新文件夹)中。

下载https://github.com/pxb1988/dex2jar/releases/tag/2.0:dex2jar-2.0

现在打开命令提示符并将目录更改为该文件夹(或新文件夹)。然后执行: d2j-dex2jar.bat classes.dex

下载这个反编译器http://java-decompiler.github.io/来反编译classes-dex2jar.jar

第 3 步: 现在打开另一个新文件夹

放入要解码的.apk文件

下载最新版本的 apktool 和 apktool (https://ibotpeaches.github.io/Apktool/install/) 安装窗口(都可以从同一个链接下载)并将它们放在同一个文件夹中

打开命令窗口

现在运行像 apktool 这样的命令,如果 framework-res.apk(如果你没有在这里获取它)然后下一步

apktool d myApp.apk(其中 myApp.apk 表示您要解码的文件名)

现在您在该文件夹中获得了一个文件夹,并且可以轻松读取 apk 的 xml 文件。

将两个文件夹的内容复制到一个文件夹

完成!