|
| 1 | +-dontobfuscate |
| 2 | + |
1 | 3 | ########## BASELINE / ATTRIBUTES ########## |
2 | 4 | # Core attrs (serialization/DI/reflective access often rely on these) |
3 | 5 | -keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod,MethodParameters,Record |
|
76 | 78 | void set*(***); |
77 | 79 | } |
78 | 80 |
|
79 | | -# Converters / Deserializers |
80 | | --keep class org.session.libsession.snode.model.RetrieveMessageConverter { public <init>(); public *; } |
81 | | - |
82 | 81 | ########## 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 | | -} |
102 | 82 |
|
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 | | -} |
109 | 83 |
|
110 | 84 | ########## WEBRTC / CHROMIUM JNI ########## |
111 | 85 | # WebRTC public Java APIs (kept for JNI_OnLoad registration) |
|
125 | 99 | -keep class org.jni_zero.** { *; } |
126 | 100 | -keepnames class org.jni_zero.** |
127 | 101 |
|
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 | | - |
158 | 102 | ########## EMOJI SEARCH (JACKSON / POLYMORPHIC) ########## |
159 | 103 | # Keep names if @JsonTypeInfo uses CLASS/MINIMAL_CLASS |
160 | 104 | -keepnames class org.thoughtcrime.securesms.database.model.** |
|
166 | 110 | # No-arg contructors required at runtime for these sealed subclasses |
167 | 111 | -keepclassmembers class org.session.libsession.messaging.messages.Destination$ClosedGroup { <init>(); } |
168 | 112 | -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>(); } |
171 | 113 | -keepclassmembers class org.session.libsession.messaging.messages.Destination$OpenGroup { <init>(); } |
172 | 114 | -keepclassmembers class org.session.libsession.messaging.messages.Destination$OpenGroupInbox { <init>(); } |
173 | 115 |
|
|
0 commit comments