explaingit

rudradave1/proguard-lint

Analysis updated 2026-05-18

6KotlinAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A fast Gradle plugin that checks Android release builds for sensitive code packages that were accidentally shipped without obfuscation.

Mindmap

mindmap
  root((ProGuardLint))
    What it does
      Audits obfuscation
      Flags danger zones
      Fails build on violation
    Tech stack
      Kotlin
      Gradle plugin
      ProGuard and R8
    Use cases
      Catch unobfuscated payment code
      Enforce security in CI
      Generate audit reports
    Audience
      Android developers
      Security engineers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Fail a release build automatically if payment or auth code was not obfuscated.

USE CASE 2

Add an obfuscation check to a GitHub Actions pipeline with pull request summaries.

USE CASE 3

Generate a JSON report of obfuscation violations for auditing.

USE CASE 4

Verify obfuscation quality in under a second without decompiling the APK.

What is it built with?

KotlinGradleProGuardR8

How does it compare?

rudradave1/proguard-lintdanmoreng/qwen3-tts-androidgaearon/reanimated-repro-weird
Stars666
LanguageKotlinKotlinKotlin
Last pushed2024-11-08
MaintenanceStale
Setup difficultyeasyhardmoderate
Complexity2/54/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires AGP 8.0+, Gradle 8.0+, and Kotlin 1.9+.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

ProGuardLint is a Gradle plugin for Android developers that checks whether sensitive parts of an app were properly obfuscated before release, meaning their code was scrambled to make it harder to reverse engineer. It focuses on a common security mistake: certain packages, like payment or authentication code, ending up unobfuscated by accident and shipping to users in a readable form. Most tools that check obfuscation quality work by decompiling the finished app file, which can take several minutes and needs extra tooling. ProGuardLint takes a different approach. Android's own build tools, ProGuard and R8, already produce two files during a release build called mapping.txt and seeds.txt that record what got obfuscated and what was deliberately kept unobfuscated. ProGuardLint simply reads those files, which lets it run in under a quarter of a second with no decompiler and no extra setup. Developers configure a list of package names considered sensitive, called danger zones, and the plugin checks whether any class inside those packages was kept unobfuscated by the build's keep rules. If it finds a violation, it can fail the build automatically and produce a readable report, which is useful for catching the mistake before an app reaches the app store rather than after. The plugin runs as a normal Gradle task alongside a release build and also works inside GitHub Actions, where it can post a summary directly on a pull request. It supports recent versions of the Android Gradle Plugin, Gradle itself, and Kotlin. The project is released under the MIT license, so it can be freely used and modified, including in commercial projects.

Copy-paste prompts

Prompt 1
Explain how ProGuardLint checks obfuscation without decompiling the APK.
Prompt 2
Walk me through adding ProGuardLint to my Android project's build.gradle.kts.
Prompt 3
Show me how to configure danger zones so ProGuardLint flags my payment package.
Prompt 4
How do I wire ProGuardLint into a GitHub Actions workflow with PR summaries?
Prompt 5
What do mapping.txt and seeds.txt contain, and how does ProGuardLint use them?

Frequently asked questions

What is proguard-lint?

A fast Gradle plugin that checks Android release builds for sensitive code packages that were accidentally shipped without obfuscation.

What language is proguard-lint written in?

Mainly Kotlin. The stack also includes Kotlin, Gradle, ProGuard.

What license does proguard-lint use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is proguard-lint to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is proguard-lint for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.