Last active
March 13, 2023 07:27
-
-
Save Miha-x64/b024b54f0cc78eea45ad3f3ce08378a0 to your computer and use it in GitHub Desktop.
Healthy person's ProGuard rules for Android and Kotlin.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# preverify is useful only for J2ME | |
# R8 doesn't preverify by default | |
#-dontpreverify | |
-optimizationpasses 5 | |
# this seems to be enough | |
# remove indirection | |
-allowaccessmodification | |
# move everything into the root package | |
-repackageclasses "" | |
# remove source file names | |
-renamesourcefileattribute "" | |
# keep Parcelable Creators due to crappy interface design | |
-keepclassmembers class * implements android.os.Parcelable { | |
public static final ** CREATOR; | |
} | |
# suppress warnings | |
-dontwarn android.support.** | |
# remove runtime assertions, they are enforced in compile-time by Kotlin compiler | |
-assumenosideeffects class kotlin.jvm.internal.Intrinsics { | |
public static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String); | |
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String); | |
public static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String); | |
public static void checkNotNull(java.lang.Object); | |
public static void checkNotNull(java.lang.Object, java.lang.String); | |
public static void checkNotNullExpressionValue(java.lang.Object, java.lang.String); | |
public static void checkNotNullParameter(java.lang.Object, java.lang.String); | |
public static void checkParameterIsNotNull(java.lang.Object, java.lang.String); | |
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String); | |
public static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, java.lang.String); | |
} | |
# remove unused string builders | |
-assumenoexternalsideeffects class java.lang.StringBuilder { | |
public java.lang.StringBuilder(); | |
public java.lang.StringBuilder(int); | |
public java.lang.StringBuilder(java.lang.String); | |
public java.lang.StringBuilder append(java.lang.Object); | |
public java.lang.StringBuilder append(java.lang.String); | |
public java.lang.StringBuilder append(java.lang.StringBuffer); | |
public java.lang.StringBuilder append(char[]); | |
public java.lang.StringBuilder append(char[], int, int); | |
public java.lang.StringBuilder append(boolean); | |
public java.lang.StringBuilder append(char); | |
public java.lang.StringBuilder append(int); | |
public java.lang.StringBuilder append(long); | |
public java.lang.StringBuilder append(float); | |
public java.lang.StringBuilder append(double); | |
public java.lang.String toString(); | |
} | |
-assumenoexternalreturnvalues public final class java.lang.StringBuilder { | |
public java.lang.StringBuilder append(java.lang.Object); | |
public java.lang.StringBuilder append(java.lang.String); | |
public java.lang.StringBuilder append(java.lang.StringBuffer); | |
public java.lang.StringBuilder append(char[]); | |
public java.lang.StringBuilder append(char[], int, int); | |
public java.lang.StringBuilder append(boolean); | |
public java.lang.StringBuilder append(char); | |
public java.lang.StringBuilder append(int); | |
public java.lang.StringBuilder append(long); | |
public java.lang.StringBuilder append(float); | |
public java.lang.StringBuilder append(double); | |
} | |
-assumevalues class android.os.Build$VERSION { | |
int SDK_INT return 21..2147483647; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Done.