mirror of
https://github.com/izzy2lost/Ghostship.git
synced 2026-03-10 11:52:18 -07:00
78 lines
2.4 KiB
Prolog
78 lines
2.4 KiB
Prolog
# Ghostship Android ProGuard Rules
|
|
|
|
# Keep SDL classes - critical for native integration
|
|
-keep class org.libsdl.app.** { *; }
|
|
|
|
# Keep all native methods and JNI callbacks
|
|
-keepclasseswithmembernames class * {
|
|
native <methods>;
|
|
}
|
|
|
|
# Keep MainActivity and its native methods
|
|
-keep class com.ghostship.android.MainActivity {
|
|
public static java.lang.String getSaveDir();
|
|
public static void waitForSetupFromNative();
|
|
public native void attachController();
|
|
public native void detachController();
|
|
public native void setButton(int, boolean);
|
|
public native void setCameraState(int, float);
|
|
public native void setAxis(int, short);
|
|
}
|
|
|
|
# Keep DialogActivity
|
|
-keep class com.ghostship.android.DialogActivity { *; }
|
|
|
|
# Keep ControllerButtons constants
|
|
-keep class com.ghostship.android.ControllerButtons { *; }
|
|
|
|
# Keep DocumentFile for SAF
|
|
-keep class androidx.documentfile.provider.DocumentFile { *; }
|
|
|
|
# Keep all classes that might be accessed via JNI
|
|
-keep class * {
|
|
public static <methods>;
|
|
public static <fields>;
|
|
}
|
|
|
|
# Keep enums - often used by native code
|
|
-keepclassmembers enum * {
|
|
public static **[] values();
|
|
public static ** valueOf(java.lang.String);
|
|
}
|
|
|
|
# Keep Serializable classes
|
|
-keepclassmembers class * implements java.io.Serializable {
|
|
static final long serialVersionUID;
|
|
private static final java.io.ObjectStreamField[] serialPersistentFields;
|
|
private void writeObject(java.io.ObjectOutputStream);
|
|
private void readObject(java.io.ObjectInputStream);
|
|
java.lang.Object writeReplace();
|
|
java.lang.Object readResolve();
|
|
}
|
|
|
|
# Less aggressive optimization for native apps
|
|
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*,!code/removal/advanced,!code/removal/simple
|
|
-optimizationpasses 3
|
|
-allowaccessmodification
|
|
-dontpreverify
|
|
|
|
# Don't remove logging completely - keep error logs for crash reports
|
|
-assumenosideeffects class android.util.Log {
|
|
public static boolean isLoggable(java.lang.String, int);
|
|
public static int v(...);
|
|
public static int i(...);
|
|
public static int w(...);
|
|
public static int d(...);
|
|
}
|
|
|
|
# Keep line numbers and source file for crash reports
|
|
-keepattributes SourceFile,LineNumberTable,*Annotation*,Signature
|
|
|
|
# Rename source file attribute
|
|
-renamesourcefileattribute SourceFile
|
|
|
|
# Don't warn about missing classes that might be platform-specific
|
|
-dontwarn javax.**
|
|
-dontwarn java.awt.**
|
|
-dontwarn org.slf4j.**
|