396 palabras
2 minutos
Decompilar y compilar aplicaciones móviles con apktool

¿Qué es apktool?#

Apktool es una herramienta para la ingeniería inversa de aplicaciones de Android. Apktool permite descompilar los archivos APK para obtener los recursos y el código, hacer modificaciones y luego recompilarlos de nuevo en un APK.

Procedimiento#

  1. Decompilar la aplicación
  2. Aplicar modificaciones
  3. Construir la aplicación modificada
  4. Alineación mediante zipalign
  5. Firma de la aplicación con apksigner
  6. Instalar la aplicación

¿Cómo instalar?#

Para realizar la instalación solamente debes seguir los siguientes pasos:

Guía paso a paso#

1-3 Decompilar la aplicación, hacer modificaciones y construir la aplicación#

Terminal window
# Decompilar la aplicación
apktool d your_app.apk
# Haces las modificaciones
# Compilar la aplicación modificada
apktool b directory -o patched_app.apk

4 Alineación mediante zipalign#

Zipalign es una herramienta de optimización de archivos de archivo proporcionada por Android SDK

  • Función principal: Asegurar que todos los datos sin comprimir (como las imágenes y los archivos de recursos) dentro del APK estén alineados en límites de 4 bytes relativos al inicio del archivo.
  • Propósito: Esta alineación permite que el sistema operativo Android acceda directamente a los archivos del APK a través del mapeo de memoria (mmap) sin tener que descomprimir los datos primero.
  • Beneficio: Resulta en un menor uso de la RAM de la aplicación, una ejecución más rápida y un menor consumo de batería. Debe ejecutarse antes de la firma.

¿Cómo encontrarlo?#

Debes tener Android Studio instalado

Terminal window
find / -name "zipalign" 2> /dev/null

¿Cómo usarlo?#

Terminal window
/home/elcaza/Android/Sdk/build-tools/36.1.0/zipalign -v 4 patched_app.apk patched_app_aligned.apk
  • Cambia elcaza por tu usuario
  • La ruta es la que salio en la sección de “¿Cómo encontrarlo?“

5 Firma de la aplicación con apksigner#

Apksigner es una herramienta de firma de APK, introducida a partir de la versión 24.0.3 del Android SDK Build Tools. Reemplaza a la herramienta jarsigner para fines de firma de APK.

Requieres un keystore. Puedes usar uno que ya tengas o generar uno simple para pruebas con keytool.

Creación de certificado con keytool#

Terminal window
keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000
  • Se establece storepass con el valor android
  • Se crea el archivo debug.keystore

Firma de la aplicación#

¿Cómo encontrarlo?#

Debes tener Android Studio instalado

Terminal window
find / -name "apksigner" 2> /dev/null

¿Cómo usarlo?#

Terminal window
/home/elcaza/Android/Sdk/build-tools/36.1.0/apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey patched_app_aligned.apk
  • La contraseña establecida en el paso anterior fue android

6 Instalar la aplicación#

Terminal window
adb install patched_app_aligned.apk

Links#

Documentación oficial#

Nota final

¡Gracias por terminar de leer este artículo! uwur

— El Capitán

¿Tienes alguna duda o te gustaría comentar algo sobre este artículo?

Puedes encontrarme en:

Decompilar y compilar aplicaciones móviles con apktool
https://elcaza.github.io/posts/hacking/apktool/
Autor
El Capitán
Publicado el
2025-11-13
Licencia
CC BY-NC-SA 4.0