Web Analytics

ResChiper

⭐ 106 stars Korean by goldfish07

ResChiper

failed to load artifacts/logo.png

AAB 리소스 난독화 도구

License Android Gradle Plugin BundleTool JDK Version Gradle Version ResChiper Version

목차

소개

ResChiper는 Android AAB 리소스 난독화를 위해 설계된 도구입니다. 무단 접근으로부터 리소스를 보호하고 앱의 AAB 크기를 줄일 수 있습니다.

시작하기

다음 단계를 따라 AAB 리소스 난독화 도구를 Android 프로젝트에 통합하세요:

요구사항

ResChiper를 사용하기 전에 앱이 다음 요구사항을 충족하는지 확인하세요:

설치

#### 1. ResChiper Gradle 플러그인 추가

프로젝트의 루트 레벨 build.gradle 파일의 buildscript 섹션에 ResChiper Gradle 플러그인을 추가하세요:

buildscript {
  dependencies {
    classpath "io.github.goldfish07.reschiper:plugin:"
  }
  
  repositories {
    mavenCentral()
    google()
   }
}
#### 2. 플러그인 적용

앱 수준의 build.gradle 파일에서 ResChiper 플러그인을 적용하세요:

apply plugin: "io.github.goldfish07.reschiper"

#### 3. 플러그인 구성

app/build.gradle 파일에서 원하는 설정을 지정하여 ResChiper 플러그인을 구성합니다. 다음은 예시 구성입니다:

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. }

사용법

리소스를 난독화하고 난독화된 AAB를 생성하려면, 프로젝트 루트 디렉터리에서 다음 Gradle 명령어를 실행하세요.:

./gradle clean :app:resChiperDebug --stacktrace
이 명령어는 프로젝트 루트에서 난독화 과정을 실행하며, 난독화된 AAB 파일은 app/build/outputs/bundle/debug 디렉토리에 생성됩니다.

구성 옵션

ResChiper 확장 기능은 리소스 난독화를 위한 다양한 구성 옵션을 제공하며, 난독화 활성화/비활성화, 매핑 파일 지정, 화이트리스트 리소스 설정 등 여러 기능을 포함합니다.

obfuscationMode = "file", 디렉토리와 파일 모두 난독화하려면 obfuscationMode = "default"로 설정.

예시

일부 구성 예시는 여기에서 확인할 수 있습니다.

화이트리스트

빌드 과정에서 난독화되지 않는 리소스입니다.
화이트리스트 설정은 여기에서 확인할 수 있습니다.

출력

난독화 과정을 실행한 후 다음과 같은 출력 파일을 기대할 수 있습니다:

이는 특히 유지 관리 시 유용합니다.

일관성을 유지합니다.

이 출력 파일들은 ResChiper 도구를 실행한 결과로 생성되며, 프로젝트의 빌드 출력 내 관련 디렉토리에서 찾을 수 있습니다.

감사의 글

ResChiper는 다음 프로젝트 및 도구에서 영감을 받았습니다:

라이선스

Apache License v2.0 logo

Copyright (C) 2023 goldfish07 (Ayush Bisht) 이 파일은 ResChiper의 일부입니다.

ResChiper는 자유 소프트웨어입니다: Apache 소프트웨어 재단에서 발표한 Apache License, 버전 2.0의 조건에 따라 재배포 및/또는 수정할 수 있습니다. 라이선스 버전 2.0 또는 그 이후 버전을 선택할 수 있습니다.

Apache License, 버전 2.0("라이선스")에 따라 라이선스가 부여됩니다. 이 파일을 라이선스에 따라 사용해야 합니다. 라이선스 사본은 다음에서 얻을 수 있습니다.

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

해당 법률에 의해 요구되거나 서면으로 동의하지 않는 한, 라이선스 하에 배포되는 소프트웨어는 "있는 그대로" 제공되며, 명시적이거나 묵시적인 보증이나 조건 없이 배포됩니다. 라이선스에 따른 권리 및 제한 사항을 확인하십시오.

--- Tranlated By Open Ai Tx | Last indexed: 2026-06-02 ---