mirror of
https://github.com/mihonapp/mihon.git
synced 2026-10-16 21:52:25 -07:00
Names stay as they are, since -dontobfuscate is unchanged. Injekt reads the injected type from the generic superclass of its type tokens, so those keep their Signature attribute.
94 lines
3.5 KiB
Prolog
94 lines
3.5 KiB
Prolog
-dontobfuscate
|
|
|
|
# Injekt reads the injected type from the generic superclass of its type tokens
|
|
-keepattributes Signature
|
|
-keep,allowshrinking class * extends uy.kohesive.injekt.api.FullTypeReference
|
|
|
|
# Keep common dependencies used in extensions
|
|
-keep,allowoptimization class androidx.preference.** { public protected *; }
|
|
-keep,allowoptimization class kotlin.** { public protected *; }
|
|
-keep,allowoptimization class kotlinx.coroutines.** { public protected *; }
|
|
-keep,allowoptimization class kotlinx.serialization.** { public protected *; }
|
|
-keep,allowoptimization class kotlin.time.** { public protected *; }
|
|
-keep,allowoptimization class okhttp3.** { public protected *; }
|
|
-keep,allowoptimization class okio.** { public protected *; }
|
|
-keep,allowoptimization class org.jsoup.** { public protected *; }
|
|
-keep,allowoptimization class rx.** { public protected *; }
|
|
-keep,allowoptimization class app.cash.quickjs.** { public protected *; }
|
|
-keep,allowoptimization class uy.kohesive.injekt.** { public protected *; }
|
|
-keep,allowoptimization class com.squareup.zstd.** { public protected *; }
|
|
|
|
-keepclassmembers class * implements java.io.Serializable {
|
|
java.lang.Object writeReplace();
|
|
java.lang.Object readResolve();
|
|
}
|
|
|
|
# Provided by the OEM at runtime when supported
|
|
-dontwarn androidx.window.extensions.**
|
|
-dontwarn androidx.window.sidecar.**
|
|
|
|
##---------------Begin: proguard configuration for RxJava 1.x ----------
|
|
-dontwarn sun.misc.**
|
|
|
|
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
|
|
long producerIndex;
|
|
long consumerIndex;
|
|
}
|
|
|
|
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
|
|
rx.internal.util.atomic.LinkedQueueNode producerNode;
|
|
}
|
|
|
|
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
|
|
rx.internal.util.atomic.LinkedQueueNode consumerNode;
|
|
}
|
|
|
|
-dontnote rx.internal.util.PlatformDependent
|
|
##---------------End: proguard configuration for RxJava 1.x ----------
|
|
|
|
##---------------Begin: proguard configuration for okhttp ----------
|
|
-keepclasseswithmembers class okhttp3.MultipartBody$Builder { *; }
|
|
##---------------End: proguard configuration for okhttp ----------
|
|
|
|
##---------------Begin: proguard configuration for kotlinx.serialization ----------
|
|
-keepattributes *Annotation*, InnerClasses
|
|
-dontnote kotlinx.serialization.** # core serialization annotations
|
|
|
|
# kotlinx-serialization-json specific. Add this if you have java.lang.NoClassDefFoundError kotlinx.serialization.json.JsonObjectSerializer
|
|
-keepclassmembers class kotlinx.serialization.json.** {
|
|
*** Companion;
|
|
}
|
|
-keepclasseswithmembers class kotlinx.serialization.json.** {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
-keep,includedescriptorclasses class eu.kanade.**$$serializer { *; }
|
|
-keepclassmembers class eu.kanade.** {
|
|
*** Companion;
|
|
}
|
|
-keepclasseswithmembers class eu.kanade.** {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
-keep class kotlinx.serialization.**
|
|
-keepclassmembers class kotlinx.serialization.** {
|
|
<methods>;
|
|
}
|
|
##---------------End: proguard configuration for kotlinx.serialization ----------
|
|
|
|
# XmlUtil
|
|
-keep public enum nl.adaptivity.xmlutil.EventType { *; }
|
|
|
|
# Firebase
|
|
-keep class com.google.firebase.installations.** { *; }
|
|
-keep interface com.google.firebase.installations.** { *; }
|
|
|
|
# KotlinX Datetime
|
|
-keep,allowoptimization class kotlinx.datetime.** { public protected *; }
|
|
|
|
# Methods called by Shizuku only
|
|
-keepclassmembers class mihon.app.shizuku.ShellInterface {
|
|
public <init>();
|
|
public void destroy();
|
|
}
|