127 lines
3.8 KiB
Prolog
127 lines
3.8 KiB
Prolog
# ============================================
|
||
# 代码混淆和加固配置
|
||
# ============================================
|
||
|
||
# 优化配置
|
||
-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 **
|