From b5d66bf03946f33e1b4119a4c8124e004e62c281 Mon Sep 17 00:00:00 2001 From: Sergey Chuprin Date: Sun, 20 Jan 2019 16:32:17 +0300 Subject: [PATCH] Add README.md --- LICENSE | 21 +++++++++++++++ README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..712bb66 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 CleverPumpkin Ltd. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..686cd47 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +Gradle Plugin that generates randomized dictionaries for proguard + +**Tested on latest (3.3) Android Gradle Plugin.** + +# How to add +In your root project's `build.gradle` +``` +buildscript { + repositories { + gradlePluginPortal() + + dependencies { + // TODO: Set valid plugin id. + classpath "gradle.plugin.app-badge:plugin:1.0.0" + } +} +``` +# Simple configuration +In your app module's `build.gradle` + +For Groovy: +``` +apply plugin: "ru.cleverpumpkin.proguard-dictionaries-generator" + +proguardDictionaries { + dictionaryNames = [ + "class-dictionary", + "package-dictionary", + "obfuscation-dictionary" + ] +} +``` +For Kotlin DSL: +``` +plugins { + id("ru.cleverpumpkin.proguard-dictionaries-generator") +} +proguardDictionaries { + dictionaryNames = dictionaryNames = listOf( + "class-dictionary", + "package-dictionary", + "obfuscation-dictionary" + ) +} +``` +This simple setup will generate file `class-dictionary.txt` +in `build` folder of module on which plugin applied. +This file generated on each build +(so you'll get different dictionary on each build) + +### Advanced configuration +``` +proguardDictionaries { + dictionaryNames = ["any", "files, "you", "want"] + minLineLength 10 // Default value: 5 + maxLineLength 30 // Default value: 20 + linesCountInDictionary 100 // Default value: 1000 +} +``` + +### How to use plugin output result +In your `proguard-rules.pro` file +``` +-obfuscationdictionary build/obfuscation-dictionary.txt +-classobfuscationdictionary build/class-dictionary.txt +-packageobfuscationdictionary build/package-dictionary.txt +``` + +### Additional info +Plugin runs automatically when android plugin executes proguard task, +so you don't need anything special to get it work. + +White space, punctuation characters, duplicate words, +and comments after a # sign are ignored in dictionaries by Proguard. +So generated file could contains any symbols except above. + +https://www.guardsquare.com/en/products/proguard/manual/usage#obfuscationoptions + +# Developed by +Sergey Chuprin - \ No newline at end of file