-keep public class com.google.android.gms.* { public *; } -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keep class org.webrtc.* { *; } -keep class org.webrtc.audio.* { *; } -keep class org.webrtc.voiceengine.* { *; } # -keep class org.telegram.messenger.* { *; } -keep class org.telegram.messenger.AnimatedFileDrawableStream { *; } -keep class org.telegram.messenger.camera.* { *; } -keep class org.telegram.messenger.secretmedia.* { *; } -keep class org.telegram.messenger.support.* { *; } -keep class org.telegram.messenger.time.* { *; } -keep class org.telegram.messenger.video.* { *; } -keep class org.telegram.messenger.voip.* { *; } -keep class org.telegram.SQLite.** { *; } -keep class org.telegram.ui.** { *; } -keep class org.telegram.tgnet.ConnectionsManager { *; } -keep class org.telegram.tgnet.NativeByteBuffer { *; } -keep class org.telegram.tgnet.RequestDelegateInternal { *; } -keep class org.telegram.tgnet.RequestTimeDelegate { *; } -keep class org.telegram.tgnet.RequestDelegate { *; } -keep class org.telegram.tgnet.QuickAckDelegate { *; } -keep class org.telegram.tgnet.WriteToSocketDelegate { *; } -keep class com.v2ray.ang.dto.** { *; } -keep class org.openintents.openpgp.** { *; } # -keep class io.github.trojan_gfw.** { *; } -dontwarn com.coremedia.** -dontwarn org.telegram.** -dontwarn com.google.android.exoplayer2.ext.** -dontwarn com.google.android.exoplayer2.util.** -dontwarn com.google.android.exoplayer2.metadata.** -dontwarn com.google.android.gms.** -dontwarn com.google.common.cache.** -dontwarn com.google.common.primitives.** -dontwarn com.googlecode.mp4parser.** -keep class com.google.android.datatransport.** { *; } -keep class com.google.android.exoplayer2.ext.** { *; } -keep class com.google.android.exoplayer2.util.FlacStreamMetadata { *; } -keep class com.google.android.exoplayer2.metadata.flac.PictureFrame { *; } -keep class com.google.android.exoplayer2.decoder.SimpleOutputBuffer { *; } -keep class org.dizitart.no2.** { *; } -keep class org.slf4j.** { *; } -keep class org.h2.** { *; } -keep class org.objenesis.** { *; } -keep class com.fasterxml.jackson.** { *; } -keepnames class * implements java.io.Serializable -keep class * implements org.dizitart.no2.mapper.Mappable { *; } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient ; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } -keep class tw.nekomimi.nekogram.InternalUpdater$ReleaseMetadata { *; } -keep class tw.nekomimi.nekogram.InternalUpdater$ApkMetadata { *; } # Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening. -keep class com.google.android.exoplayer2.upstream.RawResourceDataSource { public static android.net.Uri buildRawResourceUri(int); } # Methods accessed via reflection in DefaultExtractorsFactory -dontnote com.google.android.exoplayer2.ext.flac.FlacLibrary -keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacLibrary { } # Some members of this class are being accessed from native methods. Keep them unobfuscated. -keep class com.google.android.exoplayer2.video.VideoDecoderOutputBuffer { *; } -dontnote com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } -dontnote com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } -dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } # Constructors accessed via reflection in DefaultExtractorsFactory -dontnote com.google.android.exoplayer2.ext.flac.FlacExtractor -keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacExtractor { (); } # Constructors accessed via reflection in DefaultDownloaderFactory -dontnote com.google.android.exoplayer2.source.dash.offline.DashDownloader -keepclassmembers class com.google.android.exoplayer2.source.dash.offline.DashDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.offline.DownloaderConstructorHelper); } -dontnote com.google.android.exoplayer2.source.hls.offline.HlsDownloader -keepclassmembers class com.google.android.exoplayer2.source.hls.offline.HlsDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.offline.DownloaderConstructorHelper); } -dontnote com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader -keepclassmembers class com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.offline.DownloaderConstructorHelper); } # Constructors accessed via reflection in DownloadHelper -dontnote com.google.android.exoplayer2.source.dash.DashMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.dash.DashMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } -dontnote com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } -dontnote com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } # Don't warn about checkerframework and Kotlin annotations -dontwarn org.checkerframework.** -dontwarn javax.annotation.** # Use -keep to explicitly keep any other classes shrinking would remove -dontobfuscate # https://github.com/osmdroid/osmdroid/issues/633 -dontwarn org.osmdroid.tileprovider.modules.NetworkAvailabliltyCheck # Osmdroid -dontwarn org.osmdroid.** -keepattributes SourceFile,LineNumberTable