-keep class com.cocos.game.**{ *; }
-keep class tech.sud.runtime.**{ *; }
-keep class tech.sud.gip.core.**{ *; }
-keep class com.unity3d.** { *; }
-keep class tech.sud.mgp.engine.hub.real.unity.running.UnityGameCustomCommandHandler { *; }
# java.nio.file.* usage which cannot be used at runtime. Animal sniffer annotation.
-dontwarn okio.Okio
# JDK 7-only method which is @hide on Android. Animal sniffer annotation.
-dontwarn okio.DeflaterSink

-keep class tech.sud.gip.asr.base.BaseRealSudASRImpl { *; }
-keep class tech.sud.gip.asr.base.model.InitASRParamModel { *; }
-keep class tech.sud.gip.base.ThreadUtils { *; }
-keep class tech.sud.gip.logger.SudLogger { *; }
-keep class tech.sud.gip.asr.base.utils.ByteArrayBlockingQueue { *; }
-keep class tech.sud.logger.LogUtils { public *; }

# ZIP库的混淆规则
# 保留 zip 解压核心类及其反射依赖
-keep class org.apache.commons.sudcompress.archivers.zip.** { *; }
-keep class org.apache.commons.sudcompress.archivers.ArchiveEntry { *; }
-keep class org.apache.commons.sudcompress.archivers.ArchiveInputStream { *; }

# 如果你还使用了 tar/gz/bz2 等格式，可逐个保留：
-keep class org.apache.commons.sudcompress.compressors.gzip.** { *; }

# 保留枚举（必要时）
-keepclassmembers enum org.apache.commons.** {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# 保留了SudMGP类
-keep class tech.sud.mgp.core.**{ *; }

-keep class tech.sud.base.utils.** { *; }








-keep class tech.sud.runtime.launcherInterface.*
-keep class tech.sud.runtime.launcherInterface.**
-keep class tech.sud.runtime.launcherInterface.INativePlayer$INativeInterface {
    *;
}

-keep class tech.sud.runtime.launcherInterface.ISudNativeLogListener {
    *;
}

-keepclassmembers class tech.sud.runtime.core.AndroidNativePlayer {
    public java.lang.Object emit(int, int, int, java.lang.String);
}

-keepclassmembers class tech.sud.runtime.core.NativeLogHandler {
    public void onLog(int, int, java.lang.String, java.lang.String, java.lang.String);
}

-keep class tech.sud.runtime.component.websocket.WebSocket {
   public <init>();
   public void open(java.lang.String, long);
   public void send(java.lang.String);
   public void send(byte[]);
   public void close();
   public void destroy();
}

-keep class tech.sud.runtime.component.file.LocalStorage {
   public <init>(java.lang.String);
   public java.lang.String getItemKeyList();
   public void setItem(java.lang.String, java.lang.String);
   public java.lang.String getItem(java.lang.String);
   public void removeItem(java.lang.String);
   public void clear();
}

-keep class tech.sud.runtime.component.file.FileOperation {
    public static float getMediaDuration(java.lang.String);
    public static void saveImageDataToAlbum(java.lang.String, byte[]);
}

-keep class tech.sud.runtime.component.file.SQLiteDBHelper {
   public *;
}

-keepclassmembers class tech.sud.runtime.component.label.TextBitmap {
   public *;
}




-keep class tech.sud.runtime.launcherInterface.*
-keep class tech.sud.runtime.launcherInterface.**
-keep class tech.sud.runtime.launcherInterface.INativePlayer$INativeInterface {
    *;
}

-keep class tech.sud.runtime.launcherInterface.ISudNativeLogListener {
    *;
}

-keepclassmembers class tech.sud.runtime.core.AndroidNativePlayer {
    public java.lang.Object emit(int, int, int, java.lang.String);
}

-keepclassmembers class tech.sud.runtime.core.NativeLogHandler {
    public void onLog(int, int, java.lang.String, java.lang.String, java.lang.String);
}

-keep class tech.sud.runtime.component.websocket.WebSocket {
   public <init>();
   public void open(java.lang.String, long);
   public void send(java.lang.String);
   public void send(byte[]);
   public void close();
   public void destroy();
}

-keep class tech.sud.runtime.component.file.LocalStorage {
   public <init>(java.lang.String);
   public java.lang.String getItemKeyList();
   public void setItem(java.lang.String, java.lang.String);
   public java.lang.String getItem(java.lang.String);
   public void removeItem(java.lang.String);
   public void clear();
}

-keep class tech.sud.runtime.component.file.FileOperation {
    public static float getMediaDuration(java.lang.String);
    public static void saveImageDataToAlbum(java.lang.String, byte[]);
}

-keep class tech.sud.runtime.component.file.SQLiteDBHelper {
   public *;
}

-keepclassmembers class tech.sud.runtime.component.label.TextBitmap {
   public *;
}































-keep class tech.sud.runtime.launcherInterface.*
-keep class tech.sud.runtime.launcherInterface.**
-keep class tech.sud.runtime.launcherInterface.INativePlayer$INativeInterface {
    *;
}

-keep class tech.sud.runtime.launcherInterface.ISudNativeLogListener {
    *;
}

-keepclassmembers class tech.sud.runtime.core.AndroidNativePlayer {
    public java.lang.Object emit(int, int, int, java.lang.String);
}

-keepclassmembers class tech.sud.runtime.core.NativeLogHandler {
    public void onLog(int, int, java.lang.String, java.lang.String, java.lang.String);
}

-keep class tech.sud.runtime.component.websocket.WebSocket {
   public <init>();
   public void open(java.lang.String, long);
   public void send(java.lang.String);
   public void send(byte[]);
   public void close();
   public void destroy();
}

-keep class tech.sud.runtime.component.file.LocalStorage {
   public <init>(java.lang.String);
   public java.lang.String getItemKeyList();
   public void setItem(java.lang.String, java.lang.String);
   public java.lang.String getItem(java.lang.String);
   public void removeItem(java.lang.String);
   public void clear();
}

-keep class tech.sud.runtime.component.file.FileOperation {
    public static float getMediaDuration(java.lang.String);
    public static void saveImageDataToAlbum(java.lang.String, byte[]);
}

-keep class tech.sud.runtime.component.file.SQLiteDBHelper {
   public *;
}

-keepclassmembers class tech.sud.runtime.component.label.TextBitmap {
   public *;
}




-keep class tech.sud.runtime.launcherInterface.*
-keep class tech.sud.runtime.launcherInterface.**
-keep class tech.sud.runtime.launcherInterface.INativePlayer$INativeInterface {
    *;
}

-keep class tech.sud.runtime.launcherInterface.ISudNativeLogListener {
    *;
}

-keepclassmembers class tech.sud.runtime.core.AndroidNativePlayer {
    public java.lang.Object emit(int, int, int, java.lang.String);
}

-keepclassmembers class tech.sud.runtime.core.NativeLogHandler {
    public void onLog(int, int, java.lang.String, java.lang.String, java.lang.String);
}

-keep class tech.sud.runtime.component.websocket.WebSocket {
   public <init>();
   public void open(java.lang.String, long);
   public void send(java.lang.String);
   public void send(byte[]);
   public void close();
   public void destroy();
}

-keep class tech.sud.runtime.component.file.LocalStorage {
   public <init>(java.lang.String);
   public java.lang.String getItemKeyList();
   public void setItem(java.lang.String, java.lang.String);
   public java.lang.String getItem(java.lang.String);
   public void removeItem(java.lang.String);
   public void clear();
}

-keep class tech.sud.runtime.component.file.FileOperation {
    public static float getMediaDuration(java.lang.String);
    public static void saveImageDataToAlbum(java.lang.String, byte[]);
}

-keep class tech.sud.runtime.component.file.SQLiteDBHelper {
   public *;
}

-keepclassmembers class tech.sud.runtime.component.label.TextBitmap {
   public *;
}























