混淆規則

最新更新:2022-11-29
#指定要執行的優化遍數 -optimizationpasses 5 #混淆時不生成大小寫混合的類名,即全部小寫 -dontusemixedcaseclassnames #指定不忽略非公共的庫的類 -dontskipnonpubliclibraryclasses #指定不忽略包可見的庫類成員(字段和方法)。 -dontskipnonpubliclibraryclassmembers #把混淆類中的方法名也混淆了,為需要混淆的類生成唯一的混淆名稱 -useuniqueclassmembernames #關閉預驗證 -dontpreverify # 打印過程日誌,在處理期間輸出更多信息 -verbose #指定優化算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #關閉優化 -dontoptimize #擴大類和類成員的訪問權限,使優化時允許訪問並修改有修飾符的類和類的成員 -allowaccessmodification #保留那些需要被保留的方法的參數名字 -keepparameternames #四大組件不被混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider #將混淆堆棧跟踪文件來源重命名為“SourceFile” -renamesourcefileattribute SourceFile #保護註解。如果代碼依賴註釋,則可能需要保留註釋 -keepattributes *Annotation* #保留源文件名,變量名和行號,以產生有用的混淆堆棧跟踪 -keepattributes SourceFile,LineNumberTable #保留異常,內部類/接口,泛型,Deprecated不推薦的方法 -keepattributes Exceptions,InnerClasses,Signature,Deprecated,EnclosingMethod #保留R文件的靜態成員,以使調用代碼通過自省訪問這些字段 -keepclassmembers class **.R$* { public static <fields>; } #Engagelab -keep class com.engagelab.** {*;} -dontwarn com.engagelab.** #google -keep class com.google.**{*;} -dontwarn com.google.** #huawei -keep class com.google.**{*;} -dontwarn com.google.** #xiaomi -keep class com.xiaomi.** {*;} -dontwarn com.xiaomi.** #meizu,如果使用R8混淆,可能會導致拿不到token -keep class com.meizu.** {*;} -dontwarn com.meizu.** #oppo -keep class com.heytap.** {*;} -dontwarn com.heytap.** #vivo -keep class com.vivo.** {*;} -dontwarn com.vivo.**
          #指定要執行的優化遍數
-optimizationpasses 5

#混淆時不生成大小寫混合的類名,即全部小寫
-dontusemixedcaseclassnames

#指定不忽略非公共的庫的類
-dontskipnonpubliclibraryclasses

#指定不忽略包可見的庫類成員(字段和方法)。
-dontskipnonpubliclibraryclassmembers

#把混淆類中的方法名也混淆了,為需要混淆的類生成唯一的混淆名稱
-useuniqueclassmembernames

#關閉預驗證
-dontpreverify

# 打印過程日誌,在處理期間輸出更多信息
-verbose

#指定優化算法
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

#關閉優化
-dontoptimize

#擴大類和類成員的訪問權限,使優化時允許訪問並修改有修飾符的類和類的成員
-allowaccessmodification

#保留那些需要被保留的方法的參數名字
-keepparameternames

#四大組件不被混淆
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

#將混淆堆棧跟踪文件來源重命名為“SourceFile”
-renamesourcefileattribute SourceFile

#保護註解。如果代碼依賴註釋,則可能需要保留註釋
-keepattributes *Annotation*

#保留源文件名,變量名和行號,以產生有用的混淆堆棧跟踪
-keepattributes SourceFile,LineNumberTable

#保留異常,內部類/接口,泛型,Deprecated不推薦的方法
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,EnclosingMethod

#保留R文件的靜態成員,以使調用代碼通過自省訪問這些字段
-keepclassmembers class **.R$* {
   public static <fields>;
}

#Engagelab
-keep class com.engagelab.** {*;}
-dontwarn com.engagelab.**

#google
-keep class com.google.**{*;}
-dontwarn com.google.**

#huawei
-keep class com.google.**{*;}
-dontwarn com.google.**

#xiaomi
-keep class com.xiaomi.** {*;}
-dontwarn com.xiaomi.**

#meizu,如果使用R8混淆,可能會導致拿不到token
-keep class com.meizu.** {*;}
-dontwarn com.meizu.**

#oppo
-keep class com.heytap.** {*;}
-dontwarn com.heytap.**

#vivo
-keep class com.vivo.** {*;}
-dontwarn com.vivo.**

        
此代碼塊在浮窗中顯示
在文档中心打开