diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 1db2e7d18e..3ced226876 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,3 +1,5 @@ +-dontobfuscate + ########## BASELINE / ATTRIBUTES ########## # Core attrs (serialization/DI/reflective access often rely on these) -keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod,MethodParameters,Record @@ -76,36 +78,8 @@ void set*(***); } -# Converters / Deserializers --keep class org.session.libsession.snode.model.RetrieveMessageConverter { public (); public *; } - ########## JNI LOGGER / NATIVE ENTRYPOINTS ########## -# Logging interface & implementations (JNI looks up log(String,String,int)) --keep interface network.loki.messenger.libsession_util.util.Logger { *; } --keepnames class * implements network.loki.messenger.libsession_util.util.Logger --keepclassmembers class * implements network.loki.messenger.libsession_util.util.Logger { - public void log(java.lang.String, java.lang.String, int); -} - -# JNI: ConfigPush constructors (exact signatures preserved) --keepnames class network.loki.messenger.libsession_util.util.ConfigPush --keepclassmembers class network.loki.messenger.libsession_util.util.ConfigPush { - public (java.util.List, long, java.util.List); - public (java.util.List, long, java.util.List, int, kotlin.jvm.internal.DefaultConstructorMarker); -} - -# JNI: specific getter used from native --keepnames class network.loki.messenger.libsession_util.util.UserPic --keepclassmembers class network.loki.messenger.libsession_util.util.UserPic { - public byte[] getKeyAsByteArray(); -} --keep class network.loki.messenger.libsession_util.util.GroupInfo$ClosedGroupInfo { *; } --keepnames class network.loki.messenger.libsession_util.util.GroupInfo$ClosedGroupInfo --keepclassmembers class network.loki.messenger.libsession_util.util.GroupInfo$ClosedGroupInfo { - public byte[] getAdminKeyAsByteArray(); - public byte[] getAuthDataAsByteArray(); -} ########## WEBRTC / CHROMIUM JNI ########## # WebRTC public Java APIs (kept for JNI_OnLoad registration) @@ -125,36 +99,6 @@ -keep class org.jni_zero.** { *; } -keepnames class org.jni_zero.** -########## CONVERSATION / MODELS (JNI + REFLECTION) ########## -# Conversation.* types constructed via JNI with (String,long,boolean) --keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$* { - public (java.lang.String, long, boolean); -} - -# Keep names and members of Conversation/Community models (JNI searches by name) --keep class network.loki.messenger.libsession_util.util.Conversation$Community { *; } --keep class network.loki.messenger.libsession_util.util.Conversation$OneToOne { *; } --keep class network.loki.messenger.libsession_util.util.Conversation$ClosedGroup { *; } --keep class network.loki.messenger.libsession_util.util.BaseCommunityInfo { *; } - --keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$Community { public (...); } --keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$OneToOne { public (...); } --keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$ClosedGroup { public (...); } - --keepnames class network.loki.messenger.libsession_util.util.Conversation$Community --keepnames class network.loki.messenger.libsession_util.util.Conversation$OneToOne --keepnames class network.loki.messenger.libsession_util.util.Conversation$ClosedGroup --keepnames class network.loki.messenger.libsession_util.util.BaseCommunityInfo - -# Group members (JNI constructor with long) --keep class network.loki.messenger.libsession_util.GroupMembersConfig { *; } --keep class network.loki.messenger.libsession_util.util.GroupMember { *; } --keepclassmembers class network.loki.messenger.libsession_util.util.GroupMember { public (long); } --keepnames class network.loki.messenger.libsession_util.util.GroupMember - -# Broad safety net for long-arg ctors in util package --keepclassmembers class network.loki.messenger.libsession_util.util.** { public (long); } - ########## EMOJI SEARCH (JACKSON / POLYMORPHIC) ########## # Keep names if @JsonTypeInfo uses CLASS/MINIMAL_CLASS -keepnames class org.thoughtcrime.securesms.database.model.** @@ -166,8 +110,6 @@ # No-arg contructors required at runtime for these sealed subclasses -keepclassmembers class org.session.libsession.messaging.messages.Destination$ClosedGroup { (); } -keepclassmembers class org.session.libsession.messaging.messages.Destination$Contact { (); } --keepclassmembers class org.session.libsession.messaging.messages.Destination$LegacyClosedGroup { (); } --keepclassmembers class org.session.libsession.messaging.messages.Destination$LegacyOpenGroup { (); } -keepclassmembers class org.session.libsession.messaging.messages.Destination$OpenGroup { (); } -keepclassmembers class org.session.libsession.messaging.messages.Destination$OpenGroupInbox { (); } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0fd17f7dbd..ec5c44fb0b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -29,7 +29,7 @@ kotlinVersion = "2.3.0" kryoVersion = "5.6.2" kspVersion = "2.3.5" legacySupportV13Version = "1.0.0" -libsessionUtilAndroidVersion = "1.1.0" +libsessionUtilAndroidVersion = "1.1.0-9-g4ae3baf" media3ExoplayerVersion = "1.8.0" mockitoCoreVersion = "5.21.0" navVersion = "2.9.6" diff --git a/scripts/build-and-release.py b/scripts/build-and-release.py index cc020f0368..1695e4a984 100755 --- a/scripts/build-and-release.py +++ b/scripts/build-and-release.py @@ -62,7 +62,9 @@ def build_releases(project_root: str, flavor: str, credentials_property_prefix: gradle_commands += ' -Phuawei ' subprocess.run(f"""{gradle_commands} \ - assemble{flavor.capitalize()}{build_type.capitalize()} \ + assemble{flavor.capitalize()}{build_type.capitalize()} --stacktrace""", shell=True, check=True, cwd=project_root) + + subprocess.run(f"""{gradle_commands} \ bundle{flavor.capitalize()}{build_type.capitalize()} --stacktrace""", shell=True, check=True, cwd=project_root) apk_output_dir = os.path.join(project_root, f'app/build/outputs/apk/{flavor}/{build_type}')