diff --git a/app/build.gradle b/app/build.gradle index 5439c73f..9ddc1cbc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -48,6 +48,10 @@ android { buildTypes { debug { applicationIdSuffix ".debug" + + minifyEnabled true + useProguard false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } release { // To whomever is releasing/using an APK in release mode with @@ -82,8 +86,8 @@ android { // TL;DR: Leave the following line alone! applicationIdSuffix ".unofficial" - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt') + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 00000000..011f261d --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,45 @@ +# Don't obfuscate code +-dontobfuscate + +# Our code +-keep class com.limelight.binding.input.evdev.* {*;} + +# Moonlight common +-keep class com.limelight.nvstream.jni.* {*;} + +# Okio +-keep class sun.misc.Unsafe {*;} +-dontwarn java.nio.file.* +-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement +-dontwarn okio.** + +# BouncyCastle +-keep class org.bouncycastle.crypto.* {*;} +-keep class org.bouncycastle.crypto.agreement.** {*;} +-keep class org.bouncycastle.crypto.digests.* {*;} +-keep class org.bouncycastle.crypto.ec.* {*;} +-keep class org.bouncycastle.crypto.encodings.* {*;} +-keep class org.bouncycastle.crypto.engines.* {*;} +-keep class org.bouncycastle.crypto.macs.* {*;} +-keep class org.bouncycastle.crypto.modes.* {*;} +-keep class org.bouncycastle.crypto.paddings.* {*;} +-keep class org.bouncycastle.crypto.params.* {*;} +-keep class org.bouncycastle.crypto.prng.* {*;} +-keep class org.bouncycastle.crypto.signers.* {*;} + +-keep class org.bouncycastle.jcajce.provider.asymmetric.* {*;} +-keep class org.bouncycastle.jcajce.provider.asymmetric.util.* {*;} +-keep class org.bouncycastle.jcajce.provider.asymmetric.dh.* {*;} +-keep class org.bouncycastle.jcajce.provider.asymmetric.ec.* {*;} +-keep class org.bouncycastle.jcajce.provider.asymmetric.rsa.* {*;} + +-keep class org.bouncycastle.jcajce.provider.digest.** {*;} +-keep class org.bouncycastle.jcajce.provider.keystore.** {*;} +-keep class org.bouncycastle.jcajce.provider.symmetric.** {*;} +-keep class org.bouncycastle.jcajce.spec.* {*;} +-keep class org.bouncycastle.jce.** {*;} + +-dontwarn javax.naming.** + +# jMDNS +-dontwarn javax.jmdns.impl.DNSCache