一份有用的Android 混淆规则
2017-03-16 13:05
204 查看
#指定压缩级别 -optimizationpasses 5 #不跳过非公共的库的类成员 -dontskipnonpubliclibraryclassmembers #不跳过非公共的库的类 -dontskipnonpubliclibraryclasses #混淆时采用的算法 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* #把混淆类中的方法名也混淆了 -useuniqueclassmembernames #优化时允许访问并修改有修饰符的类和类的成员 -allowaccessmodification #将文件来源重命名为“SourceFile”字符串 -renamesourcefileattribute SourceFile #保留行号 -keepattributes SourceFile,LineNumberTable #保持所有实现 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(); private *; public *; void set*(***); *** get*(); } #保持Parcelable不被混淆 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #-dontwarn com.google.gson.** #Fragment不需要在AndroidManifest.xml中注册,需要额外保护下 -keep public class * extends android.support.v4.app.Fragment -keep public class * extends android.app.Fragment #包名不混合大小写 -dontusemixedcaseclassnames #混淆时记录日志 -verbose #关闭预校验 -dontpreverify #不优化输入的类文件 -dontoptimize #保护注解 -keepattributes *Annotation* #保持所有拥有本地方法的类名及本地方法名 -keepclasseswithmembernames class * { native <methods>; } #保持自定义View的get和set相关方法 -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } #保持Activity中View及其子类入参的方法 -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } #枚举 -keepclassmembers enum * { **[] $VALUES; public *; } #Parcelable -keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator CREATOR; } #R文件的静态成员 -keepclassmembers class **.R$* { public static <fields>; } -dontwarn android.support.** #keep相关注解 -keep class android.support.annotation.Keep -keep @android.support.annotation.Keep class * {*;} -keepclasseswithmembers class * { @android.support.annotation.Keep <methods>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <fields>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <init>(...); } #retrofit 混淆 -dontnote retrofit2.Platform -dontnote retrofit2.Platform$IOS$MainThreadExecutor -dontwarn retrofit2.Platform$Java8 -keepattributes Signature -keepattributes Exceptions -dontwarn okio.** #Picasso 混淆 -dontwarn com.squareup.okhttp.** #alipay -keep class com.alipay.android.app.IAlixPay{*;} -keep class com.alipay.android.app.IAlixPay$Stub{*;} -keep class com.alipay.android.app.IRemoteServiceCallback{*;} -keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;} -keep class com.alipay.sdk.app.PayTask{ public *;} -keep class com.alipay.sdk.app.AuthTask{ public *;} -dontwarn android.net.** -keep class android.net.SSLCertificateSocketFactory{*;}
相关文章推荐
- Android代码混淆之混淆规则
- AndroidStudio项目第三方jar混淆规则
- Android常用三方库混淆规则整理(小结)
- Android代码混淆之混淆规则
- Android中jsoup的混淆规则
- Android代码混淆之混淆规则
- Android代码混淆之混淆规则
- Android 混淆 (不定期完善第三方混淆规则)
- Android编译混淆打包可能会有用的东西
- Android混淆规则记录
- Android代码混淆之混淆规则
- Android代码混淆之混淆规则
- 整理Android最全的混淆规则大全(最新的开源框架混淆)
- Android代码混淆规则以及使用
- Android 如何写混淆规则
- Android代码混淆之混淆规则
- Android代码混淆之混淆规则
- Android代码混淆之混淆规则
- 【转】 Android代码混淆之混淆规则
- Android混淆规则