如何解压、编辑和压缩Android APK

63

我有一个 Android 应用程序(apk),但已经删除了源代码并且没有项目。我想要更改旧 apk 的版本号。我的问题是如何解压和重新打包 apk,以便我可以使用它。我正在使用 Mac 系统。我看到了很多针对 Windows 的教程,但我找不到 Mac 版本的。请帮助我。

3个回答

171

解压apk文件

最简单的方法是执行unzip命令:

unzip xxx.apk -d xxx

将生成一个名为xxx的目录以存储解压后的文件。 实际上,.apk文件与.zip文件相同。执行命令file XXX.apk查看。

从apk中获取可读取的文本文件

如果您想要可读取的文本文件,例如清单文件,我建议使用apktool。我们可以使用Homebrew轻松安装apktool:

brew install apktool

然后获取可读取的文本文件:

apktool d xxx.apk

在上一个命令之后,会有一个 xxx 目录包含可读的文本文件,其他文件也会在其中。

编辑zip文件

如果您想直接编辑zip文件,Keka 可能是一个不错的选择。


3
这应该是可接受的答案,无需下载任何应用程序或工具。 - vishwa.deepak
4
AndroidManifest.xml 看起来像乱码。 - Gqqnbig
我同意这应该被标记为被采纳的答案,感谢刘涛! - Michael
在Windows中,该命令未被识别? - showtime
@dontdownvoteme Windows 不支持该命令,但您可以将 apk 扩展名修改为 zip,然后使用其他工具进行解压。 - Liu Tao

32

为了完整回答Mac上的解压、编辑和打包问题:

解压/解压缩

如刘涛所述,Mac上解压*.apk文件的最简单方法是使用以下命令:

unzip xxx.apk -d xxx

因为*.apk文件实际上就是一个zip文件。同样地,如刘涛所述,可以通过file命令找出这一点。

file xxx.apk

会显示类似于以下的输出:

xxx.apk: Zip archive data, at least v2.0 to extract

编辑

我认为这很容易理解。进入导出*.apk内容的文件夹并像通常一样进行编辑。

打包/压缩

在Mac上,这也相当简单。 您可以使用zip命令将所有文件打包成一个*.apk文件。

zip -r xxx.apk xxx/


恐怕这似乎不再起作用了(至少在尝试在模拟器上安装时不起作用)。尽管新的 APK 文件中存在该文件,但 Logcat 显示 java.io.FileNotFoundException: AndroidManifest.xml - foxtrotuniform6969
我一直在尝试在Windows上实现这个目标,但一直无法做到。我已经尝试了几种压缩工具:PowerShell的unzip/zip命令、7zip、C#的zip库:System.IO.Compression.ZipFile、SharpZipLib、SharpCompress、DotNetZip。如果有任何帮助,将不胜感激。 - Carlos Iglesias

15

1
您还可以使用类似jdgui的工具来恢复您的源代码的外观。http://jd.benow.ca - Blackdragon1400
有点过度杀伤了。 - hasen
1
对我不起作用。在生成APK文件后,Android显示:解析包时出现问题。 - Khalil Laleh
我讨厌Java运行时:错误:找不到或加载主类版本。 - zezba9000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接