Come visualizzare AndroidManifest.xml dal file APK?


309

È possibile visualizzare il Androidmanifest.xmlfile?

Ho appena cambiato l'estensione del apkfile in zip. Questo zipfile contiene il Androidmanifest.xmlfile. Ma non riesco a visualizzare il contenuto di Androidmanifest.xml. È completamente crittografato.

Come posso visualizzare il Androidmanifest.xmlfile?


Ho un file APK. Devo visualizzare il file Androidmanifest.xml. perché ho usato un framework. Anche quel file APK utilizzava lo stesso framework. Quindi ho bisogno di vedere come configurare il file Androidmanifest da quel file APK.
bharath,

@Jason Rogers: AFAIK è possibile visualizzare tali informazioni. Vedi questo
Vikas Patidar il

Risposte:


220

Sì, puoi visualizzare i XMLfile di un Android APKfile. C'è uno strumento per questo:android-apktool

È uno strumento per il reverse engineering di app Android binarie chiuse di terze parti

Come fare questo sul tuo sistema Windows:

  1. Scarica il file apktool-install-windows- *
  2. Scarica il file apktool- *
  3. Disimballare entrambi nella directory di Windows

Ora copia il APKfile anche in quella directory ed esegui il seguente comando nel prompt dei comandi:

apktool d HelloWorld.apk ./HelloWorld

Ciò creerà una " HelloWorld" directory nella directory corrente. Al suo interno puoi trovare il AndroidManifest.xmlfile in formato decrittografato e puoi anche trovare altri XMLfile all'interno della "HelloWorld/res/layout"directory.

Ecco il HelloWorld.apktuo file APK per Android.

Vedere la schermata seguente per ulteriori informazioni: testo alternativo


15
Questo è carino, ma mi piacerebbe sapere come guardare AndroidManifest.xml senza dover scaricare tutto questo. È crittografato o compresso?
Johnny Rambada,

1
@JohnnyLambada : Sì, puoi aprirlo e visualizzarlo in uno strumento di archiviazione come: WinRar / WinZip / 7Zip, ma non ha senso perché è in forma crittografata.
Vikas Patidar,

9
L'apktool è deprecato. Meglio fare riferimento alla homepage del loro progetto per l'ultima versione.
Deqing,

1
Ottengo: Eccezione nel thread "principale" brut.androlib.AndrolibException: Risorse multiple: at brut.androlib.res.data.ResConfig.addResource (fonte sconosciuta)
WindRider

3
Ora il comando è cambiato per l'ultima versioneapktool d your_destination youraApk.apk
Pranoy Sarkar,

109

Android Studio ora può mostrarlo. Vai a Build> Analyze APK...e seleziona il tuo apk. Quindi puoi vedere il contenuto del file AndroidManifset.


3
Questa funzione è stata aggiunta di recente e vorrei anche suggerire questo a meno che tu non sia appassionato di utilizzare la riga di comando e di avere gli strumenti della piattaforma nel tuo percorso impostati.
anthonymonori,

8
questo dovrebbe essere votato per diventare la migliore risposta, altri metodi sono ora inutilmente complicati.
Sébastien,

3
Esiste anche una versione da riga di comando di questo built-in: stackoverflow.com/a/54874783/89818
caw

46

aapt d xmltree com.package.apk AndroidManifest.xml

scaricherà l' AndroidManifest.xmlAPK specificato. Non è in formato XML, ma puoi ancora leggerlo.

aapt (Android Asset Packaging Tool) è uno strumento integrato fornito con Android SDK.


45

In questa discussione , Dianne Hackborn ci dice che possiamo ottenere informazioni da AndroidManifest usando aapt.

Ho montato questo rapido comando unix per afferrare le informazioni sulla versione:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"

è possibile farlo anche all'interno di un'app Android? inoltre, è possibile ottenere tutto il file manifest e non solo il nome della versione?
sviluppatore Android

36

Google ha appena rilasciato uno strumento open source multipiattaforma per l'ispezione di APK (tra molti altri formati binari Android):

ClassyShark è uno strumento di ispezione binario autonomo per sviluppatori Android. Può navigare in modo affidabile su qualsiasi eseguibile Android e mostrare informazioni importanti come interfacce di classe e membri, conteggi di dex e dipendenze. ClassyShark supporta più formati tra cui librerie (.dex, .aar, .so), eseguibili (.apk, .jar, .class) e tutti gli XML binari Android: AndroidManifest, risorse, layout ecc.

Schermata di ClassyShark


3
Questo è 10000 volte più semplice di Apktool!
Guilherme Campos Hazan,

18

È possibile utilizzare apkanalyzerla versione della riga di comando di APK Analyzer in bundle con Android SDK. Basta eseguire il seguente comando sulla CLI:

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

Devi solo sostituire /path/to/android-sdkcon il percorso corretto per la tua versione di Android SDK e /path/to/app.apkcon il percorso del tuo file APK.


8
Questa dovrebbe essere la risposta accettata in quanto non richiede l'installazione di nulla da fonti non verificate.
c4k,

nota che questo non sembra funzionare su Windows :( stackoverflow.com/a/54593118/997940
Yoav Feuerstein

Ottengo l'errore: eccezione nel thread "main" java.lang.IllegalStateException: la proprietà della directory degli strumenti non è impostata, assicurati di eseguire apkanalyzer, non sapevo come risolverlo
jk2K

Questo è probabilmente il percorso di cui hai bisogno se sei su macOS:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Frederik

15

È possibile utilizzare questo comando: salva su file AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt

2
dè un'abbreviazione di dump, che rende questa risposta identica a questa , che è stata pubblicata più di un anno prima.
Dan Dascalescu,

4
Sì, ma questo codice viene salvato nel file > AndroidManifest.txt.
Ahmad Aghazadeh,

lol, è la stessa risposta, scaricare il file non fa la differenza
Leonardo Sapuy il


7

Esiste uno strumento online che ti consente di caricare un APK. Lo decompila e infine ti consente di scaricare una zip con tutte le fonti, il file XML manifest e così via decompilato, tutto questo senza dover installare alcun programma sul tuo computer: http: / /www.javadecompilers.com/apk

Inoltre, se desideri semplicemente controllare alcuni parametri, puoi farlo tramite la loro interfaccia utente


Ha lavorato su un APK in agosto, non ha funzionato su un altro a novembre.
Dan Dascalescu,

apktools non sembra aver creato una directory per me con l'output e aapt non ha mostrato il risultato in formato XML. Questo sito Web ha funzionato come un fascino.
kregus,

6

Per decodificare il AndroidManifest.xmlfile utilizzando axmldec :

axmldec -o output.xml AndroidManifest.xml

o

axmldec -o output.xml AndroidApp.apk

Funziona e può essere facilmente installato tramite Homebrew:brew tap ytsutano/toolbox brew install axmldec
gmoz22

5

Aapt2, incluso negli strumenti di sviluppo dell'SDK per Android, può farlo - non sono necessari strumenti di terze parti.

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

A partire da build-tools v29 devi aggiungere il comando xmltree:

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

Questo non genera l'XML originale, ma è pulito se ho solo bisogno di guardare un valore lì dentro senza dover estrarre l'APK o scrivere su un file temporaneo.
Raziel,

2

Puoi anche utilizzare la mia app, App Detective per visualizzare il file manifest di qualsiasi app installata sul tuo dispositivo.


0

Questo è un vecchio thread, ma ho pensato di menzionare che il tuo telefono ha root, puoi vederlo direttamente sul tuo telefono usando l'app root explorer. Non è nemmeno necessario estrarlo per vedere.


-1

Il file deve essere decompilato (o deodex non è sicuro di quale). Ma ecco un altro modo per farlo:

-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]\

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.