如何解压、编辑和压缩安卓 apk

Posted

技术标签:

【中文标题】如何解压、编辑和压缩安卓 apk【英文标题】:How to unzip, edit and zip an android apk 【发布时间】:2015-06-09 22:01:04 【问题描述】:

我有一个android apk,我删除了我的源代码并且没有再次拥有该项目,我想更改旧apk的版本代码。我的问题是如何解压缩并重新打包 apk 以便我可以使用。我用的是mac系统。我在 windows 上看到了很多东西,但我找不到 mac。我需要帮助

【问题讨论】:

【参考方案1】:

解压apk文件

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

解压xxx.apk -d xxx

会生成一个目录 xxx 来存放解压后的文件。 实际上,.apk 文件与 .zip 文件相同。执行命令file XXX.apk 可以看到。

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

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

brew install apktool

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

apktool d xxx.apk

在前面的命令之后,一个 xxx 目录包含可读的文本文件,其他的也会在那里。

编辑压缩文件

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

【讨论】:

这应该是可以接受的答案,无需下载任何应用或工具。 但是 AndroidManifest.xml 看起来像乱码。 我同意这应该被标记为接受的答案,谢谢刘涛!【参考方案2】:

要给出在Mac上解包、编辑和打包的完整答案:

解压/解压

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

unzip xxx.apk -d xxx

这是因为 *.apk 文件只不过是一个 zip 文件。同样,正如刘涛所说,这可以通过file命令找到。

file xxx.apk

这将显示如下所示的输出:

xxx.apk:压缩存档数据,至少要 v2.0 才能解压

编辑

我认为这是不言自明的。进入您将 *.apk 内容导出到的文件夹并像往常一样编辑它们。

包装/拉链

在 Mac 上,这也很简单。 您可以使用 zip 命令将所有文件打包回 *.apk 文件中。

zip -r xxx.apk xxx/

【讨论】:

恐怕它看起来不再像这样工作了(至少在尝试安装在模拟器上时)。尽管文件存在于新 APK 中,Logcat 仍显示 java.io.FileNotFoundException: AndroidManifest.xml 我一直在努力实现这一点,在 Windows 上,我一直无法做到。我尝试了几种 zip 工具:powershell unzip/zip 命令、7zip、C# zip 库:System.IO.Compression.ZipFile、SharpZipLib、SharpCompress、DotNetZip。任何帮助将不胜感激。【参考方案3】:

您想使用 APKTool。它将为您处理解压缩和重建:http://ibotpeaches.github.io/Apktool/

【讨论】:

您还可以使用 jdgui 之类的工具来获取源代码的外观。 jd.benow.ca 有点矫枉过正 不适合我。 android生成apk文件后说:解析包有问题 我讨厌 Java 运行时:错误:找不到或加载主类版本

以上是关于如何解压、编辑和压缩安卓 apk的主要内容,如果未能解决你的问题,请参考以下文章

怎么给修改后的apk重新签名?

平板上如何压缩文件?

如何从 Android .apk 资产文件夹中解压缩 LUA 脚本?

Unity如何打包Apk能压缩资源

安卓压缩-解压软件ZArchiver Pro v0.9.1 / 0.9.2 付费汉化专业版

dex文件怎么变成apk