



# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.cloudgame.realx.video.**{*;}
-keep class com.bytedance.cloudgame.realx.audio.**{*;}
-keep class com.bytedance.cloudgame.realx.** {*;}
-keep class com.ss.cloudgame.bytertc.**{*;}
-keep class com.bytedance.cloudgame.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.cloudgame.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.cloudgame.realx.video.**{*;}
-keep class com.bytedance.cloudgame.realx.audio.**{*;}
-keep class com.bytedance.cloudgame.realx.** {*;}
-keep class com.ss.cloudgame.bytertc.**{*;}
-keep class com.bytedance.cloudgame.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.cloudgame.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**


# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Android/sdk/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.squareup.wire.** { *; }
-keep class com.bytedance.common.wschannel.model.Frame { *; }
-keep interface com.bytedance.common.wschannel.channel.IWsChannelClient { *; }
-keep class com.bytedance.common.wschannel.WsConstants { *; }
-keep interface com.bytedance.common.wschannel.channel.IWsChannelDepend { *; }
-keep class org.chromium.wschannel.MySelfChannelImpl {*;}

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Android/sdk/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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile


####################### The following is the ttnet dependency configuration #########################
-dontnote com.bytedance.retrofit2.Platform
-keepclasseswithmembers class * {
    @com.bytedance.retrofit2.http.* <methods>;
}
# for cronet plugin
-keep interface com.bytedance.frameworks.baselib.network.http.cronet.I* {*;}
-keep class com.bytedance.common.utility.Logger { *; }
-keep class com.bytedance.common.utility.collection.WeakHandler { *; }
-keep interface com.bytedance.common.utility.collection.WeakHandler$IHandler { *; }
-keep class com.bytedance.common.utility.reflect.Reflect { *; }
-keep class com.bytedance.ttnet.TTNetInit {*;}
-keep interface com.bytedance.frameworks.baselib.network.http.cronet.websocket.I* {*;}
-keep class com.bytedance.ttnet.TTALog {*;}
-keep interface com.bytedance.ttnet.diagnosis.I* {*;}
-keep class com.bytedance.ttnet.diagnosis.TTGameDiagnosisService {*;}
-keep class com.bytedance.ttnet.diagnosis.TTNetDiagnosisService {*;}
-keep class com.bytedance.ttnet.clientkey.ClientKeyManager {
    public static java.util.Map getClientKeyHeaders();
}
-keep class com.bytedance.android.bytehook.ByteHook {*;}
-keep class com.bytedance.shadowhook.ShadowHook {*;}
-keep class org.chromium.mpa.CronetMpaServiceImpl {*;}
-keep class com.bytedance.ttnet.throttle.TTNetThrottle {*;}
-keepclassmembers public class com.bytedance.ttnet.config.AppConfig {
    public void handleConfigUpdate(java.lang.String);
}

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

-keep class com.bytedance.keva.** {*;}








# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.cloudgame.realx.video.**{*;}
-keep class com.bytedance.cloudgame.realx.audio.**{*;}
-keep class com.bytedance.cloudgame.realx.** {*;}
-keep class com.ss.cloudgame.bytertc.**{*;}
-keep class com.bytedance.cloudgame.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.cloudgame.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.cloudgame.realx.video.**{*;}
-keep class com.bytedance.cloudgame.realx.audio.**{*;}
-keep class com.bytedance.cloudgame.realx.** {*;}
-keep class com.ss.cloudgame.bytertc.**{*;}
-keep class com.bytedance.cloudgame.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.cloudgame.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**


# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Android/sdk/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.squareup.wire.** { *; }
-keep class com.bytedance.common.wschannel.model.Frame { *; }
-keep interface com.bytedance.common.wschannel.channel.IWsChannelClient { *; }
-keep class com.bytedance.common.wschannel.WsConstants { *; }
-keep interface com.bytedance.common.wschannel.channel.IWsChannelDepend { *; }
-keep class org.chromium.wschannel.MySelfChannelImpl {*;}

# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in /Android/sdk/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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile


####################### The following is the ttnet dependency configuration #########################
-dontnote com.bytedance.retrofit2.Platform
-keepclasseswithmembers class * {
    @com.bytedance.retrofit2.http.* <methods>;
}
# for cronet plugin
-keep interface com.bytedance.frameworks.baselib.network.http.cronet.I* {*;}
-keep class com.bytedance.common.utility.Logger { *; }
-keep class com.bytedance.common.utility.collection.WeakHandler { *; }
-keep interface com.bytedance.common.utility.collection.WeakHandler$IHandler { *; }
-keep class com.bytedance.common.utility.reflect.Reflect { *; }
-keep class com.bytedance.ttnet.TTNetInit {*;}
-keep interface com.bytedance.frameworks.baselib.network.http.cronet.websocket.I* {*;}
-keep class com.bytedance.ttnet.TTALog {*;}
-keep interface com.bytedance.ttnet.diagnosis.I* {*;}
-keep class com.bytedance.ttnet.diagnosis.TTGameDiagnosisService {*;}
-keep class com.bytedance.ttnet.diagnosis.TTNetDiagnosisService {*;}
-keep class com.bytedance.ttnet.clientkey.ClientKeyManager {
    public static java.util.Map getClientKeyHeaders();
}
-keep class com.bytedance.android.bytehook.ByteHook {*;}
-keep class com.bytedance.shadowhook.ShadowHook {*;}
-keep class org.chromium.mpa.CronetMpaServiceImpl {*;}
-keep class com.bytedance.ttnet.throttle.TTNetThrottle {*;}
-keepclassmembers public class com.bytedance.ttnet.config.AppConfig {
    public void handleConfigUpdate(java.lang.String);
}

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
##保证CalledByNative不被混淆
-keepclasseswithmembernames class * {
    native <methods>;
}

#保持webrtc、RtcEngine中的类不被混淆
-keep class com.bytedance.realx.video.**{*;}
-keep class com.bytedance.realx.audio.**{*;}
-keep class com.bytedance.realx.** {*;}
-keep class com.ss.bytertc.**{*;}
-keep class com.bytedance.bae.** {*;}

#保证所有带有带有CallByNaitve注解方法与类名称不被混淆
-keepclasseswithmembers class * {
    @com.bytedance.realx.video.CalledByNative *;
}

-keepattributes Signature
-keepattributes *Annotation*

#使CVSDK不被混淆
-keep class com.bef.effectsdk.** { *; }
-keep class com.bytedance.labcv.effectsdk.** { *; }
-keep class com.bytedance.labcv.licenselibrary.** { *; }
-keep class com.effectsar.labcv.effectsdk.** { *; }
-keep class com.effectsar.labcv.licenselibrary.** { *; }

#适配R8混淆规则(gradle8.0+)导致的warning变成error导致编译不过
-dontwarn com.ss.android.ugc.effectmanager.**
-dontwarn com.apm.lite.**
-dontwarn com.huawei.**

# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
#   http://developer.android.com/guide/developing/tools/proguard.html

# 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 *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

-keep class com.bytedance.keva.** {*;}




