# ============================================ # 代码混淆和加固配置 # ============================================ # 优化配置 -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 ; } # ============================================ # 保持所有枚举 # ============================================ -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 ; } # ============================================ # 混淆配置(提高安全性) # ============================================ # 混淆类名 -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 **