901 lines
24 KiB
Prolog
901 lines
24 KiB
Prolog
# Add project specific ProGuard rules here.
|
||
# By default, the flags in this file are appended to flags specified
|
||
# in E:\work\android_sdk\android-sdk-windows/tools/proguard/proguard-android.txt
|
||
# You can edit the include path and order by changing the proguardFiles
|
||
# directive in build.gradle.
|
||
#
|
||
# For more details, see
|
||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||
|
||
# Add any project specific keep options here:
|
||
|
||
# If your project uses WebView with JS, uncomment the following
|
||
# and specify the fully qualified class name to the JavaScript interface
|
||
# class:
|
||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||
# public *;
|
||
#}
|
||
|
||
|
||
-keep class com.mob.**{*;}
|
||
-keep class cn.smssdk.**{*;}
|
||
-dontwarn com.mob.**
|
||
-dontwarn cn.smssdk.**
|
||
|
||
|
||
-ignorewarnings
|
||
-keep class javax.ws.rs.** { *; }
|
||
-dontwarn com.alibaba.fastjson.**
|
||
-keep class com.alibaba.fastjson.** { *; }
|
||
|
||
#环信
|
||
-keep class org.xmlpull.** {*;}
|
||
-keep class com.hyphenate.** {*;}
|
||
-keep class com.hyphenate.chat.** {*;}
|
||
-dontwarn com.hyphenate.**
|
||
-keep class org.jivesoftware.** {*;}
|
||
-keep class org.apache.** {*;}
|
||
#2.0.9后加入语音通话功能,如需使用此功能的api,加入以下keep
|
||
-keep class net.java.sip.** {*;}
|
||
-keep class org.webrtc.voiceengine.** {*;}
|
||
-keep class org.bitlet.** {*;}
|
||
-keep class org.slf4j.** {*;}
|
||
-keep class ch.imvs.** {*;}
|
||
-keep class com.superrtc.** { *; }
|
||
|
||
|
||
#-------------- okhttp3 start-------------
|
||
# OkHttp3
|
||
# https://github.com/square/okhttp
|
||
# okhttp
|
||
-keep class com.squareup.okhttp.* { *; }
|
||
-keep interface com.squareup.okhttp.** { *; }
|
||
-dontwarn com.squareup.okhttp.**
|
||
|
||
# okhttp 3
|
||
-keepattributes Signature
|
||
-keepattributes *Annotation*
|
||
-keep class okhttp3.** { *; }
|
||
-keep interface okhttp3.** { *; }
|
||
-dontwarn okhttp3.**
|
||
|
||
# Okio
|
||
-dontwarn com.squareup.**
|
||
-dontwarn okio.**
|
||
-keep public class org.codehaus.* { *; }
|
||
-keep public class java.nio.* { *; }
|
||
#----------okhttp end--------------
|
||
|
||
|
||
-keep class org.greenrobot.greendao.**{*;}
|
||
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
|
||
public static java.lang.String TABLENAME;
|
||
}
|
||
-keep class **$Properties
|
||
|
||
|
||
|
||
-dontwarn javax.annotation.**
|
||
-dontwarn javax.inject.**
|
||
# OkHttp3
|
||
-dontwarn okhttp3.logging.**
|
||
-keep class okhttp3.internal.**{*;}
|
||
-dontwarn okio.**
|
||
# Retrofit
|
||
-dontwarn retrofit2.**
|
||
-keep class retrofit2.** { *; }
|
||
# RxJava RxAndroid
|
||
-dontwarn sun.misc.**
|
||
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
|
||
long producerIndex;
|
||
long consumerIndex;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
|
||
rx.internal.util.atomic.LinkedQueueNode producerNode;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
|
||
rx.internal.util.atomic.LinkedQueueNode consumerNode;
|
||
}
|
||
|
||
# Gson
|
||
-keep class com.google.gson.stream.** { *; }
|
||
-keepattributes EnclosingMethod
|
||
|
||
|
||
##Glide
|
||
-dontwarn com.bumptech.glide.**
|
||
-keep class com.bumptech.glide.**{*;}
|
||
-keep public class * implements com.bumptech.glide.module.GlideModule
|
||
-keep public class * extends com.bumptech.glide.AppGlideModule
|
||
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
|
||
**[] $VALUES;
|
||
public *;
|
||
}
|
||
-keep class jp.wasabeef.glide.transformations.**
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
############ --------以下通用--------###########
|
||
#指定代码的压缩级别
|
||
-optimizationpasses 5
|
||
|
||
#包明不混合大小写
|
||
|
||
-dontusemixedcaseclassnames
|
||
|
||
#不去忽略非公共的库类
|
||
|
||
-dontskipnonpubliclibraryclasses
|
||
|
||
#优化 不优化输入的类文件
|
||
|
||
-dontoptimize
|
||
|
||
#预校验
|
||
|
||
-dontpreverify
|
||
|
||
#混淆时是否记录日志
|
||
|
||
-verbose
|
||
|
||
# 混淆时所采用的算法
|
||
|
||
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
|
||
|
||
# 保持哪些类不被混淆
|
||
|
||
-keep public class * extends android.app.Fragment
|
||
|
||
-keep public class * extends android.app.Activity
|
||
|
||
-keep public class * extends androidx.appcompat.app.AppCompatActivity
|
||
|
||
-keep public class * extends android.app.Application
|
||
|
||
-keep public class * extends android.app.Service
|
||
|
||
-keep public class * extends android.content.BroadcastReceiver
|
||
|
||
-keep public class * extends android.content.ContentProvider
|
||
|
||
-keep public class * extends android.app.backup.BackupAgentHelper
|
||
|
||
-keep public class * extends android.preference.Preference
|
||
|
||
-keep public class com.android.vending.licensing.ILicensingService
|
||
|
||
#如果有引用v4包可以添加下面这行
|
||
|
||
-keep public class * extends androidx.fragment.app.Fragment
|
||
|
||
|
||
#忽略警告
|
||
|
||
-ignorewarnings
|
||
|
||
##记录生成的日志数据,gradle build时在本项目根目录输出##
|
||
|
||
#apk 包内所有 class 的内部结构
|
||
|
||
#-dump proguard/class_files.txt
|
||
|
||
#未混淆的类和成员
|
||
|
||
-printseeds proguard/seeds.txt
|
||
|
||
#列出从 apk 中删除的代码
|
||
|
||
-printusage proguard/unused.txt
|
||
|
||
#混淆前后的映射
|
||
|
||
-printmapping proguard/mapping.txt
|
||
|
||
########记录生成的日志数据,gradle build时 在本项目根目录输出-end######
|
||
|
||
#如果引用了v4或者v7包
|
||
|
||
-dontwarn android.support.**
|
||
|
||
####混淆保护自己项目的部分代码以及引用的第三方jar包library-end####
|
||
|
||
#保持自定义控件类不被混淆
|
||
|
||
-keepclassmembers class * extends android.app.Activity
|
||
|
||
-keep public class * extends android.view.View
|
||
|
||
#保持 Parcelable 不被混淆
|
||
|
||
-keep class * implements android.os.Parcelable
|
||
|
||
#保持 Serializable 不被混淆
|
||
|
||
-keepnames class * implements java.io.Serializable
|
||
|
||
#保持 Serializable 不被混淆并且enum 类也不被混淆
|
||
|
||
-keepclassmembers class * implements java.io.Serializable
|
||
|
||
#保持枚举 enum 类不被混淆
|
||
|
||
#-keepclassmembers enum *
|
||
|
||
|
||
|
||
#不混淆资源类
|
||
|
||
-keepclassmembers class **.R$*
|
||
|
||
|
||
# 针对android-support-v4.jar的解决方案androidx.fragment.app.Fragment
|
||
|
||
-dontwarn android.support.v4.**
|
||
#
|
||
-keep class android.support.v4.** { *; }
|
||
#
|
||
-keep interface android.support.v4.app.** { *; }
|
||
#
|
||
-keep public class * extends android.support.v4.**
|
||
#
|
||
-keep public class * extends android.app.Fragmen
|
||
|
||
#talkingdata START
|
||
-dontwarn com.tendcloud.tenddata.**
|
||
-keep class com.tendcloud.** {*;}
|
||
-keep public class com.tendcloud.tenddata.** { public protected *;}
|
||
-keepclassmembers class com.tendcloud.tenddata.**{
|
||
public void *(***);
|
||
}
|
||
-keep class com.talkingdata.sdk.TalkingDataSDK {public *;}
|
||
-keep class com.apptalkingdata.** {*;}
|
||
#talkingdata END
|
||
|
||
#talkingdata 广告 START
|
||
-keep class com.talkingdata.sdk.** {*;}
|
||
-keep class com.tendcloud.** {*;}
|
||
-keep public class com.tendcloud.** { public protected *;}
|
||
#talkingdata END
|
||
|
||
-dontwarn com.cmic.sso.sdk.**
|
||
-keep public class com.cmic.sso.sdk.**{*;}
|
||
-keep class cn.com.chinatelecom.account.api.**{*;}
|
||
-keep class com.netease.nis.quicklogin.entity.**{*;}
|
||
-keep class com.netease.nis.quicklogin.listener.**{*;}
|
||
-keep class com.netease.nis.quicklogin.QuickLogin{
|
||
public <methods>;
|
||
public <fields>;
|
||
}
|
||
-keep class com.netease.nis.quicklogin.helper.UnifyUiConfig{*;}
|
||
-keep class com.netease.nis.quicklogin.helper.UnifyUiConfig$Builder{
|
||
public <methods>;
|
||
public <fields>;
|
||
}
|
||
-keep class com.netease.nis.quicklogin.utils.LoginUiHelper$CustomViewListener{
|
||
public <methods>;
|
||
public <fields>;
|
||
}
|
||
-dontwarn com.sdk.**
|
||
-keep class com.sdk.** { *;}
|
||
|
||
#阿里云一键登录
|
||
-keep class cn.com.chinatelecom.** {*;}
|
||
-keep class com.unicom.xiaowo.login.** {*;}
|
||
-keep class com.cmic.sso.sdk.** {*;}
|
||
-keep class com.mobile.auth.** {*;}
|
||
-keep class com.nirvana.** {*;}
|
||
-keep class com.alibaba.fastjson.** {*;}
|
||
-keepclasseswithmembernames class * {
|
||
native <methods>;
|
||
}
|
||
-keepclassmembers class * {
|
||
@android.support.annotation.Keep <fields>;
|
||
@android.support.annotation.Keep <methods>;
|
||
}
|
||
-keep @android.support.annotation.Keep class * {*;}
|
||
-dontwarn
|
||
|
||
# --- uc crash start ----(如果集成了UC crash收集组件需要增加这个配置)
|
||
-keep class com.uc.crashsdk.** { *; }
|
||
-keep interface com.uc.crashsdk.** { *; }
|
||
# --- uc crash end ---
|
||
-keepattributes Signature
|
||
-keepattributes *Annotation*
|
||
#阿里云一键登录 END
|
||
|
||
#阿里ARoute
|
||
-keep public class com.alibaba.android.arouter.routes.**{*;}
|
||
-keep public class com.alibaba.android.arouter.facade.**{*;}
|
||
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
|
||
|
||
# If you use the byType method to obtain Service, add the following rules to protect the interface:
|
||
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
|
||
|
||
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
|
||
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider
|
||
#阿里ARoute END
|
||
|
||
#MobSDK
|
||
-keep class com.mob.**{*;}
|
||
|
||
-dontwarn com.mob.**
|
||
#MobSDK END
|
||
|
||
#ZEGO
|
||
-keep class **.zego.**{*;}
|
||
#ZEGO END
|
||
|
||
#不需混淆的Android类
|
||
-keep public class * extends android.app.Fragment
|
||
-keep public class * extends android.app.Activity
|
||
-keep public class * extends android.app.Application
|
||
-keep public class * extends android.app.Service
|
||
-keep public class * extends android.content.BroadcastReceiver
|
||
-keep public class * extends android.preference.Preference
|
||
-keep public class * extends android.content.ContentProvider
|
||
-keep public class * extends android.support.v4.**
|
||
-keep public class * extends android.support.annotation.**
|
||
-keep public class * extends android.support.v7.**
|
||
-keep public class * extends android.app.backup.BackupAgentHelper
|
||
-keep public class * extends android.preference.Preference
|
||
-keep public class * extends android.view.View
|
||
-keep public class com.android.vending.licensing.ILicensingService
|
||
-keep class android.support.** {*;}
|
||
|
||
#support-v4包
|
||
-dontwarn android.support.v4.**
|
||
-keep class android.support.v4.app.** { *; }
|
||
-keep interface android.support.v4.app.** { *; }
|
||
-keep class android.support.v4.** { *; }
|
||
|
||
#support-v7包
|
||
-dontwarn android.support.v7.**
|
||
-keep class android.support.v7.internal.** { *; }
|
||
-keep interface android.support.v7.internal.** { *; }
|
||
-keep class android.support.v7.** { *; }
|
||
|
||
#support design
|
||
-dontwarn android.support.design.**
|
||
-keep class android.support.design.** { *; }
|
||
-keep interface android.support.design.** { *; }
|
||
-keep public class android.support.design.R$* { *; }
|
||
|
||
#避免混淆自定义控件类的 get/set 方法和构造函数
|
||
-keep public class * extends android.view.View{
|
||
*** get*();
|
||
void set*(***);
|
||
public <init>(android.content.Context);
|
||
public <init>(android.content.Context, android.util.AttributeSet);
|
||
public <init>(android.content.Context, android.util.AttributeSet, int);
|
||
}
|
||
|
||
#关闭 Log日志
|
||
-assumenosideeffects class android.util.Log {
|
||
public static boolean isLoggable(java.lang.String, int);
|
||
public static int v(...);
|
||
public static int i(...);
|
||
public static int w(...);
|
||
public static int d(...);
|
||
public static int e(...);
|
||
}
|
||
|
||
#避免资源混淆
|
||
-keep class **.R$* {*;}
|
||
|
||
#避免layout中onclick方法(android:onclick="onClick")混淆
|
||
-keepclassmembers class * extends android.app.Activity{
|
||
public void *(android.view.View);
|
||
}
|
||
|
||
#避免回调函数 onXXEvent 混淆
|
||
-keepclassmembers class * {
|
||
void *(*Event);
|
||
}
|
||
|
||
#避免混淆枚举类
|
||
-keepclassmembers enum * {
|
||
public static **[] values();
|
||
public static ** valueOf(java.lang.String);
|
||
}
|
||
|
||
#Natvie 方法不混淆
|
||
-keepclasseswithmembernames class * {
|
||
native <methods>;
|
||
}
|
||
|
||
#避免Parcelable混淆
|
||
-keep class * implements android.os.Parcelable {
|
||
public static final android.os.Parcelable$Creator *;
|
||
}
|
||
|
||
#避免Serializable接口的子类中指定的某些成员变量和方法混淆
|
||
-keepclassmembers class * implements java.io.Serializable {
|
||
static final long serialVersionUID;
|
||
private static final java.io.ObjectStreamField[] serialPersistentFields;
|
||
!static !transient <fields>;
|
||
private void writeObject(java.io.ObjectOutputStream);
|
||
private void readObject(java.io.ObjectInputStream);
|
||
java.lang.Object writeReplace();
|
||
java.lang.Object readResolve();
|
||
}
|
||
|
||
#WebView混淆配置
|
||
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||
public *;
|
||
}
|
||
-keepclassmembers class * extends android.webkit.webViewClient {
|
||
public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
|
||
public boolean *(android.webkit.WebView, java.lang.String);
|
||
}
|
||
-keepclassmembers class * extends android.webkit.webViewClient {
|
||
public void *(android.webkit.webView, jav.lang.String);
|
||
}
|
||
|
||
#ButterKnife混淆配置
|
||
-keep class butterknife.** { *; }
|
||
-dontwarn butterknife.internal.**
|
||
-keep class **$$ViewBinder { *; }
|
||
-keepclasseswithmembernames class * {
|
||
@butterknife.* <fields>;
|
||
}
|
||
-keepclasseswithmembernames class * {
|
||
@butterknife.* <methods>;
|
||
}
|
||
|
||
#OkHttp3混淆配置
|
||
-dontwarn com.squareup.okhttp3.**
|
||
-keep class com.squareup.okhttp3.** { *;}
|
||
-dontwarn okio.**
|
||
|
||
#Retrofit2混淆配置
|
||
-dontwarn retrofit2.**
|
||
-keep class retrofit2.** { *; }
|
||
-keepattributes Signature
|
||
-keepattributes Exceptions
|
||
|
||
#RxJava、RxAndroid混淆配置
|
||
-dontwarn sun.misc.**
|
||
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
|
||
long producerIndex;
|
||
long consumerIndex;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
|
||
rx.internal.util.atomic.LinkedQueueNode producerNode;
|
||
}
|
||
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
|
||
rx.internal.util.atomic.LinkedQueueNode consumerNode;
|
||
}
|
||
|
||
#Glide混淆配置
|
||
#Glide 3
|
||
-keep public class * implements com.bumptech.glide.module.GlideModule
|
||
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
|
||
**[] $VALUES;
|
||
public *;
|
||
}
|
||
|
||
#Glide 4
|
||
-keep public class * implements com.bumptech.glide.module.AppGlideModule
|
||
-keep public class * implements com.bumptech.glide.module.LibraryGlideModule
|
||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
|
||
**[] $VALUES;
|
||
public *;
|
||
}
|
||
|
||
#Picasso混淆配置
|
||
-keep class com.parse.*{ *; }
|
||
-dontwarn com.parse.**
|
||
-dontwarn com.squareup.picasso.**
|
||
-keepclasseswithmembernames class * {
|
||
native <methods>;
|
||
}
|
||
|
||
#Fresco混淆配置
|
||
# Keep our interfaces so they can be used by other ProGuard rules.
|
||
# See http://sourceforge.net/p/proguard/bugs/466/
|
||
-keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip
|
||
-keep,allowobfuscation @interface com.facebook.soloader.DoNotOptimize
|
||
|
||
# Do not strip any method/class that is annotated with @DoNotStrip
|
||
-keep @com.facebook.common.internal.DoNotStrip class *
|
||
-keepclassmembers class * {
|
||
@com.facebook.common.internal.DoNotStrip *;
|
||
}
|
||
|
||
# Do not strip any method/class that is annotated with @DoNotOptimize
|
||
-keep @com.facebook.soloader.DoNotOptimize class *
|
||
-keepclassmembers class * {
|
||
@com.facebook.soloader.DoNotOptimize *;
|
||
}
|
||
|
||
# Keep native methods
|
||
-keepclassmembers class * {
|
||
native <methods>;
|
||
}
|
||
|
||
-dontwarn okio.**
|
||
-dontwarn com.squareup.okhttp.**
|
||
-dontwarn okhttp3.**
|
||
-dontwarn javax.annotation.**
|
||
-dontwarn com.android.volley.toolbox.**
|
||
-dontwarn com.facebook.infer.**
|
||
|
||
#Fastjson混淆配置
|
||
-dontwarn com.alibaba.fastjson.**
|
||
-keep class com.alibaba.fastjson.**{*; }
|
||
|
||
#Gson混淆配置
|
||
-keep class com.google.gson.** {*;}
|
||
-keep class com.google.**{*;}
|
||
-keep class sun.misc.Unsafe { *; }
|
||
-keep class com.google.gson.stream.** { *; }
|
||
-keep class com.google.gson.examples.android.model.** { *; }
|
||
|
||
#Banner混淆配置
|
||
-keep class com.youth.banner.** {
|
||
*;
|
||
}
|
||
|
||
# GreenDao混淆配置
|
||
#GreenDAO 2:
|
||
-keep class de.greenrobot.dao.** {*;}
|
||
-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
|
||
public static Java.lang.String TABLENAME;
|
||
}
|
||
-keep class **$Properties
|
||
|
||
#GreenDAO 3:
|
||
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
|
||
public static java.lang.String TABLENAME;
|
||
}
|
||
-keep class **$Properties
|
||
|
||
# If you do not use SQLCipher:
|
||
-dontwarn org.greenrobot.greendao.database.**
|
||
# If you do not use Rx:
|
||
-dontwarn rx.**
|
||
|
||
#百度定位混淆配置
|
||
-keep class vi.com.gdi.** { *; }
|
||
-keep public class com.baidu.** {*;}
|
||
-keep public class com.mobclick.** {*;}
|
||
-dontwarn com.baidu.mapapi.utils.*
|
||
-dontwarn com.baidu.platform.comapi.b.*
|
||
-dontwarn com.baidu.platform.comapi.map.*
|
||
|
||
#百度地图混淆配置
|
||
-keep class com.baidu.** {*;}
|
||
-keep class vi.com.** {*;}
|
||
-dontwarn com.baidu.**
|
||
|
||
#高徳地图混淆配置
|
||
-dontwarn com.amap.api.**
|
||
-dontwarn com.a.a.**
|
||
-dontwarn com.autonavi.**
|
||
-keep class com.amap.api.** {*;}
|
||
-keep class com.autonavi.** {*;}
|
||
-keep class com.a.a.** {*;}
|
||
|
||
#Bugly SDK
|
||
-dontwarn com.tencent.bugly.**
|
||
-keep public class com.tencent.bugly.**{*;}
|
||
-keep class android.support.**{*;}
|
||
|
||
#EventBus混淆配置
|
||
#EventBus 2:
|
||
-keepclassmembers class ** {
|
||
public void onEvent*(***);
|
||
}
|
||
|
||
# Only required if you use AsyncExecutor
|
||
-keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {
|
||
<init>(java.lang.Throwable);
|
||
}
|
||
|
||
#EventBus 3:
|
||
-keepattributes *Annotation*
|
||
-keepclassmembers class ** {
|
||
@org.greenrobot.eventbus.Subscribe <methods>;
|
||
}
|
||
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
|
||
|
||
# Only required if you use AsyncExecutor
|
||
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
|
||
<init>(java.lang.Throwable);
|
||
}
|
||
|
||
#友盟分享混淆配置
|
||
-dontshrink
|
||
-dontoptimize
|
||
-dontwarn com.google.android.maps.**
|
||
-dontwarn android.webkit.WebView
|
||
-dontwarn com.umeng.**
|
||
-dontwarn com.tencent.weibo.sdk.**
|
||
-dontwarn com.facebook.**
|
||
-keep public class javax.**
|
||
-keep public class android.webkit.**
|
||
-dontwarn android.support.v4.**
|
||
-keep enum com.facebook.**
|
||
-keepattributes Exceptions,InnerClasses,Signature
|
||
-keepattributes *Annotation*
|
||
-keepattributes SourceFile,LineNumberTable
|
||
|
||
-keep public interface com.facebook.**
|
||
-keep public interface com.tencent.**
|
||
-keep public interface com.umeng.socialize.**
|
||
-keep public interface com.umeng.socialize.sensor.**
|
||
-keep public interface com.umeng.scrshot.**
|
||
|
||
-keep public class com.umeng.socialize.* {*;}
|
||
|
||
-keep class com.facebook.**
|
||
-keep class com.facebook.** { *; }
|
||
-keep class com.umeng.scrshot.**
|
||
-keep public class com.tencent.** {*;}
|
||
-keep class com.umeng.socialize.sensor.**
|
||
-keep class com.umeng.socialize.handler.**
|
||
-keep class com.umeng.socialize.handler.*
|
||
-keep class com.umeng.weixin.handler.**
|
||
-keep class com.umeng.weixin.handler.*
|
||
-keep class com.umeng.qq.handler.**
|
||
-keep class com.umeng.qq.handler.*
|
||
-keep class UMMoreHandler{*;}
|
||
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
|
||
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
|
||
-keep class im.yixin.sdk.api.YXMessage {*;}
|
||
-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
|
||
-keep class com.tencent.mm.sdk.** {
|
||
*;
|
||
}
|
||
-keep class com.tencent.mm.opensdk.** {
|
||
*;
|
||
}
|
||
-keep class com.tencent.wxop.** {
|
||
*;
|
||
}
|
||
-keep class com.tencent.mm.sdk.** {
|
||
*;
|
||
}
|
||
-dontwarn twitter4j.**
|
||
-keep class twitter4j.** { *; }
|
||
|
||
-keep class com.tencent.** {*;}
|
||
-dontwarn com.tencent.**
|
||
-keep class com.kakao.** {*;}
|
||
-dontwarn com.kakao.**
|
||
-keep public class com.umeng.com.umeng.soexample.R$*{
|
||
public static final int *;
|
||
}
|
||
-keep public class com.linkedin.android.mobilesdk.R$*{
|
||
public static final int *;
|
||
}
|
||
-keepclassmembers enum * {
|
||
public static **[] values();
|
||
public static ** valueOf(java.lang.String);
|
||
}
|
||
|
||
-keep class com.tencent.open.TDialog$*
|
||
-keep class com.tencent.open.TDialog$* {*;}
|
||
-keep class com.tencent.open.PKDialog
|
||
-keep class com.tencent.open.PKDialog {*;}
|
||
-keep class com.tencent.open.PKDialog$*
|
||
-keep class com.tencent.open.PKDialog$* {*;}
|
||
-keep class com.umeng.socialize.impl.ImageImpl {*;}
|
||
-keep class com.sina.** {*;}
|
||
-dontwarn com.sina.**
|
||
-keep class com.alipay.share.sdk.** {
|
||
*;
|
||
}
|
||
|
||
-keepnames class * implements android.os.Parcelable {
|
||
public static final ** CREATOR;
|
||
}
|
||
|
||
-keep class com.linkedin.** { *; }
|
||
-keep class com.android.dingtalk.share.ddsharemodule.** { *; }
|
||
-keepattributes Signature
|
||
|
||
#友盟推送混淆配置
|
||
-dontwarn com.umeng.**
|
||
-dontwarn com.taobao.**
|
||
-dontwarn anet.channel.**
|
||
-dontwarn anetwork.channel.**
|
||
-dontwarn org.android.**
|
||
-dontwarn org.apache.thrift.**
|
||
-dontwarn com.xiaomi.**
|
||
-dontwarn com.huawei.**
|
||
-dontwarn com.meizu.**
|
||
|
||
-keepattributes *Annotation*
|
||
|
||
-keep class com.taobao.** {*;}
|
||
-keep class org.android.** {*;}
|
||
-keep class anet.channel.** {*;}
|
||
-keep class com.umeng.** {*;}
|
||
-keep class com.xiaomi.** {*;}
|
||
-keep class com.huawei.** {*;}
|
||
-keep class com.meizu.** {*;}
|
||
-keep class org.apache.thrift.** {*;}
|
||
|
||
-keep class com.alibaba.sdk.android.**{*;}
|
||
-keep class com.ut.**{*;}
|
||
-keep class com.ta.**{*;}
|
||
|
||
-keep public class **.R$*{
|
||
public static final int *;
|
||
}
|
||
|
||
#android 混淆打包报错Error java.lang.RuntimeException: Stub!??解决方案
|
||
-keep class org.apache.**{*;}
|
||
|
||
|
||
|
||
|
||
|
||
-keep class java.net.** { *; }
|
||
-keep class android.net.** { *; }
|
||
-keep class com.hln.xqipao.data.** { *; }
|
||
-keep class com.qpyy.libcommon.bean.** { *; }
|
||
-keep class com.qpyy.libcommon.event.** { *; }
|
||
-keep class com.qpyy.libcommon.api.** { *; }
|
||
-keep class com.qpyy.libcommon.http.** { *; }
|
||
-keep class com.qpyy.room.bean.** { *; }
|
||
-keep class com.qpyy.room.api.** { *; }
|
||
-keep class com.qpyy.module.index.bean.** { *; }
|
||
-keep class com.qpyy.module.index.api.** { *; }
|
||
-keep class com.qpyy.module.me.bean.** { *; }
|
||
-keep class com.qpyy.module.me.api.** { *; }
|
||
-keep class com.luck.picture.lib.entity.** { *; }
|
||
-keep class com.qpyy.module_news.bean.** { *; }
|
||
-keep class com.qpyy.module_news.api.** { *; }
|
||
|
||
#ShareSDK 混淆
|
||
-keep class cn.sharesdk.**{*;}
|
||
-keep class com.sina.**{*;}
|
||
-keep class **.R$* {*;}
|
||
-keep class **.R{*;}
|
||
-keep class com.mob.**{*;}
|
||
-dontwarn com.mob.**
|
||
-dontwarn cn.sharesdk.**
|
||
-dontwarn **.R$*
|
||
-keep class com.hln.game.grabmarbles.**{*;}
|
||
|
||
-keep class com.alibaba.sdk.android.oss.** { *; }
|
||
-dontwarn okio.**
|
||
-dontwarn org.apache.commons.codec.binary.**
|
||
|
||
|
||
-keep class com.tencent.mm.opensdk.** {
|
||
|
||
*;
|
||
|
||
}
|
||
|
||
-keep class com.tencent.wxop.** {
|
||
|
||
*;
|
||
|
||
}
|
||
|
||
-keep class com.tencent.mm.sdk.** {
|
||
|
||
*;
|
||
|
||
}
|
||
|
||
# 避免删除代码逻辑
|
||
-dontshrink
|
||
-dontoptimize
|
||
# 避免混淆 TUIKit
|
||
-keep class com.tencent.qcloud.** { *; }
|
||
-keep class com.tencent.imsdk.** { *; }
|
||
-keep class * implements com.tencent.qcloud.tuicore.interfaces.TUIInitializer {}
|
||
|
||
######################云刷脸混淆规则 faceverify-BEGIN#######################
|
||
####
|
||
#不混淆内部类
|
||
-keepattributes InnerClasses
|
||
|
||
#不混淆jni调用类
|
||
-keepclasseswithmembers class *{
|
||
native <methods>;
|
||
}
|
||
|
||
###################### faceverify-BEGIN ###########################
|
||
-ignorewarnings
|
||
-keep public class com.tencent.ytcommon.**{*;}
|
||
-keep class com.tencent.turingfd.sdk.mfa.TNative$aa { public *; }
|
||
-keep class com.tencent.turingfd.sdk.mfa.TNative$aa$bb { public *;}
|
||
-keep class com.tencent.turingcam.** {*;}
|
||
-keep class com.tencent.turingfd.** {*;}
|
||
|
||
-keep public class com.tencent.youtu.ytagreflectlivecheck.jni.**{*;}
|
||
-keep public class com.tencent.youtu.ytagreflectlivecheck.YTAGReflectLiveCheckInterface{
|
||
public <methods>;
|
||
}
|
||
-keep public class com.tencent.youtu.ytposedetect.jni.**{*;}
|
||
-keep public class com.tencent.youtu.ytposedetect.data.**{*;}
|
||
-keep public class com.tencent.youtu.liveness.YTFaceTracker{*;}
|
||
-keep public class com.tencent.youtu.liveness.YTFaceTracker$*{*;}
|
||
|
||
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.*$*{
|
||
*;
|
||
}
|
||
-keep public class com.tencent.cloud.huiyansdkface.facelight.net.**{
|
||
*;
|
||
}
|
||
-keep public class com.tencent.cloud.huiyansdkface.facelight.config.cdn.WbUiTips{
|
||
*;
|
||
}
|
||
|
||
#================数据上报混淆规则 start===========================
|
||
#实体类
|
||
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender{
|
||
*;
|
||
}
|
||
-keep class com.tencent.cloud.huiyansdkface.analytics.EventSender$*{
|
||
*;
|
||
}
|
||
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAEvent{
|
||
*;
|
||
}
|
||
-keep class com.tencent.cloud.huiyansdkface.analytics.WBSAParam{
|
||
*;
|
||
}
|
||
#================数据上报混淆规则 end===========================
|
||
|
||
#######################faceverify-END#############################
|
||
|
||
####################### normal混淆规则-BEGIN#############################
|
||
#不混淆内部类
|
||
-keepattributes InnerClasses
|
||
-keepattributes *Annotation*
|
||
-keepattributes Signature
|
||
-keepattributes Exceptions
|
||
|
||
-keep public class com.tencent.cloud.huiyansdkface.normal.net.*$*{
|
||
*;
|
||
}
|
||
-keep public class com.tencent.cloud.huiyansdkface.normal.net.*{
|
||
*;
|
||
}
|
||
#bugly
|
||
-keep class com.tencent.bugly.idasc.**{
|
||
*;
|
||
}
|
||
#wehttp混淆规则
|
||
-dontwarn com.tencent.cloud.huiyansdkface.okio.**
|
||
-keep class com.tencent.cloud.huiyansdkface.okio.**{
|
||
*;
|
||
}
|
||
-dontwarn com.tencent.cloud.huiyansdkface.okhttp3.OkHttpClient$Builder
|
||
|
||
####################### normal混淆规则-END#############################
|
||
|
||
# 保留 BaseModel 和其子类的字段名
|
||
-keep class com.qxcm.moduleutil.http.BaseModel { *; }
|
||
-keep class com.qxcm.moduleutil.bean.** { *; }
|
||
|
||
# 保留所有作为 API 响应体的类
|
||
-keep class com.qxcm.moduleutil.bean.**.*Response { *; }
|
||
|
||
# 保留 Gson 使用的字段
|
||
-keepclassmembers class * {
|
||
@com.google.gson.annotations.SerializedName <fields>;
|
||
}
|
||
|
||
# 避免 Retrofit 接口被混淆
|
||
-keep interface com.qxcm.moduleutil.http.ApiServer { *; }
|
||
|
||
# 保留 retrofit 相关类
|
||
-keep class retrofit2.** { *; }
|
||
-keep class okhttp3.** { *; }
|
||
|
||
-keep class com.qxcm.moduleutil.utils.location.** { *; }
|
||
-keep class io.agora.**{*;}
|