mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-14 18:26:11 -04:00
Google Play scores the obfuscation share of uploaded bundles and flags
listings below its threshold ("App optimisation is below our threshold",
fix by Feb 2027). Minify and shrink were already on; the shared
-dontobfuscate was the only thing keeping the score at 0%.
-dontobfuscate moves to a FOSS-only rule file; the Play rule file keeps
SourceFile/LineNumberTable for retracing and pins names only where they
reach users or logs: AapSetting/AapCommand subclasses (session logs),
ViewModel1 subclasses (log tag), Throwables (error dialog label). All
reflective targets (BuildConfig, ArtMirror, NeverCall, InvokeStub,
AncModeActionCallback) already carry @Keep or explicit keeps and are
identity-mapped in the gplayRelease mapping. The release workflow
archives the mapping next to the Play upload.
22 lines
1.1 KiB
Prolog
22 lines
1.1 KiB
Prolog
# Google Play scores the obfuscation share of every uploaded bundle and restricts listings that
|
|
# stay below its threshold, so the Play flavor obfuscates. The FOSS flavor does not
|
|
# (proguard-rules-foss.pro).
|
|
|
|
# Keep stack traces retraceable with the mapping file that the bundle embeds.
|
|
-keepattributes SourceFile,LineNumberTable
|
|
-renamesourcefileattribute SourceFile
|
|
|
|
# AAP session logs identify settings and commands by their simple class name
|
|
# (AapSessionEngine, AapAncController, AapOutboundController). Names only; unused classes are
|
|
# still removed.
|
|
-keepnames class eu.darken.capod.pods.core.apple.aap.protocol.AapSetting
|
|
-keepnames class * extends eu.darken.capod.pods.core.apple.aap.protocol.AapSetting
|
|
-keepnames class eu.darken.capod.pods.core.apple.aap.protocol.AapCommand
|
|
-keepnames class * extends eu.darken.capod.pods.core.apple.aap.protocol.AapCommand
|
|
|
|
# ViewModel1 derives its log tag from the subclass name (VM:OverviewViewModel).
|
|
-keepnames class * extends eu.darken.capod.common.uix.ViewModel1
|
|
|
|
# Error dialogs and log summaries show exceptions by class name (LocalizedError, asLogSummary).
|
|
-keepnames class * extends java.lang.Throwable
|