Un APK, o paquete de aplicaciones Android, es el formato estándar para empaquetar y distribuir aplicaciones móviles. Un APK es un archivo comprimido que contiene todos los activos y el código necesarios para ejecutar una aplicación.
También se conoce como paquete de aplicaciones o contenedor de aplicaciones, las diferentes versiones de una aplicación (por ejemplo, beta, alfa) suelen indicarse con un prefijo o sufijo al final del nombre del archivo (por ejemplo, AppName_beta.apk).
Un APK es esencialmente un archivo zip que contiene todo lo necesario para instalar y ejecutar la aplicación, incluidas las bibliotecas nativas, recursos como diseños e imágenes, e información sobre la licencia.
Este artículo explica lo que necesitas saber sobre los archivos APK y cómo funcionan con Google Play.
Instalar y almacenar APKs
Antes de poder encontrar y analizar un APK, primero hay que instalar la aplicación, la forma más fácil de hacerlo es instalando un archivo APK en un dispositivo. Hay varias maneras de instalar un APK en un dispositivo Android:
- Usando el flujo de instalación integrado de una aplicación: el desarrollador de la aplicación debe haber incorporado un flujo de instalación en su aplicación, esta es la forma más común y sencilla de instalar una aplicación, especialmente si la aplicación es gratuita y de código abierto.
- Acceder al sistema de archivos del dispositivo: cada dispositivo con Android tiene un sistema de archivos donde las aplicaciones pueden almacenar y recuperar archivos. Los APKs se pueden encontrar en la carpeta "Download" o "Internal storage" del sistema.
- Uso de ADB: ADB es una herramienta de línea de comandos que puede utilizarse para interactuar con un dispositivo Android, incluyendo la instalación y depuración de aplicaciones en el dispositivo.
¿Cómo encontrar un APK para su aplicación Android?
Si está tratando de encontrar un APK para una aplicación que desea analizar, tendrá que encontrar el código fuente de la aplicación.
- Aplicaciones de código abierto: si la aplicación es de código abierto, aparecerá en el sitio web del desarrollador de la aplicación. Muchos proyectos de código abierto tienen su código fuente alojado en GitHub.
- Aplicaciones de código cerrado: si la aplicación es de código cerrado, es posible que tengas que ponerte en contacto con el desarrollador de la aplicación o probar en algunas tiendas de aplicaciones (por ejemplo, Google Play, Amazon Appstore, etc.). Una vez que hayas encontrado el APK de la aplicación, puedes empezar a analizarlo.
- Asegúrate de que el APK que descargas es para el mismo sistema operativo que tu máquina de desarrollo. Por ejemplo, un APK para una aplicación Android en un Mac no puede utilizarse para analizar una aplicación Android que se ejecute en Windows.
¿Qué contiene un APK?
Cuando se instala un APK, en realidad la aplicación sólo se comprime y se instala en el dispositivo, durante el proceso de instalación, el APK se descomprime y se instala en su dispositivo. El proceso de desempaquetado también incluye la descompilación del código y los activos del APK.
Esto significa que puedes ver y analizar el código en el archivo classes.dex del APK, así como ver todos los activos en el directorio "assets" del APK. También puedes utilizar esta información para generar código de ingeniería inversa tomando el APK y generando el archivo jar equivalente (con la extensión .jar).
El archivo classes.dex del APK contiene el código Java compilado que compone tu aplicación, este archivo se genera a partir del código Android que escribes y es lo que tu dispositivo realmente ejecuta cuando ejecuta una aplicación.
El directorio assets/ de la AP-K contiene todas las imágenes y otros tipos de archivos que componen tu aplicación. Puedes encontrar estos activos en su forma original descomprimiendo el APK y navegando hasta el directorio assets/.
¿Cómo determinar si un APK es falso o legítimo?
Al analizar un APK, hay algunas cosas que puedes buscar para determinar si el APK es legítimo o falso.
- Si el código y los activos del APK son visibles, es una bandera roja, es imposible descompilar un APK sin tener el código fuente, lo que significa que el APK es falso o que el código fuente está almacenado en otro lugar.
- Si el APK es un archivo .zip, es probable que sea legítimo, los APK son archivos zip, así que si el APK es un archivo .jar o .apk, es probable que sea falso.
- Si el APK es un archivo .jar, es probable que se trate de una reimplementación del código Java de la aplicación. Esto significa que el código dentro del APK fue probablemente escrito a mano y no es el código de la aplicación original, esto podría ser un indicador potencial de que el APK es falso.
Google Play protege y verifica las aplicaciones
Mientras que otras tiendas de aplicaciones no verifican las aplicaciones, Google Play va más allá para garantizar que las aplicaciones de su plataforma son legítimas.
Google Play escanea todos los APKs y verifica que contengan información válida de licencia y firmas válidas, lo que significa que Google Play determinará si un APK es legítimo o si ha sido manipulado.
El proceso de verificación de Google también comprueba si el APK es realmente una reimplementación de otra aplicación.
Si un APK no supera alguna de estas comprobaciones, no será aceptado en Google Play Store. Esto significa que puedes estar seguro de que el APK que descargas de Google Play Store es legítimo.
El APK es la forma más básica de distribuir una aplicación, cualquiera puede descompilar un APK y ver el código, los activos y la información de la licencia.
Es importante verificar que el APK que se instala es legítimo, comprobando si proviene de una fuente de confianza.
La forma más fácil de asegurarse de que un APK es legítimo es instalarlo desde Google Play Store, recuerda que, si un APK no supera el proceso de verificación de Google Play, no será aceptado en la plataforma.