¿Cómo ver AndroidManifest.xml desde el archivo APK?

309

¿Es posible ver el Androidmanifest.xmlarchivo?

Acabo de cambiar la extensión del apkarchivo a zip. Este ziparchivo contiene el Androidmanifest.xmlarchivo. Pero no puedo ver el contenido de Androidmanifest.xml. Está totalmente encriptado.

¿Cómo puedo ver el Androidmanifest.xmlarchivo?

Bharat
fuente
Tengo un archivo APK. Necesito ver el archivo Androidmanifest.xml. porque usé un marco. Ese archivo APK también usaba el mismo marco. Entonces necesito ver cómo configurar el archivo Androidmanifest desde ese archivo APK.
Bharat
@ Jason Rogers: AFAIK puede ver esa información. Mira esto
Vikas Patidar

Respuestas:

220

Sí, puede ver los XMLarchivos de un Android APKarchivo. Hay una herramienta para esto:android-apktool

Es una herramienta para la ingeniería inversa de aplicaciones de Android binarias cerradas de terceros

Cómo hacer esto en su sistema Windows:

  1. Descargar el archivo apktool-install-windows- *
  2. Descargar archivo apktool- *
  3. Descomprima ambos en su directorio de Windows

Ahora copie el APKarchivo también en ese directorio y ejecute el siguiente comando en su símbolo del sistema:

apktool d HelloWorld.apk ./HelloWorld

Esto creará un directorio " HelloWorld" en su directorio actual. Dentro de él puede encontrar el AndroidManifest.xmlarchivo en formato descifrado, y también puede encontrar otros XMLarchivos dentro del "HelloWorld/res/layout"directorio.

Aquí HelloWorld.apkestá su archivo APK de Android.

Consulte la siguiente captura de pantalla para obtener más información: texto alternativo

Vikas Patidar
fuente
15
Esto es bueno, pero me gustaría saber cómo mirar el AndroidManifest.xml sin tener que descargar todo esto. ¿Está encriptado o comprimido?
JohnnyLambada
1
@JohnnyLambada : Sí, puede abrirlo y verlo en una herramienta de archivo como: WinRar / WinZip / 7Zip, pero no tiene sentido porque está en forma cifrada.
Vikas Patidar
99
El apktool está en desuso. Mejor consulte la página de inicio de su proyecto para obtener la última versión.
Deqing
1
Obtengo: Excepción en el hilo "main" brut.androlib.AndrolibException: Múltiples recursos: en brut.androlib.res.data.ResConfig.addResource (Fuente desconocida)
WindRider
3
Ahora el comando ha cambiado para la última versiónapktool d your_destination youraApk.apk
Pranoy Sarkar
109

Android Studio ahora puede mostrar esto. Vaya a Build> Analyze APK...y seleccione su apk. Luego puede ver el contenido del archivo AndroidManifset.

Jonas Jongejan
fuente
3
Esta característica se ha agregado recientemente y también me gustaría sugerir esto a menos que esté interesado en usar la línea de comando y tenga configuradas las herramientas de plataforma en su ruta.
anthonymonori
8
Esto debería ser votado para convertirse en la mejor respuesta, otros métodos ahora son innecesariamente complicados.
Sébastien
3
También hay una versión de línea de comandos de este incorporado: stackoverflow.com/a/54874783/89818
caw
46

aapt d xmltree com.package.apk AndroidManifest.xml

volcará AndroidManifest.xmldesde el APK especificado. No está en formato XML, pero aún puede leerlo.

aapt (Android Asset Packaging Tool) es una herramienta integrada que viene con el SDK de Android.

Geobio Boo
fuente
45

En este hilo , Dianne Hackborn nos dice que podemos obtener información del Manifiesto de Android usando aapt.

Agité este comando rápido de Unix para obtener la información de la versión:

aapt dump badging my.apk | sed -n "s/.*versionName='\([^']*\).*/\1/p"
JohnnyLambada
fuente
¿Es posible hacerlo incluso dentro de una aplicación de Android? Además, ¿es posible obtener todo el archivo de manifiesto y no solo el nombre de la versión?
Desarrollador de Android
36

Google acaba de lanzar una herramienta de código abierto multiplataforma para inspeccionar APK (entre muchos otros formatos binarios de Android):

ClassyShark es una herramienta de inspección binaria independiente para desarrolladores de Android. Puede navegar de manera confiable cualquier ejecutable de Android y mostrar información importante como interfaces de clase y miembros, conteos de dex y dependencias. ClassyShark admite múltiples formatos, incluidas bibliotecas (.dex, .aar, .so), ejecutables (.apk, .jar, .class) y todos los XML binarios de Android: AndroidManifest, recursos, diseños, etc.

Captura de pantalla de ClassyShark

Dan Dascalescu
fuente
3
¡Esto es 10000 veces más fácil que Apktool!
Guilherme Campos Hazan
18

Puede usar apkanalyzerla versión de línea de comandos de APK Analyzer incluida con el SDK de Android. Simplemente ejecute el siguiente comando en la CLI:

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

Solo tiene que reemplazar /path/to/android-sdkcon la ruta correcta a su versión del SDK de Android y /path/to/app.apkcon la ruta a su archivo APK.

graznar
fuente
8
Esta debería ser la respuesta aceptada, ya que no requiere instalar nada de fuentes no verificadas.
c4k
tenga en cuenta que esto no parece funcionar en Windows :( stackoverflow.com/a/54593118/997940
Yoav Feuerstein
Recibo un error: Excepción en el subproceso "main" java.lang.IllegalStateException: la propiedad del directorio de herramientas no está establecida, asegúrese de que está ejecutando apkanalyzer, no sabía cómo resolverlo
jk2K
Esta es probablemente la ruta que necesita si está en macOS:~/Library/Android/sdk/tools/bin/apkanalyzer manifest print <apk>
Frederik
15

Puede usar este comando: guardar en archivo AndroidManifest.txt

aapt dump xmltree gmail.apk AndroidManifest.xml > AndroidManifest.txt
Ahmad Aghazadeh
fuente
2
des una abreviatura de dump, lo que hace que esta respuesta sea idéntica a esta , que se publicó hace más de un año.
Dan Dascalescu
44
Sí, pero este código se guarda en el archivo > AndroidManifest.txt.
Ahmad Aghazadeh
jajaja, esa es la misma respuesta, tirar el archivo no está haciendo la diferencia
Leonardo Sapuy
7

Existe una herramienta en línea que le permite cargar un APK. Lo descompila y finalmente le permite descargar un archivo zip con todas las fuentes, archivo XML manifiesto, etc. descompilado, todo eso sin tener que instalar ningún programa en su computadora: http: / /www.javadecompilers.com/apk

Además, si desea verificar algunos parámetros, puede hacerlo por su interfaz de usuario

usuario3289695
fuente
Trabajó en un APK en agosto, no funcionó en otro en noviembre.
Dan Dascalescu
apktools no parecía crear un directorio para mí con la salida, y aapt no mostró el resultado en formato XML. Este sitio web funcionó a las mil maravillas.
kregus
6

Para decodificar el AndroidManifest.xmlarchivo usando axmldec :

axmldec -o output.xml AndroidManifest.xml

o

axmldec -o output.xml AndroidApp.apk
Amir Rezazadeh
fuente
Esto funciona y se puede instalar fácilmente a través de Homebrew:brew tap ytsutano/toolbox brew install axmldec
gmoz22
5

Aapt2, incluido en las herramientas de compilación del SDK de Android, puede hacer esto: no se necesitan herramientas de terceros.

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

Comenzando con build-tools v29, debe agregar el comando xmltree:

$(ANDROID_SDK)/build-tools/29.0.3/aapt2 d xmltree --file AndroidManifest.xml app-foo-release.apk
BitByteDog
fuente
Esto no genera el XML original, pero es bueno si solo necesito mirar un valor allí sin tener que extraer el APK o escribir en un archivo temporal.
Raziel el
2

También puede usar mi aplicación, Detective de aplicaciones, para ver el archivo de manifiesto de cualquier aplicación que haya instalado en su dispositivo.

zmarties
fuente
0

Este es un hilo antiguo, pero pensé que lo mencionaría, de que su teléfono tiene root, puede verlo directamente en su teléfono usando la aplicación de exploración de root. Ni siquiera tiene que extraerlo para ver.

richbai90
fuente
-1

El archivo debe descompilarse (o desodexar no está seguro de cuál). Pero aquí hay otra forma de hacerlo:

-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
fuente