Skip to content

Commit 1696429

Browse files
Update proguard rule and build script (#1889)
1 parent d887aec commit 1696429

File tree

3 files changed

+6
-62
lines changed

3 files changed

+6
-62
lines changed

app/proguard-rules.pro

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
-dontobfuscate
2+
13
########## BASELINE / ATTRIBUTES ##########
24
# Core attrs (serialization/DI/reflective access often rely on these)
35
-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod,MethodParameters,Record
@@ -76,36 +78,8 @@
7678
void set*(***);
7779
}
7880

79-
# Converters / Deserializers
80-
-keep class org.session.libsession.snode.model.RetrieveMessageConverter { public <init>(); public *; }
81-
8281
########## JNI LOGGER / NATIVE ENTRYPOINTS ##########
83-
# Logging interface & implementations (JNI looks up log(String,String,int))
84-
-keep interface network.loki.messenger.libsession_util.util.Logger { *; }
85-
-keepnames class * implements network.loki.messenger.libsession_util.util.Logger
86-
-keepclassmembers class * implements network.loki.messenger.libsession_util.util.Logger {
87-
public void log(java.lang.String, java.lang.String, int);
88-
}
89-
90-
# JNI: ConfigPush constructors (exact signatures preserved)
91-
-keepnames class network.loki.messenger.libsession_util.util.ConfigPush
92-
-keepclassmembers class network.loki.messenger.libsession_util.util.ConfigPush {
93-
public <init>(java.util.List, long, java.util.List);
94-
public <init>(java.util.List, long, java.util.List, int, kotlin.jvm.internal.DefaultConstructorMarker);
95-
}
96-
97-
# JNI: specific getter used from native
98-
-keepnames class network.loki.messenger.libsession_util.util.UserPic
99-
-keepclassmembers class network.loki.messenger.libsession_util.util.UserPic {
100-
public byte[] getKeyAsByteArray();
101-
}
10282

103-
-keep class network.loki.messenger.libsession_util.util.GroupInfo$ClosedGroupInfo { *; }
104-
-keepnames class network.loki.messenger.libsession_util.util.GroupInfo$ClosedGroupInfo
105-
-keepclassmembers class network.loki.messenger.libsession_util.util.GroupInfo$ClosedGroupInfo {
106-
public byte[] getAdminKeyAsByteArray();
107-
public byte[] getAuthDataAsByteArray();
108-
}
10983

11084
########## WEBRTC / CHROMIUM JNI ##########
11185
# WebRTC public Java APIs (kept for JNI_OnLoad registration)
@@ -125,36 +99,6 @@
12599
-keep class org.jni_zero.** { *; }
126100
-keepnames class org.jni_zero.**
127101

128-
########## CONVERSATION / MODELS (JNI + REFLECTION) ##########
129-
# Conversation.* types constructed via JNI with (String,long,boolean)
130-
-keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$* {
131-
public <init>(java.lang.String, long, boolean);
132-
}
133-
134-
# Keep names and members of Conversation/Community models (JNI searches by name)
135-
-keep class network.loki.messenger.libsession_util.util.Conversation$Community { *; }
136-
-keep class network.loki.messenger.libsession_util.util.Conversation$OneToOne { *; }
137-
-keep class network.loki.messenger.libsession_util.util.Conversation$ClosedGroup { *; }
138-
-keep class network.loki.messenger.libsession_util.util.BaseCommunityInfo { *; }
139-
140-
-keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$Community { public <init>(...); }
141-
-keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$OneToOne { public <init>(...); }
142-
-keepclassmembers class network.loki.messenger.libsession_util.util.Conversation$ClosedGroup { public <init>(...); }
143-
144-
-keepnames class network.loki.messenger.libsession_util.util.Conversation$Community
145-
-keepnames class network.loki.messenger.libsession_util.util.Conversation$OneToOne
146-
-keepnames class network.loki.messenger.libsession_util.util.Conversation$ClosedGroup
147-
-keepnames class network.loki.messenger.libsession_util.util.BaseCommunityInfo
148-
149-
# Group members (JNI constructor with long)
150-
-keep class network.loki.messenger.libsession_util.GroupMembersConfig { *; }
151-
-keep class network.loki.messenger.libsession_util.util.GroupMember { *; }
152-
-keepclassmembers class network.loki.messenger.libsession_util.util.GroupMember { public <init>(long); }
153-
-keepnames class network.loki.messenger.libsession_util.util.GroupMember
154-
155-
# Broad safety net for long-arg ctors in util package
156-
-keepclassmembers class network.loki.messenger.libsession_util.util.** { public <init>(long); }
157-
158102
########## EMOJI SEARCH (JACKSON / POLYMORPHIC) ##########
159103
# Keep names if @JsonTypeInfo uses CLASS/MINIMAL_CLASS
160104
-keepnames class org.thoughtcrime.securesms.database.model.**
@@ -166,8 +110,6 @@
166110
# No-arg contructors required at runtime for these sealed subclasses
167111
-keepclassmembers class org.session.libsession.messaging.messages.Destination$ClosedGroup { <init>(); }
168112
-keepclassmembers class org.session.libsession.messaging.messages.Destination$Contact { <init>(); }
169-
-keepclassmembers class org.session.libsession.messaging.messages.Destination$LegacyClosedGroup { <init>(); }
170-
-keepclassmembers class org.session.libsession.messaging.messages.Destination$LegacyOpenGroup { <init>(); }
171113
-keepclassmembers class org.session.libsession.messaging.messages.Destination$OpenGroup { <init>(); }
172114
-keepclassmembers class org.session.libsession.messaging.messages.Destination$OpenGroupInbox { <init>(); }
173115

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ kotlinVersion = "2.3.0"
2929
kryoVersion = "5.6.2"
3030
kspVersion = "2.3.5"
3131
legacySupportV13Version = "1.0.0"
32-
libsessionUtilAndroidVersion = "1.1.0"
32+
libsessionUtilAndroidVersion = "1.1.0-9-g4ae3baf"
3333
media3ExoplayerVersion = "1.8.0"
3434
mockitoCoreVersion = "5.21.0"
3535
navVersion = "2.9.6"

scripts/build-and-release.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ def build_releases(project_root: str, flavor: str, credentials_property_prefix:
6262
gradle_commands += ' -Phuawei '
6363

6464
subprocess.run(f"""{gradle_commands} \
65-
assemble{flavor.capitalize()}{build_type.capitalize()} \
65+
assemble{flavor.capitalize()}{build_type.capitalize()} --stacktrace""", shell=True, check=True, cwd=project_root)
66+
67+
subprocess.run(f"""{gradle_commands} \
6668
bundle{flavor.capitalize()}{build_type.capitalize()} --stacktrace""", shell=True, check=True, cwd=project_root)
6769

6870
apk_output_dir = os.path.join(project_root, f'app/build/outputs/apk/{flavor}/{build_type}')

0 commit comments

Comments
 (0)