gitwtfhub

wtf is proguard-lint?

rudradave1/proguard-lint — explained in plain English

Analysis updated 2026-05-18

6KotlinAudience · developerComplexity · 2/5LicenseSetup · easy

TL;DR

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

Generate a JSON report of obfuscation violations for auditing.

REASON 4

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

What's in the stack?

KotlinGradleProGuardR8

How it stacks up

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 spin it up?

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.

Wtf does this do

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.

Yoink these 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

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

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.