Web Analytics

ResChiper

⭐ 106 stars Spanish by goldfish07

ResChiper

failed to load artifacts/logo.png

Herramienta de Ofuscación de Recursos AAB

License Android Gradle Plugin BundleTool JDK Version Gradle Version ResChiper Version

Tabla de Contenidos

Introducción

ResChiper es una herramienta diseñada para ofuscar recursos AAB de Android. Te permite proteger tus recursos contra accesos no autorizados y reducir el tamaño del AAB de tu aplicación.

Primeros Pasos

Sigue estos pasos para integrar la Herramienta de Ofuscación de Recursos AAB en tu proyecto Android:

Requisitos

Antes de comenzar a usar ResChiper, asegúrate de que tu aplicación cumple con los siguientes requisitos:

Instalación

#### 1. Agregar el Plugin de Gradle de ResChiper

En el archivo build.gradle a nivel raíz de tu proyecto, agrega el plugin de Gradle de ResChiper en la sección buildscript:

buildscript {
  dependencies {
    classpath "io.github.goldfish07.reschiper:plugin:"
  }
  
  repositories {
    mavenCentral()
    google()
   }
}

#### 2. Aplicar el Plugin

En el archivo build.gradle a nivel de la aplicación, aplica el plugin ResChiper:

apply plugin: "io.github.goldfish07.reschiper"
#### 3. Configurar el Plugin

En tu archivo app/build.gradle, configura el plugin ResChiper especificando los ajustes deseados. Aquí tienes un ejemplo de configuración:

resChiper {
    enableObfuscation = true //by default res obfuscate is enabled
    obfuscationMode = "default" //["dir", "file", "default"]
    obfuscatedBundleName = "reschiper-app.aab" // Obfuscated file name, must end with '.aab'
    //mappingFile = file("path/to/your/mapping.txt").toPath() // Mapping file used for incremental obfuscation
    whiteList = [
                  //Whitelist rule (directory name to exclude)
                  "res/raw", // raw dir will not be obfuscated
                  "res/xml", // xml dir will not be obfuscated

//Whitelist rule (file name to exclude) "res/raw/*", // all files inside raw directory will not be obfuscated "res/raw/success_tick.json", // success_tick.json file will not be obfuscated "res/xml/*", // all files inside xml directory will not be obfuscated

// White list rules (resource name to exclude) ".R.raw.", ".R.xml.",

// for google-services "*.R.string.google_api_key", "*.R.string.google_app_id", "*.R.string.default_web_client_id", "*.R.string.gcm_defaultSenderId", "*.R.string.ga_trackingId", "*.R.string.firebase_database_url", "*.R.string.google_crash_reporting_api_key", "*.R.string.google_storage_bucket", "*.R.integer.google_play_services_version", //firebase "*.R.string.project_id", //firebase crashlytics "*.R.string.com.google.firebase.crashlytics.mapping_file_id", "*.R.bool.com.crashlytics.useFirebaseAppId", "*.R.string.com.crashlytics.useFirebaseAppId", "*.R.string.google_app_id", "*.R.bool.com.crashlytics.CollectDeviceIdentifiers", "*.R.string.com.crashlytics.CollectDeviceIdentifiers", "*.R.bool.com.crashlytics.CollectUserIdentifiers", "*.R.string.com.crashlytics.CollectUserIdentifiers", "*.R.string.com.crashlytics.ApiEndpoint", "*.R.string.com.crashlytics.android.build_id", "*.R.bool.com.crashlytics.RequireBuildId", "*.R.string.com.crashlytics.RequireBuildId", "*.R.bool.com.crashlytics.CollectCustomLogs", "*.R.string.com.crashlytics.CollectCustomLogs", "*.R.bool.com.crashlytics.Trace", "*.R.string.com.crashlytics.Trace", "*.R.string.com.crashlytics.CollectCustomKeys" ] mergeDuplicateResources = true // allow the merge of duplicate resources enableFileFiltering = true enableFilterStrings = true fileFilterList = [ // file filter rules "META-INF/*", // "/armeabi-v7a/", // "/arm64-v8a/", // "/x86/", // "/x86_64/" ] unusedStringFile = "path/to/your/unused_strings.txt" // strings will be filtered in this file localeWhiteList = ["en", "in", "fr"] //keep en,en-xx,in,in-xx,fr,fr-xx and remove others locale. }

Uso

Para ofuscar tus recursos y generar un AAB ofuscado, ejecuta el siguiente comando de Gradle en el directorio raíz del proyecto.:

./gradle clean :app:resChiperDebug --stacktrace
Este comando ejecutará el proceso de ofuscación desde la raíz del proyecto, y el AAB ofuscado se generará en el directorio app/build/outputs/bundle/debug.

Opciones de Configuración

La extensión ResChiper ofrece varias opciones de configuración para la ofuscación de recursos, incluyendo habilitar/deshabilitar la ofuscación, especificar archivos de mapeo, listas blancas de recursos, y más.

obfuscationMode = "file" y para ofuscar tanto directorios como archivos establecer obfuscationMode = "default".
las rutas META-INFO/ y lib/.

Ejemplo

puedes consultar algunos ejemplos de configuración aquí

Lista Blanca

recursos que no son ofuscados durante el proceso de compilación.
puedes encontrar configuraciones de whiteList aquí.

Salida

Después de ejecutar el proceso de ofuscación, puedes esperar los siguientes archivos de salida:

procesos de ofuscación para lograr una ofuscación incremental. Esto es especialmente útil si deseas mantener

consistencia entre diferentes compilaciones.

recurso duplicado que se haya fusionado durante el proceso de ofuscación.

Estos archivos de salida se generarán como resultado de ejecutar la herramienta ResChiper, y puedes encontrarlos en los directorios relevantes dentro de la salida de compilación de tu proyecto.

Agradecimientos

ResChiper está inspirado en los siguientes proyectos y herramientas:

Licencia

Logo de la Licencia Apache v2.0

Copyright (C) 2023 goldfish07 (Ayush Bisht) Este archivo es parte de ResChiper.

ResChiper es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Apache, Versión 2.0 publicada por la Fundación Apache Software, ya sea la versión 2.0 de la Licencia, o (a tu elección) cualquier versión posterior.

Licenciado bajo la Licencia Apache, Versión 2.0 (la "Licencia"); no puedes usar este archivo excepto en cumplimiento con la Licencia. Puedes obtener una copia de la Licencia en

http://www.apache.org/licenses/LICENSE-2.0

A menos que lo requiera la ley aplicable o se acuerde por escrito, el software distribuido bajo la Licencia se distribuye "TAL CUAL", SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. Consulta la Licencia para conocer el idioma específico que rige los permisos y limitaciones bajo la Licencia. --- Tranlated By Open Ai Tx | Last indexed: 2026-06-02 ---