proguard-rules.pro 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. -dontobfuscate
  2. # Keep extension's common dependencies
  3. -keep,allowoptimization class eu.kanade.tachiyomi.** { public protected *; }
  4. -keep,allowoptimization class androidx.preference.** { *; }
  5. -keep,allowoptimization class kotlin.** { public protected *; }
  6. -keep,allowoptimization class kotlinx.coroutines.** { public protected *; }
  7. -keep,allowoptimization class okhttp3.** { public protected *; }
  8. -keep,allowoptimization class okio.** { public protected *; }
  9. -keep,allowoptimization class rx.** { public protected *; }
  10. -keep,allowoptimization class org.jsoup.** { public protected *; }
  11. -keep,allowoptimization class com.google.gson.** { public protected *; }
  12. -keep,allowoptimization class com.github.salomonbrys.kotson.** { public protected *; }
  13. -keep,allowoptimization class com.squareup.duktape.** { public protected *; }
  14. -keep,allowoptimization class app.cash.quickjs.** { public protected *; }
  15. -keep,allowoptimization class uy.kohesive.injekt.** { public protected *; }
  16. ##---------------Begin: proguard configuration for RxJava 1.x ----------
  17. -dontwarn sun.misc.**
  18. -keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
  19. long producerIndex;
  20. long consumerIndex;
  21. }
  22. -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
  23. rx.internal.util.atomic.LinkedQueueNode producerNode;
  24. }
  25. -keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
  26. rx.internal.util.atomic.LinkedQueueNode consumerNode;
  27. }
  28. -dontnote rx.internal.util.PlatformDependent
  29. ##---------------End: proguard configuration for RxJava 1.x ----------
  30. ##---------------Begin: proguard configuration for Gson ----------
  31. # Gson uses generic type information stored in a class file when working with fields. Proguard
  32. # removes such information by default, so configure it to keep all of it.
  33. -keepattributes Signature
  34. # For using GSON @Expose annotation
  35. -keepattributes *Annotation*
  36. # Gson specific classes
  37. -dontwarn sun.misc.**
  38. # Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
  39. # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
  40. -keep class * extends com.google.gson.TypeAdapter
  41. -keep class * implements com.google.gson.TypeAdapterFactory
  42. -keep class * implements com.google.gson.JsonSerializer
  43. -keep class * implements com.google.gson.JsonDeserializer
  44. # Prevent R8 from leaving Data object members always null
  45. -keepclassmembers,allowobfuscation class * {
  46. @com.google.gson.annotations.SerializedName <fields>;
  47. }
  48. ##---------------End: proguard configuration for Gson ----------
  49. ##---------------Begin: proguard configuration for kotlinx.serialization ----------
  50. -keepattributes *Annotation*, InnerClasses
  51. -dontnote kotlinx.serialization.AnnotationsKt # core serialization annotations
  52. # kotlinx-serialization-json specific. Add this if you have java.lang.NoClassDefFoundError kotlinx.serialization.json.JsonObjectSerializer
  53. -keepclassmembers class kotlinx.serialization.json.** {
  54. *** Companion;
  55. }
  56. -keepclasseswithmembers class kotlinx.serialization.json.** {
  57. kotlinx.serialization.KSerializer serializer(...);
  58. }
  59. -keep,includedescriptorclasses class eu.kanade.tachiyomi.**$$serializer { *; }
  60. -keepclassmembers class eu.kanade.tachiyomi.** {
  61. *** Companion;
  62. }
  63. -keepclasseswithmembers class eu.kanade.tachiyomi.** {
  64. kotlinx.serialization.KSerializer serializer(...);
  65. }
  66. -keep class kotlinx.serialization.**
  67. -keepclassmembers class kotlinx.serialization.** {
  68. <methods>;
  69. }
  70. ##---------------End: proguard configuration for kotlinx.serialization ----------