2010-08-30 385 views
74

有沒有辦法提取和查看.apk文件的內容?如何查看Android APK文件的內容?

+1

檢出[android-apktool](http://code.google.com/p/android-apktool/)。 – Macarse 2010-08-30 10:27:43

+0

apktool已移至https://ibotpeaches.github.io/Apktool/ – Kirk 2015-05-11 18:30:31

回答

95

實際上,apk文件只是一個zip壓縮文件,因此您可以嘗試將文件重命名爲theappname.apk.zip並使用任何zip實用程序(例如7zip)將其解壓縮。

androidmanifest.xml文件和資源將被提取並且可以被看作而源代碼不是在包 - 剛編譯.DEX文件(「的Dalvik可執行」)

+2

在大多數Linux發行版中,您甚至不需要重命名該文件;您只需雙擊它,它就會打開相應的文件存檔(zip)實用程序,因爲文件通常由其[簽名](http://en.wikipedia.org/wiki/File_format#Magic_number)標識比擴展。 – bmaupin 2012-07-02 23:06:04

+1

每當我嘗試這個,我得到一個沒有任何有用的內容的二進制文件 – 2015-11-08 20:11:16

8

還有zzos。 (完全披露:我寫的)。它只反編譯實際的資源,而不是dex部分(baksmali,我沒有寫,在處理這個部分方面做得非常出色)。

Zzos與apktool相比知名度要低得多,但是有些APK可以更好地處理它(反之亦然 - 稍後會介紹更多)。大多數情況下,包含自定義資源類型(非修飾符)的APK在上次檢查時未由apktool處理,並且由zzos處理。還有一些情況是zzos處理得更好。

在消極的一面,zzos(當前版本)需要一些支持工具來安裝。它是用perl編寫的(與用Java編寫的APKTool相對),並使用aapt進行實際的反編譯。它也不反編譯屬性資源(APKTool的)。

該名稱的含義是「aapt」,Android的資源編譯器向下移動了一個字母。

7

雖然解壓縮,就會發現資源,AndroidManifest.xml將被編碼。 apktool可以在許多其他事物中解碼這個文件。

要使用最爲包庫的可用應用程序App.apk解碼成文件夾App,運行

apktool decode App.apk App 

apktool不包括在官方Android SDK,但。

1

,Android電子的APK

http://www.decompileandroid.com/

APK上傳從本地機器

一個在線反編譯等待某些時刻zip格式

下載源代碼。

解壓縮後,您可以正確查看所有資源,但所有java文件都沒有正確反編譯。

對於全部細節visit this answer

0

您還可以使用Jadx - https://github.com/skylot/jadx。我已經使用了本頁中提到的所有工具,並發現Jadx工作得最好。清單文件和其他類文件儘可能通過此工具轉換爲可讀格式。

PS - http://www.javadecompilers.com/apk也使用jadx反編譯器在線做同樣的工作。更簡單,如果你想解開一個單一的apk。

乾杯!

3

根據你想提取APK的原因,APK分析器可能就足夠了。它顯示你的目錄和文件大小。它還顯示按包分組的方法計數,您可以深入分析。

APK分析器內置於Android Studio。您可以從頂級菜單生成 - >分析APK來訪問它。

7

它現在與Android Studio一起發貨。 只要到編譯/分析APK ...然後選擇您的APK :)

enter image description here

0
unzip my.apk 

會做的伎倆從Linux命令行。