其实我试图提取一个名为cloudfilz.apk的.apk文件的代码,并想在其源代码中操作,所以我按照下面给出的步骤: -
制作一个新文件夹,然后放入.apk文件(你想要解码),现在将此.apk文件重命名为扩展名.zip(例如:从filename.apk重命名为filename.apk.zip)并保存..现在你得到classes.dex文件等......在这个阶段你可以看到drawable而不是xml和java文件......所以继续......
第2步:
现在将此zip文件解压缩到同一个文件夹中(在此例如或案例中为NEW FOLDER)。现在从这个链接http://code.google.com/p/dex2jar/下载dex2jar并将其解压缩到同一文件夹(在本例中为NEW FOLDER).....现在打开命令提示符并到达该文件夹(在本例中为NEW FOLDER)....在达到写“dex2jar classes.dex”并按下回车.....现在你在同一个文件夹中得到classes.dex.dex2jar文件......
=>问题: - 我成功实现了第1步,但是在第2步,当我执行dex2jar classes.dex时,我在命令提示符java.lang.UnsupportedClassVersionError
上收到错误,我知道这是因为我的安装之间不兼容jdk版本和classes.dex jdk版本号如此卡在这里,dnt有出路...
答案 0 :(得分:90)
注意:除非另有说明,否则以下所有说明均适用(也适用于所有操作系统)。
您将需要:
通过在文件名中添加.apk
扩展名或将.zip
更改为.apk
来更改.zip
文件的文件扩展名。
例如,com.example.apk
变为com.example.zip
或com.example.apk.zip
。请注意,在Windows和macOS上,它可能会提示您是否确定要更改文件扩展名。如果您使用的是macOS,请单击确定或添加:
在特定文件夹中提取重命名的APK文件。例如,让该文件夹为demofolder
。
如果它不起作用,请尝试在另一个应用程序(如WinZip或7-Zip)中打开该文件。
对于macOS,您可以尝试在终端中运行unzip
(在/Applications/Terminal.app
处可用),其中需要一个或多个参数:要解压缩的文件+可选参数。有关文档和参数,请参阅man unzip
。
下载dex2jar
(see all releases on GitHub)并将该zip文件解压缩到与上一点相同的文件夹中。
打开命令提示符(或终端)并将当前目录更改为上一点中创建的文件夹,然后键入命令d2j-dex2jar.bat classes.dex
并按Enter键。这将在同一文件夹中生成classes-dex2jar.jar
文件。
d2j-dex2jar.bat
替换为d2j-dex2jar.sh
。换句话说,在终端中运行d2j-jar2dex.sh classes.dex
并按Enter键。下载Java Decompiler (see all releases on Github)并解压缩并启动(又称双击)可执行文件/应用程序。
在JD-GUI窗口中,将生成的classes-dex2jar.jar
文件拖放到其中,或转到File > Open File...
并浏览jar。
接下来,在菜单中,转到File > Save All Sources
(Windows: Ctrl + Alt + S ,macOS :⌘ + ⌥ + S )。这应该打开一个对话框,询问你在哪里保存一个名为`classes-dex2jar.jar.src.zip的zip文件,包含所有包和java文件。(你可以重命名要保存的zip文件)
提取该zip文件(classes-dex2jar.jar.src.zip
),您应该获取该应用程序的所有java文件。
xml
个文件apktool
website了解安装说明及更多信息视窗:
myxmlfolder
)。myxmlfolder
文件夹,并将apktool jar文件重命名为apktool.jar
。.apk
文件放在同一文件夹中(即myxmlfolder
)。打开命令提示符(或终端)并将当前目录更改为存储apktool
的文件夹(在本例中为myxmlfolder
)。接下来,键入命令apktool if framework-res.apk
。
我们在这里做的是我们正在安装一个框架。有关详细信息,请参阅docs。
在命令提示符下,键入命令apktool d filename.apk
(其中filename
是apk文件的名称)。这应该解码文件。有关详细信息,请参阅docs。
这会导致输出文件夹filename.out
,其中filename
是没有.apk
文件扩展名的apk文件的原始名称。在这个文件夹中是所有XML文件,如布局,drawables等。
答案 1 :(得分:27)
来自市场的任何.apk文件或未签名的
如果你从市场下载apk,那么从市场上签署安装Astro文件管理器。打开Astro>工具>应用程序管理器/备份并选择要备份到SD卡的应用程序。 将手机挂载为USB驱动器并访问“backupsapps”文件夹以找到目标应用的apk(让我们称之为app.apk)。将其复制到本地驱动器的情况与未签名的.apk相同。
从以下链接下载Dex2Jar zip:SourceForge
解压缩下载的zip文件。
打开命令提示符&在到达dex2jar exe所在的目录时编写以下命令,并将apk复制到同一目录中。
dex2jar targetapp.apk file
(终端上的./ dex2jar app.apk)
http://jd.benow.ca/从此链接下载反编译器。
用jd-gui打开'targetapp.apk.dex2jar.jar' 文件>保存所有源以将jar文件中的类文件保存为java文件。
答案 2 :(得分:2)
第1步:
下载dex2jar here。创建一个java项目并粘贴(dex2jar-0.0.7.11-SNAPSHOT / lib)jar文件。
将apk文件复制到java项目
运行它并在刷新项目后,获得jar文件。使用java反编译器可以查看所有java类文件
第2步:下载java反编译器here
答案 3 :(得分:0)
Click here这是window / ubuntu的一个很好的教程。
从here下载apktool1.5.1.jar。
从here下载apktool-install-linux-r05-ibot。
从here下载dex2jar-0.0.9.15.zip。
jd-gui-0.3.3.linux.i686.tar.gz(java de-complier)从here下载。
framework-res.apk(位于你的android设备/系统/框架/)
步骤:
它将成为.zip。
然后提取.zip。
解压缩下载的dex2jar-0.0.9.15.zip文件,复制内容并将其粘贴到解压缩文件夹中。
打开终端并更改目录以解压缩“dex2jar-0.0.9.15”
- cd - sh dex2jar.sh classes.dex(此命令“classes.dex.dex2jar.jar”的结果将出现在提取的文件夹中)。
现在,创建新文件夹并将“classes.dex.dex2jar.jar”复制到其中。
解压缩“jd-gui-0.3.3.linux.i686.zip”并以全屏模式打开“Java Decompiler”。
点击打开文件,然后在窗口中选择“classes.dex.dex2jar.jar”。
“Java Decompiler”并转到文件>将源保存并保存在.zip文件中。
创建“source_code”文件夹。
提取已保存的.zip并将内容复制到“source_code”文件夹。
这是我们保留源代码的地方。
提取apktool1.5.1.tar.bz2,你得到 apktool.jar
现在,解压缩“apktool-install-linux-r05-ibot.zip”
复制“framework-res.apk”,“。apk”和apktool.jar
将其粘贴到解压缩“apktool-install-linux-r05-ibot”文件夹(第13行)。
然后打开终端并输入:
- cd
- chown -R:'apktool.jar'
- chown -R:'apktool'
- chown -R:'aapt'
- sudo chmod + x'apletool.jar'
- sudo chmod + x'apktool'
- sudo chmod + x'apapt'
- sudo mv apktool.jar / usr / local / bin
- sudo mv apktool / usr / local / bin
- sudo mv aapt / usr / local / bin
- 如果是framework-res.apk,请访问apktool - apktool d .apk