Public preview · Registration and live billing are not open.
Anti-AIClonePILOT

Log date · Mon

ProGuard 7.10: Kotlin 2.4 and Java 27 support, mapping file fix

ProGuard 7.10 added Kotlin 2.4 and Java 27 support and fixed a broken mapping file when method inlining was applied.

What happened on 2026-08-24

On 2026-08-24 at 13:48 UTC, Guardsquare published ProGuard 7.10 (tag v7.10.0) on GitHub. The release notes list three items: support for Kotlin 2.4, support for Java 27, and a fix for a bug that produced a broken mapping file when method inlining was applied (issue #520). It is a compatibility and correctness release with no new protection features. For teams that still use ProGuard rather than R8, or that use it for desktop Java or server-side JVM programs, it means they can keep up with newer language versions. The notes do not describe any change to how obfuscation itself works.

What it means for protecting app logic

The mapping file is the key that turns obfuscated names back into originals. When it is broken, the immediate consequence is that crash stack traces cannot be retraced, and teams are tempted to loosen obfuscation or switch off renaming to regain debuggability, a common way protection quietly regresses. Similarly, when language versions move ahead of shrinker support, teams often add broad keep rules to get past the problem. This update is not a security fix, but it is a reminder that renaming and shrinking only raise reading cost and do not encrypt logic, and that the mapping file is itself a sensitive asset: leaking it cancels the renaming.

Checks you can run

Confirm your ProGuard version supports the project's Kotlin and Java targets, so temporary broad rules added for compatibility do not linger. After upgrading, verify that the mapping file correctly retraces a deliberately triggered test crash, especially with method inlining enabled. Store mapping files in a private artifact store, never in the shipped package, public repositories or public crash-reporting projects. Compare -printusage and -printseeds output before and after the upgrade to confirm the protected scope has not shrunk. Also read the release notes of the shrinker and the Android Gradle Plugin together before each upgrade, since both shape what ships.

Your checklist

  • Confirm ProGuard supports your Kotlin and Java targets
  • Verify mapping files retrace a test crash correctly
  • Diff -printseeds and -printusage output across the upgrade

Primary sources

All sources and reproduction status ↗