# We have moved -dontobfuscate and -dontoptimize to the makefiles. # dex does not like code run through proguard optimize and preverify steps. # -dontoptimize -dontpreverify # Don't obfuscate. We only need dead code striping. # -dontobfuscate # Add this flag in your package's own configuration if it's needed. #-flattenpackagehierarchy # Keep classes and members with the platform-defined @VisibleForTesting annotation. -keep @com.android.internal.annotations.VisibleForTesting class * -keepclassmembers class * { @com.android.internal.annotations.VisibleForTesting *; } # Keep classes and members with platform @TestApi annotations, similar to # @VisibleForTesting. -keep @android.annotation.TestApi class * -keepclassmembers class * { @android.annotation.TestApi *; } # Keep classes and members with non-platform @VisibleForTesting annotations, but # only within platform-defined packages. This avoids keeping external, library-specific # test code that isn't actually needed for platform testing. # TODO(b/239961360): Migrate away from androidx.annotation.VisibleForTesting # and com.google.common.annotations.VisibleForTesting use in platform code. -keep @**.VisibleForTesting class android.**,com.android.**,com.google.android.** -keepclassmembers class android.**,com.android.**,com.google.android.** { @**.VisibleForTesting *; } # Keep rule for members that are needed solely to keep alive downstream weak # references, and could otherwise be removed after tree shaking optimizations. -keepclassmembers,allowaccessmodification,allowobfuscation,allowshrinking class * { @com.android.internal.annotations.KeepForWeakReference ; } # Understand the common @Keep annotation from various Android packages: # * android.support.annotation # * androidx.annotation # * com.android.internal.annotations -keep class **android**.annotation*.Keep -keep @**android**.annotation*.Keep class * { *; } -keepclasseswithmembers class * { @**android**.annotation*.Keep ; } -keepclasseswithmembers class * { @**android**.annotation*.Keep ; } -keepclasseswithmembers class * { @**android**.annotation*.Keep (...); } # Keep Dalvik optimization annotations. These annotations are special in that # 1) we want them preserved for visibility with ART, but 2) they don't have # RUNTIME retention. These minimal keep rules ensure they're not stripped by R8. # TODO(b/215417388): Export this rule from the owning library, core-libart, # via export_proguard_flags_files. -keepclassmembers,allowshrinking,allowoptimization,allowobfuscation,allowaccessmodification class * { @dalvik.annotation.optimization.** *; } -include proguard_basic_keeps.flags -include proguard/kotlin.flags