Saltar al contenido

Ofuscación en Android Studio

Solución:

  • Ofuscación básica

Para ofuscar el código en Android Studio, simplemente vaya a su archivo build.gradle en su proyecto de Android Studio:

ingrese la descripción de la imagen aquí

Cambiar la propiedad minifyEnabled de falso a verdadero

ingrese la descripción de la imagen aquí

Esta es una ofuscación básica.

Después de generar el apk, puede ver el resultado de la ofuscación al descompilar el apk con cualquier software. Esta página podría ayudarlo a:

http://www.decompileandroid.com/

En el resultado de la ofuscación, verá clases con el nombre: a, b, c ….

ingrese la descripción de la imagen aquí

Y las variables y métodos de ofuscación también tendrán nombres como aa, c, ac …

ingrese la descripción de la imagen aquí

  • Ofuscación normal:

Para ofuscar el código en una forma más compleja, puede ir a la aplicación del directorio raíz y crear un archivo .pro. Por ejemplo, en la siguiente imagen he creado el archivo: proguard-rules-new.pro. En el mismo directorio debería ver un archivo llamado proguard-rules.pro

ingrese la descripción de la imagen aquí

Ahora agregue el archivo que ha creado al archivo build.gradle

ingrese la descripción de la imagen aquí

Y edite el archivo .pro que ha creado con sus propias reglas proguard personalizadas

ingrese la descripción de la imagen aquí

Primero habilita minifyEnabled en su archivo build.gradle, como

minifyEnabled true

Después de esto, agregue las siguientes líneas en el archivo progurad-rules.txt

-keep class yourpackage.** { *; }
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

Para comprobar que funciona bien, vaya a:

http://www.javadecompilers.com/apktool sitio web para que pueda verificar después de la descompilación.

Funcionará y tus clases se ocultarán por completo.

Actualizar: R8 está habilitado de forma predeterminada en la versión 3.4.0 de Android Studio y superior

En Android Studio 3.4+, R8 está habilitado de forma predeterminada, por lo que no es necesario agregar propiedades adicionales, aunque puede optar por optimizaciones profundas agregando fullMode propiedad en gradle.properties como:

android.enableR8.fullMode=true 

Puede deshabilitar R8 y habilitar proguard agregando las siguientes propiedades en gradle.properties como:

android.enableR8 = false
useProguard = true

Android septiembre de 2018 lanza una nueva herramienta R8 herramienta de encogimiento y ofuscación.

R8 – R8 es una herramienta de reducción y minimización de código de Java que convierte el código de bytes de Java en un código dex optimizado

Para la versión AS inferior a 3.4.0.

  1. Abierto gradle.properties
  2. Agregar android.enableR8 = true

como

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit

android.enableR8 = true

Requerimientos mínimos:

  • Android studio 3.2 versión de septiembre de 2018 o superior
  • Java 8

Herramienta R8

R8 es compatible con Proguard:

Tenga en cuenta que R8 está diseñado para funcionar con sus reglas ProGuard existentes, por lo que es probable que no necesite realizar ninguna acción para beneficiarse de R8. Sin embargo, debido a que es una tecnología diferente a ProGuard que está diseñada específicamente para proyectos de Android, la reducción y la optimización pueden resultar en la eliminación de un código que ProGuard puede no tener. Por lo tanto, en esta situación poco probable, es posible que deba agregar reglas adicionales para mantener ese código en la salida de su compilación.

Para deshabilitar R8 en AS 3.4.0 y superior:

# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false

Nota: Para un tipo de compilación determinado, if you set useProguard to false en el archivo build.gradle del módulo de tu aplicación, el Android Gradle plugin uses R8 para reducir el código de su aplicación para ese tipo de compilación, independientemente de whether you disable R8 in your project's gradle.properties file.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *