From 69eaf2695e8c48eb78fec1c1defe54e6d41dfa24 Mon Sep 17 00:00:00 2001 From: Valere <valeref@matrix.org> Date: Thu, 2 Jul 2020 14:08:09 +0200 Subject: [PATCH 1/5] FIx / inbound session bad migration --- .../internal/crypto/store/db/RealmCryptoStoreMigration.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt index eb2fc9ebad..47af558b90 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt @@ -182,7 +182,8 @@ internal class RealmCryptoStoreMigration @Inject constructor(private val crossSi try { val oldSerializedData = obj.getString("olmInboundGroupSessionData") deserializeFromRealm<MXOlmInboundGroupSession2>(oldSerializedData)?.let { mxOlmInboundGroupSession2 -> - val newOlmInboundGroupSessionWrapper2 = OlmInboundGroupSessionWrapper2() + val sessionKey = mxOlmInboundGroupSession2.mSession.sessionIdentifier() + val newOlmInboundGroupSessionWrapper = OlmInboundGroupSessionWrapper(sessionKey, false) .apply { olmInboundGroupSession = mxOlmInboundGroupSession2.mSession roomId = mxOlmInboundGroupSession2.mRoomId @@ -191,7 +192,7 @@ internal class RealmCryptoStoreMigration @Inject constructor(private val crossSi forwardingCurve25519KeyChain = mxOlmInboundGroupSession2.mForwardingCurve25519KeyChain } - obj.setString("olmInboundGroupSessionData", serializeForRealm(newOlmInboundGroupSessionWrapper2)) + obj.setString("olmInboundGroupSessionData", serializeForRealm(newOlmInboundGroupSessionWrapper)) } } catch (e: Exception) { Timber.e(e, "Error") From 596fcf94bac88f461cb6ef487f893fe710a6d613 Mon Sep 17 00:00:00 2001 From: Valere <valeref@matrix.org> Date: Thu, 2 Jul 2020 19:26:05 +0200 Subject: [PATCH 2/5] Fix / Serialization issues Fixes keybackup import failing and UTD of incoming messages --- matrix-sdk-android/proguard-rules.pro | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/matrix-sdk-android/proguard-rules.pro b/matrix-sdk-android/proguard-rules.pro index 08a20cbf0a..fa860d8049 100644 --- a/matrix-sdk-android/proguard-rules.pro +++ b/matrix-sdk-android/proguard-rules.pro @@ -64,3 +64,19 @@ ### Webrtc -keep class org.webrtc.** { *; } + +### Serializable persisted classes +# https://www.guardsquare.com/en/products/proguard/manual/examples#serializable +-keepnames class * implements java.io.Serializable + +-keepclassmembers class * implements java.io.Serializable { + static final long serialVersionUID; + private static final java.io.ObjectStreamField[] serialPersistentFields; + !static !transient <fields>; + !private <fields>; + !private <methods>; + private void writeObject(java.io.ObjectOutputStream); + private void readObject(java.io.ObjectInputStream); + java.lang.Object writeReplace(); + java.lang.Object readResolve(); +} \ No newline at end of file From e098b87d0a9908f9cccbb0afab83819433083f2d Mon Sep 17 00:00:00 2001 From: Benoit Marty <benoitm@matrix.org> Date: Thu, 2 Jul 2020 21:30:49 +0200 Subject: [PATCH 3/5] Update comment --- .../internal/crypto/store/db/RealmCryptoStoreMigration.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt index 47af558b90..7bf8e2478f 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStoreMigration.kt @@ -176,7 +176,7 @@ internal class RealmCryptoStoreMigration @Inject constructor(private val crossSi } } - // Convert MXOlmInboundGroupSession2 to OlmInboundGroupSessionWrapper2 + // Convert MXOlmInboundGroupSession2 to OlmInboundGroupSessionWrapper realm.schema.get("OlmInboundGroupSessionEntity") ?.transform { obj -> try { From 15223ecfe4ccda4b97b27c8511d668e9b0b5e49c Mon Sep 17 00:00:00 2001 From: Benoit Marty <benoitm@matrix.org> Date: Thu, 2 Jul 2020 21:31:39 +0200 Subject: [PATCH 4/5] Update changelog with the recent change --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 4a7d0d70af..61e27a1476 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -8,7 +8,7 @@ Improvements 🙌: - Bugfix 🐛: - - + - Fix Exception when importing keys (#1576) Translations 🗣: - From bfb8b6203cca75448e97efc0f7bafc2ff62a7121 Mon Sep 17 00:00:00 2001 From: Benoit Marty <benoitm@matrix.org> Date: Thu, 2 Jul 2020 22:02:42 +0200 Subject: [PATCH 5/5] Add proguard command (commented) --- vector/proguard-rules.pro | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vector/proguard-rules.pro b/vector/proguard-rules.pro index 56d3b95510..bc27767d8a 100644 --- a/vector/proguard-rules.pro +++ b/vector/proguard-rules.pro @@ -20,4 +20,7 @@ # hide the original source file name. #-renamesourcefileattribute SourceFile --keep class im.vector.riotx.features.** { *; } \ No newline at end of file +-keep class im.vector.riotx.features.** { *; } + +## print all the rules in a file +# -printconfiguration ../proguard_files/full-r8-config.txt