summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-07-31 10:58:20 -0300
committerTorsten Grote <t@grobox.de>2020-07-31 10:58:20 -0300
commit4bd0ec921e7ba0b074fef28604febd7ad9d57d01 (patch)
tree0d9035dfccc83e080c00c1293e1d1f44903d7d7b
parentdabc0ce62c93f8d78ed800e0f3c63b7fd5cb9e25 (diff)
downloadtaler-android-4bd0ec921e7ba0b074fef28604febd7ad9d57d01.tar.gz
taler-android-4bd0ec921e7ba0b074fef28604febd7ad9d57d01.tar.bz2
taler-android-4bd0ec921e7ba0b074fef28604febd7ad9d57d01.zip
Enable code minification for release builds of all apps
Attention: This brings a high run-time crash risk. So all release builds need to be thoroughly tested before publication. Nightly builds have been switched to release builds for that reason.
-rw-r--r--cashier/.gitlab-ci.yml2
-rw-r--r--cashier/build.gradle2
-rw-r--r--cashier/proguard-rules.pro4
-rw-r--r--merchant-lib/consumer-rules.pro1
-rw-r--r--merchant-terminal/.gitlab-ci.yml2
-rw-r--r--merchant-terminal/proguard-rules.pro2
-rw-r--r--taler-kotlin-android/consumer-rules.pro15
-rw-r--r--wallet/.gitlab-ci.yml2
-rw-r--r--wallet/build.gradle2
-rw-r--r--wallet/proguard-rules.pro4
10 files changed, 31 insertions, 5 deletions
diff --git a/cashier/.gitlab-ci.yml b/cashier/.gitlab-ci.yml
index 6b73deeb..cbf2bf0a 100644
--- a/cashier/.gitlab-ci.yml
+++ b/cashier/.gitlab-ci.yml
@@ -36,7 +36,7 @@ cashier_deploy_nightly:
# Set nightly application ID
- sed -i "s,^\(\s*applicationId\) \"*[a-z\.].*\",\1 \"net.taler.cashier.nightly\"," cashier/build.gradle
# Build the APK
- - ./gradlew :cashier:assembleDebug
+ - ./gradlew :cashier:assembleRelease
# START only needed while patch not accepted/released upstream
- apt update && apt install patch
- patch /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch
diff --git a/cashier/build.gradle b/cashier/build.gradle
index e4439448..341562d8 100644
--- a/cashier/build.gradle
+++ b/cashier/build.gradle
@@ -35,7 +35,7 @@ android {
buildTypes {
release {
- minifyEnabled false
+ minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
diff --git a/cashier/proguard-rules.pro b/cashier/proguard-rules.pro
index f1b42451..f612b29d 100644
--- a/cashier/proguard-rules.pro
+++ b/cashier/proguard-rules.pro
@@ -19,3 +19,7 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
+
+# androidx.security:security-crypto
+# https://github.com/google/tink/issues/361
+-keep class * extends com.google.crypto.tink.shaded.protobuf.GeneratedMessageLite { *; }
diff --git a/merchant-lib/consumer-rules.pro b/merchant-lib/consumer-rules.pro
index e69de29b..dc239e61 100644
--- a/merchant-lib/consumer-rules.pro
+++ b/merchant-lib/consumer-rules.pro
@@ -0,0 +1 @@
+-keep class net.taler.merchantlib.** {*;}
diff --git a/merchant-terminal/.gitlab-ci.yml b/merchant-terminal/.gitlab-ci.yml
index d159902c..470cb580 100644
--- a/merchant-terminal/.gitlab-ci.yml
+++ b/merchant-terminal/.gitlab-ci.yml
@@ -38,7 +38,7 @@ merchant_deploy_nightly:
# Set nightly application ID
- sed -i "s,^\(\s*applicationId\) \"*[a-z\.].*\",\1 \"net.taler.merchantpos.nightly\"," merchant-terminal/build.gradle
# Build the APK
- - ./gradlew :merchant-terminal:assembleDebug
+ - ./gradlew :merchant-terminal:assembleRelease
# START only needed while patch not accepted/released upstream
- apt update && apt install patch
- patch /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch
diff --git a/merchant-terminal/proguard-rules.pro b/merchant-terminal/proguard-rules.pro
index f1b42451..1a50a505 100644
--- a/merchant-terminal/proguard-rules.pro
+++ b/merchant-terminal/proguard-rules.pro
@@ -19,3 +19,5 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
+
+-keep class net.taler.merchantpos.** {*;}
diff --git a/taler-kotlin-android/consumer-rules.pro b/taler-kotlin-android/consumer-rules.pro
index e69de29b..854cdfdc 100644
--- a/taler-kotlin-android/consumer-rules.pro
+++ b/taler-kotlin-android/consumer-rules.pro
@@ -0,0 +1,15 @@
+-dontobfuscate
+
+# This is broad, but better leave a few common class and still optimize the rest out
+-keep class net.taler.common.** {*;}
+
+# AndroidX navigation
+-keepnames class androidx.navigation.fragment.NavHostFragment
+
+# Jackson serialization
+-keep class kotlin.Metadata { *; }
+-keep class kotlin.reflect.** { *; }
+
+# KotlinX serialization
+-keepattributes *Annotation*, InnerClasses
+-dontnote kotlinx.serialization.SerializationKt
diff --git a/wallet/.gitlab-ci.yml b/wallet/.gitlab-ci.yml
index c417aa92..42f561d3 100644
--- a/wallet/.gitlab-ci.yml
+++ b/wallet/.gitlab-ci.yml
@@ -25,7 +25,7 @@ wallet_deploy_nightly:
# Ensure that key exists
- test -z "$DEBUG_KEYSTORE" && exit 0
# Build the APK
- - ./gradlew :wallet:assembleNightlyDebug
+ - ./gradlew :wallet:assembleNightlyRelease
# START only needed while patch not accepted/released upstream
- apt update && apt install patch
- patch -b /usr/lib/python3/dist-packages/fdroidserver/nightly.py nightly-stats.patch
diff --git a/wallet/build.gradle b/wallet/build.gradle
index 17610188..93eef059 100644
--- a/wallet/build.gradle
+++ b/wallet/build.gradle
@@ -53,7 +53,7 @@ android {
}
buildTypes {
release {
- minifyEnabled false
+ minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
diff --git a/wallet/proguard-rules.pro b/wallet/proguard-rules.pro
index f1b42451..27f37997 100644
--- a/wallet/proguard-rules.pro
+++ b/wallet/proguard-rules.pro
@@ -19,3 +19,7 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
+
+-keep class akono.AkonoJni {*;}
+
+-keep class net.taler.wallet.** {*;}