Wie kann ich AndroidManifest.xml aus der APK-Datei anzeigen?

309

Ist es möglich, Androidmanifest.xmlDateien anzuzeigen ?

Ich habe gerade die Erweiterung der apkDatei in geändert zip. Diese zipDatei enthält die Androidmanifest.xmlDatei. Aber ich kann den Inhalt von nicht sehen Androidmanifest.xml. Es ist vollständig verschlüsselt.

Wie kann ich die Androidmanifest.xmlDatei anzeigen ?

Bharath
quelle
Ich habe eine APK-Datei. Ich muss die Datei Androidmanifest.xml anzeigen. weil ich ein Framework verwendet habe. Diese APK-Datei verwendete ebenfalls das gleiche Framework. Ich muss also sehen, wie man die Androidmanifest-Datei aus dieser APK-Datei heraus konfiguriert.
Bharath
@ Jason Rogers: AFAIK Sie können diese Informationen anzeigen. Siehe dies
Vikas Patidar

Antworten:

220

Ja, Sie können XMLDateien einer Android APKDatei anzeigen . Dafür gibt es ein Werkzeug:android-apktool

Es ist ein Tool für das Reverse Engineering von geschlossenen, binären Android-Apps von Drittanbietern

So geht's auf Ihrem Windows-System:

  1. Laden Sie die Datei apktool-install-windows- * herunter
  2. Laden Sie die Datei apktool- * herunter
  3. Entpacken Sie beide in Ihr Windows-Verzeichnis

Kopieren Sie nun die APKDatei auch in dieses Verzeichnis und führen Sie den folgenden Befehl in Ihrer Eingabeaufforderung aus:

apktool d HelloWorld.apk ./HelloWorld

Dadurch wird ein Verzeichnis " HelloWorld" in Ihrem aktuellen Verzeichnis erstellt. Darin finden Sie die AndroidManifest.xmlDatei in entschlüsseltem Format, und Sie können auch andere XMLDateien im "HelloWorld/res/layout"Verzeichnis finden.

Hier HelloWorld.apkist deine Android APK Datei.

Weitere Informationen finden Sie im folgenden Screenshot: Alt-Text

Vikas Patidar
quelle
15
Das ist schön, aber ich würde gerne wissen, wie man sich die AndroidManifest.xml ansieht, ohne all dies herunterladen zu müssen. Ist es verschlüsselt oder komprimiert?
Johnny Lambada
1
@JohnnyLambada : Ja, Sie können es in einem Archivierungswerkzeug wie WinRar / WinZip / 7Zip öffnen und anzeigen, aber es macht keinen Sinn, da es in verschlüsselter Form vorliegt.
Vikas Patidar
9
Das Apktool ist veraltet. Die neueste Version finden Sie auf der Projekthomepage .
Deqing
1
Ich erhalte: Ausnahme im Thread "main" brut.androlib.AndrolibException: Mehrere Ressourcen: at brut.androlib.res.data.ResConfig.addResource (Unbekannte Quelle)
WindRider
3
Jetzt hat sich der Befehl für die neueste Version geändertapktool d your_destination youraApk.apk
Pranoy Sarkar
109

Android Studio kann dies jetzt anzeigen. Gehe zu Build> Analyze APK...und wähle deine apk aus. Dann können Sie den Inhalt der AndroidManifset-Datei sehen.

Jonas Jongejan
quelle
3
Diese Funktion wurde kürzlich hinzugefügt, und ich möchte dies auch vorschlagen, es sei denn, Sie möchten die Befehlszeile verwenden und haben die Plattform-Tools in Ihrem Pfad eingerichtet.
Anthonymonori
8
Dies sollte positiv bewertet werden, um die beste Antwort zu erhalten. Andere Methoden sind jetzt unnötig kompliziert.
Sébastien
3
Es gibt auch eine Befehlszeilenversion dieses eingebauten: stackoverflow.com/a/54874783/89818
caw
46

aapt d xmltree com.package.apk AndroidManifest.xml

wird das AndroidManifest.xmlvon der angegebenen APK sichern. Es ist nicht in XML-Form, aber Sie können es trotzdem lesen.

aapt (Android Asset Packaging Tool) ist ein integriertes Tool, das mit dem Android SDK geliefert wird.

Geobio Boo
quelle
45

In diesem Thread sagt uns Dianne Hackborn, dass wir mit aapt Informationen aus dem AndroidManifest abrufen können.

Ich habe diesen schnellen Unix-Befehl aufgerufen, um die Versionsinformationen abzurufen:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"
Johnny Lambada
quelle
ist es möglich, dies auch innerhalb einer Android-App zu tun? Ist es auch möglich, die gesamte Manifestdatei und nicht nur den Versionsnamen abzurufen?
Android-Entwickler
36

Google hat gerade ein plattformübergreifendes Open-Source-Tool zur Überprüfung von APKs veröffentlicht (neben vielen anderen binären Android-Formaten):

ClassyShark ist ein eigenständiges binäres Inspektionstool für Android-Entwickler. Es kann zuverlässig jede ausführbare Android-Datei durchsuchen und wichtige Informationen wie Klassenschnittstellen und Mitglieder, Dex-Zählungen und Abhängigkeiten anzeigen. ClassyShark unterstützt mehrere Formate, einschließlich Bibliotheken (.dex, .aar, .so), ausführbare Dateien (.apk, .jar, .class) und alle binären Android-XMLs: AndroidManifest, Ressourcen, Layouts usw.

ClassyShark Screenshot

Dan Dascalescu
quelle
3
Dies ist 10000 Mal einfacher als Apktool!
Guilherme Campos Hazan
18

Sie können apkanalyzerdie Befehlszeilenversion des APK Analyzer verwenden , die im Lieferumfang des Android SDK enthalten ist. Führen Sie einfach den folgenden Befehl in der CLI aus:

/path/to/android-sdk/tools/bin/apkanalyzer manifest print /path/to/app.apk

Sie müssen nur /path/to/android-sdkden richtigen Pfad zu Ihrer Version des Android SDK und /path/to/app.apkden Pfad zu Ihrer APK-Datei ersetzen .

krächzen
quelle
8
Dies sollte die akzeptierte Antwort sein, da nichts aus nicht überprüften Quellen installiert werden muss.
c4k
Beachten Sie, dass dies unter Windows nicht zu funktionieren scheint :( stackoverflow.com/a/54593118/997940
Yoav Feuerstein
Ich erhalte die Fehlermeldung: Ausnahme im Thread "main" java.lang.IllegalStateException: Die Eigenschaft des Tools-Verzeichnisses ist nicht festgelegt. Stellen Sie sicher, dass Sie apkanalyzer ausführen. Ich wusste nicht, wie ich sie lösen soll
jk2K
Dies ist höchstwahrscheinlich der Pfad, den Sie benötigen, wenn Sie mit macOS arbeiten:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Frederik
15

Sie können diesen Befehl verwenden: In Datei speichern AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt
Ahmad Aghazadeh
quelle
2
dist eine Abkürzung für dump, die diese Antwort identisch machen diese , die mehr als ein Jahr zuvor geschrieben wurde.
Dan Dascalescu
4
Ja, aber dieser Code wird in einer Datei gespeichert > AndroidManifest.txt.
Ahmad Aghazadeh
lol, das ist die gleiche Antwort, das Ablegen der Datei macht keinen Unterschied
Leonardo Sapuy
8

Der AXMLParser und APKParser.jar können ebenfalls die Arbeit erledigen, Sie können den Link sehen. AXMLParser

twlkyao
quelle
1
Dieses Tool wurde seit Jahren nicht mehr aktualisiert. Google hat gerade ein binäres Inspektionstool für Android im November 2016 veröffentlicht.
Dan Dascalescu
7

Es gibt ein Online-Tool, mit dem Sie eine APK hochladen können. Sie dekompiliert sie und schließlich können Sie eine Zip-Datei mit allen Quellen, Manifest-XML-Dateien usw. herunterladen, ohne dass Sie ein Programm auf Ihrem Computer installieren müssen: http: / /www.javadecompilers.com/apk

Auch wenn Sie nur einige Parameter überprüfen möchten, können Sie über deren Benutzeroberfläche

user3289695
quelle
Arbeitete an einer APK im August, arbeitete nicht an einer anderen im November
Dan Dascalescu
apktools schien mit der Ausgabe kein Verzeichnis für mich zu erstellen, und aapt zeigte das Ergebnis nicht im XML-Format an. Diese Website hat wie ein Zauber funktioniert.
Regus
6

So dekodieren Sie die AndroidManifest.xmlDatei mit axmldec :

axmldec -o output.xml AndroidManifest.xml

oder

axmldec -o output.xml AndroidApp.apk
Amir Rezazadeh
quelle
Dies funktioniert und kann einfach über Homebrew installiert werden:brew tap ytsutano/toolbox brew install axmldec
gmoz22
5

Aapt2, das in den Build-Tools des Android SDK enthalten ist, kann dies - es werden keine Tools von Drittanbietern benötigt.

$(ANDROID_SDK)/build-tools/28.0.3/aapt2 d --file AndroidManifest.xml app-foo-release.apk

Ab Build-Tools v29 müssen Sie den folgenden Befehl hinzufügen xmltree:

$(ANDROID_SDK)/build-tools/29.0.3/aapt2 d xmltree --file AndroidManifest.xml app-foo-release.apk
BitByteDog
quelle
Dies gibt nicht das ursprüngliche XML aus, aber es ist ordentlich, wenn ich nur einen Wert darin betrachten muss, ohne die APK extrahieren oder in eine temporäre Datei schreiben zu müssen.
Raziel
2

Sie können auch meine App App Detective verwenden , um die Manifestdatei jeder App anzuzeigen, die Sie auf Ihrem Gerät installiert haben.

zmarties
quelle
0

Dies ist ein alter Thread, aber ich dachte, ich würde erwähnen, dass Ihr Telefon über Root verfügt. Sie können ihn mit der Root-Explorer-App direkt auf Ihrem Telefon anzeigen. Sie müssen es nicht einmal extrahieren, um es zu sehen.

richbai90
quelle
-1

Die Datei muss dekompiliert werden (oder deodex würde nicht sicher sein, welche). Aber hier ist eine andere Möglichkeit:

-Download free Tickle My Android tool on XDA: https://forum.xda-developers.com/showthread.php?t=1633333https://forum.xda-developers.com/showthread.php?t=1633333
-Unzip
-Copy APK into \_WorkArea1\_in\ folder
-Open "Tickle My Android.exe"
-Theming Menu
-Decompile Files->Any key to continue (ignore warning)
-Decompile Files->1->[Enter]->y[Enter]
-Wait for it to decompile in new window... Done when new window closes
-Decompiled/viewable files will be here: \_WorkArea3\_working\[App]\
Kevin
quelle