Files
Flutter_Shell/android/app/proguard-rules.pro
2026-05-18 13:36:54 +07:00

127 lines
3.8 KiB
Prolog
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================
# 代码混淆和加固配置
# ============================================
# 优化配置
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
# 移除日志减少APK大小提高安全性
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
public static *** i(...);
public static *** w(...);
public static *** e(...);
public static *** println(...);
}
# ============================================
# OpenIM SDK混淆规则
# ============================================
-keep class io.openim.** { *; }
-keep class open_im_sdk.** { *; }
-keep class open_im_sdk_callback.** { *; }
# ============================================
# Flutter相关(必须保留)
# ============================================
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class io.flutter.embedding.** { *; }
# Flutter Engine
-keep class io.flutter.embedding.engine.** { *; }
-keep class io.flutter.plugin.common.** { *; }
# ============================================
# 保持所有native方法
# ============================================
-keepclasseswithmembernames class * {
native <methods>;
}
# ============================================
# 保持所有枚举
# ============================================
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# ============================================
# 保持所有Serializable类
# ============================================
-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();
}
# ============================================
# 保持反射使用的类
# ============================================
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes EnclosingMethod
-keepattributes InnerClasses
-keepattributes Exceptions
# ============================================
# 保持Parcelable
# ============================================
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
}
# ============================================
# 保持R类资源类
# ============================================
-keepclassmembers class **.R$* {
public static <fields>;
}
# ============================================
# 混淆配置(提高安全性)
# ============================================
# 混淆类名
-keepnames class * extends android.app.Activity
-keepnames class * extends android.app.Application
-keepnames class * extends android.app.Service
-keepnames class * extends android.content.BroadcastReceiver
-keepnames class * extends android.content.ContentProvider
# 保持MainActivity应用入口
-keep class io.openim.flutter.openim.MainActivity { *; }
# ============================================
# 防止反编译(增强加固)
# ============================================
# 移除行号信息(提高安全性,崩溃日志可通过符号文件还原)
-keepattributes SourceFile
-renamesourcefileattribute SourceFile
# 移除调试信息
-assumenosideeffects class * {
public static *** print*(...);
public static *** println*(...);
}
# 混淆类名和包名(增强安全性)
-repackageclasses ''
-flattenpackagehierarchy ''
# 优化配置(增强混淆效果)
-optimizationpasses 5
-allowaccessmodification
-dontpreverify
# 移除未使用的代码
-dontwarn **