307 lines
12 KiB
Prolog
307 lines
12 KiB
Prolog
# Add project specific ProGuard rules here.
|
|
# You can control the set of applied configuration files using the
|
|
# proguardFiles setting in build.gradle.kts.
|
|
#
|
|
# For more details, see
|
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
|
|
|
# If your project uses WebView with JS, uncomment the following
|
|
# and specify the fully qualified class name to the JavaScript interface
|
|
# class:
|
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
|
# public *;
|
|
#}
|
|
|
|
# Uncomment this to preserve the line number information for
|
|
# debugging stack traces.
|
|
#-keepattributes SourceFile,LineNumberTable
|
|
|
|
# If you keep the line number information, uncomment this to
|
|
# hide the original source file name.
|
|
#-renamesourcefileattribute SourceFile
|
|
|
|
-dontwarn org.bouncycastle.jsse.BCSSLParameters
|
|
-dontwarn org.bouncycastle.jsse.BCSSLSocket
|
|
-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider
|
|
-dontwarn org.conscrypt.Conscrypt$Version
|
|
-dontwarn org.conscrypt.Conscrypt
|
|
-dontwarn org.conscrypt.ConscryptHostnameVerifier
|
|
-dontwarn org.openjsse.javax.net.ssl.SSLParameters
|
|
-dontwarn org.openjsse.javax.net.ssl.SSLSocket
|
|
-dontwarn org.openjsse.net.ssl.OpenJSSE
|
|
-dontwarn java.lang.invoke.StringConcatFactory
|
|
# Keep `Companion` object fields of serializable classes.
|
|
# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects.
|
|
-if @kotlinx.serialization.Serializable class **
|
|
-keepclassmembers class <1> {
|
|
static <1>$Companion Companion;
|
|
}
|
|
|
|
# Keep `serializer()` on companion objects (both default and named) of serializable classes.
|
|
-if @kotlinx.serialization.Serializable class ** {
|
|
static **$* *;
|
|
}
|
|
-keepclassmembers class <2>$<3> {
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
# Keep `INSTANCE.serializer()` of serializable objects.
|
|
-if @kotlinx.serialization.Serializable class ** {
|
|
public static ** INSTANCE;
|
|
}
|
|
-keepclassmembers class <1> {
|
|
public static <1> INSTANCE;
|
|
kotlinx.serialization.KSerializer serializer(...);
|
|
}
|
|
|
|
# @Serializable and @Polymorphic are used at runtime for polymorphic serialization.
|
|
-keepattributes RuntimeVisibleAnnotations,AnnotationDefault
|
|
|
|
# Don't print notes about potential mistakes or omissions in the configuration for kotlinx-serialization classes
|
|
# See also https://github.com/Kotlin/kotlinx.serialization/issues/1900
|
|
-dontnote kotlinx.serialization.**
|
|
|
|
# Serialization core uses `java.lang.ClassValue` for caching inside these specified classes.
|
|
# If there is no `java.lang.ClassValue` (for example, in Android), then R8/ProGuard will print a warning.
|
|
# However, since in this case they will not be used, we can disable these warnings
|
|
-dontwarn kotlinx.serialization.internal.ClassValueWrapper
|
|
-dontwarn kotlinx.serialization.internal.ParametrizedClassValueWrapper
|
|
# Retrofit does reflection on generic parameters. InnerClasses is required to use Signature and
|
|
# EnclosingMethod is required to use InnerClasses.
|
|
-keepattributes Signature, InnerClasses, EnclosingMethod
|
|
|
|
# Retrofit does reflection on method and parameter annotations.
|
|
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
|
|
|
|
# Keep annotation default values (e.g., retrofit2.http.Field.encoded).
|
|
-keepattributes AnnotationDefault
|
|
|
|
# Retain service method parameters when optimizing.
|
|
-keepclassmembers,allowshrinking,allowobfuscation interface * {
|
|
@retrofit2.http.* <methods>;
|
|
}
|
|
|
|
# Ignore annotation used for build tooling.
|
|
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
|
|
|
|
# Ignore JSR 305 annotations for embedding nullability information.
|
|
-dontwarn javax.annotation.**
|
|
|
|
# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath.
|
|
-dontwarn kotlin.Unit
|
|
|
|
# Top-level functions that can only be used by Kotlin.
|
|
-dontwarn retrofit2.KotlinExtensions
|
|
-dontwarn retrofit2.KotlinExtensions$*
|
|
|
|
# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
|
|
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
|
|
-if interface * { @retrofit2.http.* <methods>; }
|
|
-keep,allowobfuscation interface <1>
|
|
|
|
# Keep inherited services.
|
|
-if interface * { @retrofit2.http.* <methods>; }
|
|
-keep,allowobfuscation interface * extends <1>
|
|
|
|
# Keep generic signature of Call, Response (R8 full mode strips signatures from non-kept items).
|
|
-keep,allowobfuscation,allowshrinking interface retrofit2.Call
|
|
-keep,allowobfuscation,allowshrinking class retrofit2.Response
|
|
|
|
# With R8 full mode generic signatures are stripped for classes that are not
|
|
# kept. Suspend functions are wrapped in continuations where the type argument
|
|
# is used.
|
|
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
|
|
|
|
-dontwarn com.sun.net.httpserver.HttpContext
|
|
-dontwarn com.sun.net.httpserver.HttpHandler
|
|
-dontwarn com.sun.net.httpserver.HttpServer
|
|
-dontwarn javax.enterprise.context.ApplicationScoped
|
|
-dontwarn javax.enterprise.inject.Alternative
|
|
-dontwarn sun.net.www.protocol.http.Handler
|
|
|
|
-keep class org.jupnp.** { *; }
|
|
-dontwarn com.sun.net.httpserver.Headers
|
|
-dontwarn com.sun.net.httpserver.HttpExchange
|
|
-dontwarn java.awt.BorderLayout
|
|
-dontwarn java.awt.Component
|
|
-dontwarn java.awt.Container
|
|
-dontwarn java.awt.Dimension
|
|
-dontwarn java.awt.Frame
|
|
-dontwarn java.awt.LayoutManager
|
|
-dontwarn java.awt.Rectangle
|
|
-dontwarn java.awt.Toolkit
|
|
-dontwarn java.awt.Window
|
|
-dontwarn java.awt.datatransfer.Clipboard
|
|
-dontwarn java.awt.datatransfer.ClipboardOwner
|
|
-dontwarn java.awt.datatransfer.StringSelection
|
|
-dontwarn java.awt.datatransfer.Transferable
|
|
-dontwarn java.awt.event.ActionEvent
|
|
-dontwarn java.awt.event.ActionListener
|
|
-dontwarn java.awt.event.ItemListener
|
|
-dontwarn java.awt.event.WindowAdapter
|
|
-dontwarn java.awt.event.WindowEvent
|
|
-dontwarn java.awt.event.WindowListener
|
|
-dontwarn javax.enterprise.event.Event
|
|
-dontwarn javax.enterprise.event.Observes
|
|
-dontwarn javax.enterprise.inject.Any
|
|
-dontwarn javax.enterprise.inject.Default
|
|
-dontwarn javax.enterprise.inject.Instance
|
|
-dontwarn javax.enterprise.util.AnnotationLiteral
|
|
-dontwarn javax.swing.AbstractAction
|
|
-dontwarn javax.swing.AbstractButton
|
|
-dontwarn javax.swing.BorderFactory
|
|
-dontwarn javax.swing.Box
|
|
-dontwarn javax.swing.BoxLayout
|
|
-dontwarn javax.swing.Icon
|
|
-dontwarn javax.swing.ImageIcon
|
|
-dontwarn javax.swing.JButton
|
|
-dontwarn javax.swing.JCheckBox
|
|
-dontwarn javax.swing.JComboBox
|
|
-dontwarn javax.swing.JDialog
|
|
-dontwarn javax.swing.JFrame
|
|
-dontwarn javax.swing.JLabel
|
|
-dontwarn javax.swing.JPanel
|
|
-dontwarn javax.swing.JScrollPane
|
|
-dontwarn javax.swing.JTable
|
|
-dontwarn javax.swing.JTextArea
|
|
-dontwarn javax.swing.JToolBar
|
|
-dontwarn javax.swing.JTree
|
|
-dontwarn javax.swing.JWindow
|
|
-dontwarn javax.swing.ListSelectionModel
|
|
-dontwarn javax.swing.SwingUtilities
|
|
-dontwarn javax.swing.UIManager
|
|
-dontwarn javax.swing.border.Border
|
|
-dontwarn javax.swing.border.TitledBorder
|
|
-dontwarn javax.swing.event.ListSelectionEvent
|
|
-dontwarn javax.swing.event.ListSelectionListener
|
|
-dontwarn javax.swing.event.TreeExpansionEvent
|
|
-dontwarn javax.swing.event.TreeWillExpandListener
|
|
-dontwarn javax.swing.table.AbstractTableModel
|
|
-dontwarn javax.swing.table.DefaultTableCellRenderer
|
|
-dontwarn javax.swing.table.JTableHeader
|
|
-dontwarn javax.swing.table.TableCellRenderer
|
|
-dontwarn javax.swing.table.TableColumn
|
|
-dontwarn javax.swing.table.TableColumnModel
|
|
-dontwarn javax.swing.table.TableModel
|
|
-dontwarn javax.swing.tree.DefaultMutableTreeNode
|
|
-dontwarn javax.swing.tree.DefaultTreeCellRenderer
|
|
-dontwarn javax.swing.tree.DefaultTreeModel
|
|
-dontwarn javax.swing.tree.MutableTreeNode
|
|
-dontwarn javax.swing.tree.TreeCellRenderer
|
|
-dontwarn javax.swing.tree.TreeModel
|
|
-dontwarn javax.swing.tree.TreeNode
|
|
-dontwarn javax.swing.tree.TreePath
|
|
-dontwarn javax.swing.tree.TreeSelectionModel
|
|
-dontwarn sun.net.www.protocol.http.HttpURLConnection
|
|
|
|
-dontwarn org.osgi.framework.BundleContext
|
|
-dontwarn org.osgi.framework.ServiceReference
|
|
-dontwarn org.osgi.framework.ServiceRegistration
|
|
-dontwarn org.osgi.service.cm.ManagedService
|
|
-dontwarn org.osgi.service.component.ComponentContext
|
|
-dontwarn org.osgi.service.http.HttpContext
|
|
-dontwarn org.osgi.service.http.HttpService
|
|
-dontwarn org.osgi.service.http.NamespaceException
|
|
|
|
-dontwarn io.netty.internal.tcnative.AsyncSSLPrivateKeyMethod
|
|
-dontwarn io.netty.internal.tcnative.AsyncTask
|
|
-dontwarn io.netty.internal.tcnative.Buffer
|
|
-dontwarn io.netty.internal.tcnative.CertificateCallback
|
|
-dontwarn io.netty.internal.tcnative.CertificateCompressionAlgo
|
|
-dontwarn io.netty.internal.tcnative.CertificateVerifier
|
|
-dontwarn io.netty.internal.tcnative.Library
|
|
-dontwarn io.netty.internal.tcnative.SSL
|
|
-dontwarn io.netty.internal.tcnative.SSLContext
|
|
-dontwarn io.netty.internal.tcnative.SSLPrivateKeyMethod
|
|
-dontwarn io.netty.internal.tcnative.SSLSessionCache
|
|
-dontwarn io.netty.internal.tcnative.SessionTicketKey
|
|
-dontwarn io.netty.internal.tcnative.SniHostNameMatcher
|
|
-dontwarn java.lang.management.ManagementFactory
|
|
-dontwarn java.lang.management.RuntimeMXBean
|
|
-dontwarn org.apache.log4j.Level
|
|
-dontwarn org.apache.log4j.Logger
|
|
-dontwarn org.apache.log4j.Priority
|
|
-dontwarn org.apache.logging.log4j.Level
|
|
-dontwarn org.apache.logging.log4j.LogManager
|
|
-dontwarn org.apache.logging.log4j.Logger
|
|
-dontwarn org.apache.logging.log4j.message.MessageFactory
|
|
-dontwarn org.apache.logging.log4j.spi.ExtendedLogger
|
|
-dontwarn org.apache.logging.log4j.spi.ExtendedLoggerWrapper
|
|
-dontwarn org.eclipse.jetty.npn.NextProtoNego$ClientProvider
|
|
-dontwarn org.eclipse.jetty.npn.NextProtoNego$Provider
|
|
-dontwarn org.eclipse.jetty.npn.NextProtoNego$ServerProvider
|
|
-dontwarn org.eclipse.jetty.npn.NextProtoNego
|
|
-dontwarn reactor.blockhound.integration.BlockHoundIntegration
|
|
|
|
-dontwarn java.lang.Module
|
|
-dontwarn javax.naming.ldap.LdapName
|
|
-dontwarn javax.naming.ldap.Rdn
|
|
-dontwarn org.eclipse.jetty.alpn.ALPN$Provider
|
|
-dontwarn org.eclipse.jetty.alpn.ALPN$ServerProvider
|
|
-dontwarn org.eclipse.jetty.alpn.ALPN
|
|
|
|
-keep class io.netty.** {*; }
|
|
-keep class io.ktor.** {*; }
|
|
-keep class kotlin.reflect.jvm.internal.** { *; }
|
|
|
|
-dontwarn com.aayushatharva.brotli4j.Brotli4jLoader
|
|
-dontwarn com.aayushatharva.brotli4j.decoder.DecoderJNI$Status
|
|
-dontwarn com.aayushatharva.brotli4j.decoder.DecoderJNI$Wrapper
|
|
-dontwarn com.aayushatharva.brotli4j.encoder.BrotliEncoderChannel
|
|
-dontwarn com.aayushatharva.brotli4j.encoder.Encoder$Mode
|
|
-dontwarn com.aayushatharva.brotli4j.encoder.Encoder$Parameters
|
|
-dontwarn com.github.luben.zstd.Zstd
|
|
-dontwarn com.google.protobuf.ExtensionRegistry
|
|
-dontwarn com.google.protobuf.ExtensionRegistryLite
|
|
-dontwarn com.google.protobuf.MessageLite$Builder
|
|
-dontwarn com.google.protobuf.MessageLite
|
|
-dontwarn com.google.protobuf.MessageLiteOrBuilder
|
|
-dontwarn com.google.protobuf.Parser
|
|
-dontwarn com.google.protobuf.nano.CodedOutputByteBufferNano
|
|
-dontwarn com.google.protobuf.nano.MessageNano
|
|
-dontwarn com.jcraft.jzlib.Deflater
|
|
-dontwarn com.jcraft.jzlib.Inflater
|
|
-dontwarn com.jcraft.jzlib.JZlib$WrapperType
|
|
-dontwarn com.jcraft.jzlib.JZlib
|
|
-dontwarn com.ning.compress.BufferRecycler
|
|
-dontwarn com.ning.compress.lzf.ChunkDecoder
|
|
-dontwarn com.ning.compress.lzf.ChunkEncoder
|
|
-dontwarn com.ning.compress.lzf.LZFChunk
|
|
-dontwarn com.ning.compress.lzf.LZFEncoder
|
|
-dontwarn com.ning.compress.lzf.util.ChunkDecoderFactory
|
|
-dontwarn com.ning.compress.lzf.util.ChunkEncoderFactory
|
|
-dontwarn com.oracle.svm.core.annotate.Alias
|
|
-dontwarn com.oracle.svm.core.annotate.InjectAccessors
|
|
-dontwarn com.oracle.svm.core.annotate.RecomputeFieldValue$Kind
|
|
-dontwarn com.oracle.svm.core.annotate.RecomputeFieldValue
|
|
-dontwarn com.oracle.svm.core.annotate.TargetClass
|
|
-dontwarn io.netty.internal.tcnative.ResultCallback
|
|
-dontwarn io.netty.internal.tcnative.SSLSession
|
|
-dontwarn lzma.sdk.ICodeProgress
|
|
-dontwarn lzma.sdk.lzma.Encoder
|
|
-dontwarn net.jpountz.lz4.LZ4Compressor
|
|
-dontwarn net.jpountz.lz4.LZ4Exception
|
|
-dontwarn net.jpountz.lz4.LZ4Factory
|
|
-dontwarn net.jpountz.lz4.LZ4FastDecompressor
|
|
-dontwarn net.jpountz.xxhash.XXHash32
|
|
-dontwarn net.jpountz.xxhash.XXHashFactory
|
|
-dontwarn org.jboss.marshalling.ByteInput
|
|
-dontwarn org.jboss.marshalling.ByteOutput
|
|
-dontwarn org.jboss.marshalling.Marshaller
|
|
-dontwarn org.jboss.marshalling.MarshallerFactory
|
|
-dontwarn org.jboss.marshalling.MarshallingConfiguration
|
|
-dontwarn org.jboss.marshalling.Unmarshaller
|
|
-dontwarn reactor.blockhound.BlockHound$Builder
|
|
-dontwarn sun.security.x509.AlgorithmId
|
|
-dontwarn sun.security.x509.CertificateAlgorithmId
|
|
-dontwarn sun.security.x509.CertificateSerialNumber
|
|
-dontwarn sun.security.x509.CertificateSubjectName
|
|
-dontwarn sun.security.x509.CertificateValidity
|
|
-dontwarn sun.security.x509.CertificateVersion
|
|
-dontwarn sun.security.x509.CertificateX509Key
|
|
-dontwarn sun.security.x509.X500Name
|
|
-dontwarn sun.security.x509.X509CertImpl
|
|
-dontwarn sun.security.x509.X509CertInfo
|
|
|
|
# mmupnp
|
|
-dontwarn org.slf4j.impl.StaticLoggerBinder |