blob: c31ca8ba81348f6dcbe1922750cb7ef9e94a8a54 [file] [log] [blame]
################################################################################
# ../../android_webview/apk/java/proguard.flags
################################################################################
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-keepclassmembers class org.chromium.android_webview.AwPdfExporter {
android.view.ViewGroup mContainerView;
}
# Keep the factory and its public members; it's the main entry point used by the
# framework.
-keep class com.android.webview.chromium.WebViewChromiumFactoryProvider {
public *;
}
-keep class * implements android.webkit.WebViewFactoryProvider$Statics {
*;
}
-keep class com.android.webview.chromium.ContentSettingsAdapter {
public *;
}
-keep class com.android.webview.chromium.WebViewChromiumFactoryProviderFor* {
public *;
}
-keep class com.android.webview.chromium.WebViewDatabaseAdapter {
public *;
}
# This is the main entry point for APIs. It is kept to make developing with
# unreleased Android easier.
-keep class com.android.webview.chromium.WebViewChromium {
public *;
}
# Functor classes with native methods implemented in Android.
-keep class com.android.webview.chromium.DrawFunctor
-keep class com.android.webview.chromium.DrawGLFunctor
-keep class com.android.webview.chromium.GraphicsUtils
# Don't note about the API 21 compatibility code which references various
# hidden APIs via reflection.
-dontnote com.android.webview.chromium.WebViewDelegateFactory$Api21CompatibilityDelegate
# DefaultAndroidKeyStore uses reflection to access internal OpenSSL state.
-dontnote org.chromium.net.DefaultAndroidKeyStore
# MediaPlayerBridge uses reflection to access internal metadata.
-dontnote org.chromium.media.MediaPlayerBridge
# ProxyChangeListener$ProxyReceiver uses reflection to access internal
# android.net.ProxyProperties.
-dontnote org.chromium.net.ProxyChangeListener$ProxyReceiver
-keep class org.chromium.android_webview.AwBrowserProcess {
java.nio.channels.FileLock sExclusiveFileLock;
}
# We strip some unused resources when preprocessing the GMS client libs.
-dontwarn com.google.android.gms.R**
# Trichrome builds don't include a native library list in the main APK; it's
# picked up from the library APK at runtime.
-dontwarn org.chromium.base.library_loader.NativeLibraries
################################################################################
# ../../android_webview/support_library/boundary_interfaces/proguard.flags
################################################################################
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# We need to avoid obfuscating the support library boundary interface because
# this API is shared with the Android Support Library.
# Note that we only 'keep' the package org.chromium.support_lib_boundary itself,
# any sub-packages of that package can still be obfuscated.
-keep public class org.chromium.support_lib_boundary.* { public *; }
################################################################################
# ../../base/android/proguard/chromium_apk.flags
################################################################################
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Contains flags that we'd like all Chromium .apks to use.
# Not needed for Android and saves a bit of processing time.
-dontpreverify
# Keep line number information, useful for stack traces.
-keepattributes SourceFile,LineNumberTable
# Keep all CREATOR fields within Parcelable that are kept.
-keepclassmembers class * implements android.os.Parcelable {
public static *** CREATOR;
}
# Keep all default constructors for used Fragments. Required since they are
# called reflectively when fragments are reinflated after the app is killed.
-keepclassmembers class * extends android.app.Fragment {
public <init>();
}
-keepclassmembers class * extends android.support.v4.app.Fragment {
public <init>();
}
-keepclassmembers class * extends androidx.fragment.app.Fragment {
public <init>();
}
# Don't obfuscate Parcelables as they might be marshalled outside Chrome.
# If we annotated all Parcelables that get put into Bundles other than
# for saveInstanceState (e.g. PendingIntents), then we could actually keep the
# names of just those ones. For now, we'll just keep them all.
-keepnames class * implements android.os.Parcelable {}
# Keep all enum values and valueOf methods. See
# http://proguard.sourceforge.net/index.html#manual/examples.html
# for the reason for this. Also, see http://crbug.com/248037.
-keepclassmembers enum * {
public static **[] values();
}
# Allows Proguard freedom in removing these log related calls.
-assumenosideeffects class android.util.Log {
static *** d(...);
static *** v(...);
static boolean isLoggable(...);
}
# The following chart was created on July 20, 2016, to decide on 3 optimization
# passes for Chrome.
# optimization passes | time | .dex size | dirty memory per process
# -----------------------------------------------------------------
# 1 | 0:48 | 5805676 | 488972
# 2 | 1:07 | 5777376 | 487092
# 3 | 1:24 | 5772192 | 486596
# 4 | 1:42 | 5771124 | 486484
# 5 | 1:56 | 5770504 | 486432
-optimizationpasses 3
# Horizontal class merging marginally increases dex size (as of Mar 2018).
-optimizations !class/merging/horizontal
# Allowing Proguard to change modifiers. This change shrinks the .dex size by
# ~1%, and reduces the method count by ~4%.
-allowaccessmodification
# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
# Ensure @RemovableInRelease actually works.
-checkdiscard class ** {
@org.chromium.base.annotations.RemovableInRelease *;
}
################################################################################
# ../../base/android/proguard/chromium_code.flags
################################################################################
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Contains flags that can be safely shared with Cronet, and thus would be
# appropriate for third-party apps to include.
# Keep all annotation related attributes that can affect runtime
-keepattributes RuntimeVisible*Annotations
-keepattributes AnnotationDefault
# Keep the annotations, because if we don't, the ProGuard rules that use them
# will not be respected. These classes then show up in our final dex, which we
# do not want - see crbug.com/628226.
-keep @interface org.chromium.base.annotations.AccessedByNative
-keep @interface org.chromium.base.annotations.CalledByNative
-keep @interface org.chromium.base.annotations.CalledByNativeUnchecked
-keep @interface org.chromium.base.annotations.DoNotInline
-keep @interface org.chromium.base.annotations.RemovableInRelease
-keep @interface org.chromium.base.annotations.UsedByReflection
# Keeps for class level annotations.
-keep @org.chromium.base.annotations.UsedByReflection class ** {}
# Keeps for method level annotations.
-keepclasseswithmembers class ** {
@org.chromium.base.annotations.AccessedByNative <fields>;
}
-keepclasseswithmembers,includedescriptorclasses class ** {
@org.chromium.base.annotations.CalledByNative <methods>;
}
-keepclasseswithmembers,includedescriptorclasses class ** {
@org.chromium.base.annotations.CalledByNativeUnchecked <methods>;
}
-keepclasseswithmembers class ** {
@org.chromium.base.annotations.UsedByReflection <methods>;
}
-keepclasseswithmembers class ** {
@org.chromium.base.annotations.UsedByReflection <fields>;
}
# Even unused methods kept due to explicit jni registration:
# https://crbug.com/688465.
-keepclasseswithmembers,includedescriptorclasses class !org.chromium.base.library_loader.**,** {
native <methods>;
}
-keepclasseswithmembernames,includedescriptorclasses class org.chromium.base.library_loader.** {
native <methods>;
}
-assumenosideeffects class ** {
# Remove @RemovableInRelease methods so long as return values are unused.
@org.chromium.base.annotations.RemovableInRelease <methods>;
# Remove object @RemovableInRelease methods even when return value is used.
# Note: * in return type does not match primitives.
@org.chromium.base.annotations.RemovableInRelease * *(...) return null;
# Remove boolean @RemovableInRelease methods even when return value is used.
@org.chromium.base.annotations.RemovableInRelease boolean *(...) return false;
}
# Never inline classes or methods with this annotation, but allow shrinking and
# obfuscation.
-keep,allowobfuscation,allowoptimization @org.chromium.base.annotations.DoNotInline class ** {
<methods>;
}
-keepclassmembers,allowobfuscation,allowoptimization class ** {
@org.chromium.base.annotations.DoNotInline <methods>;
}
# Keep all CREATOR fields within Parcelable that are kept.
-keepclassmembers class org.chromium.** implements android.os.Parcelable {
public static *** CREATOR;
}
# Don't obfuscate Parcelables as they might be marshalled outside Chrome.
# If we annotated all Parcelables that get put into Bundles other than
# for saveInstanceState (e.g. PendingIntents), then we could actually keep the
# names of just those ones. For now, we'll just keep them all.
-keepnames class org.chromium.** implements android.os.Parcelable {}
# Keep all enum values and valueOf methods. See
# http://proguard.sourceforge.net/index.html#manual/examples.html
# for the reason for this. Also, see http://crbug.com/248037.
-keepclassmembers enum org.chromium.** {
public static **[] values();
}
################################################################################
# ../../base/android/proguard/enable_obfuscation.flags
################################################################################
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# As of August 11, 2016, obfuscation was found to save 660kb on our .dex size
# and 53kb memory/process (through shrinking method/string counts).
-renamesourcefileattribute PG
-repackageclasses ''
################################################################################
# ../../build/android/buildhooks/proguard/build_hooks_android_impl.flags
################################################################################
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-keep class org.chromium.build.BuildHooksAndroidImpl
################################################################################
# ../../build/android/dcheck_is_off.flags
################################################################################
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Contains flags that are applied only when ENABLE_DCHECK=false.
-checkdiscard @org.chromium.base.annotations.CheckDiscard class ** {
*;
}
-checkdiscard class ** {
@org.chromium.base.annotations.CheckDiscard *;
}
################################################################################
# ../../chrome/android/java/proguard.flags
################################################################################
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Fragments loaded by name via Fragment.instantiate(Context,String)
# Not all fragments in this package are PreferenceFragments. E.g. HomepageEditor
# is a normal Fragment.
-keep public class org.chromium.chrome.browser.preferences.** extends android.support.v4.app.Fragment {
public <init>();
}
# Referenced by android.support.v7.preference.PreferenceInflater
-keep public class android.support.v14.preference.SwitchPreference {}
# Inflated via reflection
-keep public class android.support.v7.preference.Preference {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keep public class android.support.v7.preference.PreferenceScreen {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keep public class android.support.v7.preference.PreferenceCategory {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keep public class android.support.v7.preference.ListPreference {
public <init>(android.content.Context, android.util.AttributeSet);
}
# These classes aren't themselves referenced, but __ProcessService[0,1,2...] are
# referenced, and we look up these services by appending a number onto the name
# of the base class. Thus, we need to keep the base class name around so that
# the child classes can be looked up.
-keep class org.chromium.content.app.SandboxedProcessService {
public <init>();
}
-keep class org.chromium.content.app.PrivilegedProcessService {
public <init>();
}
# SearchView is used in website_preferences_menu.xml and is constructed by
# Android using reflection.
-keep class android.support.v7.widget.SearchView {
public <init>(...);
}
# This class member is referenced in BottomSheetBottomNav as a temporary
# measure until the support library contains a solution for disabling shifting
# mode. TODO(twellington): remove once support library has a fix and is rolled.
-keepclassmembers class android.support.design.internal.BottomNavigationMenuView {
boolean mShiftingMode;
}
# Trichrome builds don't include a native library list in the main APK; it's
# picked up from the library APK at runtime.
-dontwarn org.chromium.base.library_loader.NativeLibraries
# Let proguard know CastMediaOptions in CastOptions is always null, so it can
# trim unused MediaNotificationService methods. This saves about 170 methods in
# the dex file. https://crbug.com/855081
-assumenosideeffects class com.google.android.gms.cast.framework.CastOptions {
*** getCastMediaOptions() return null;
}
# Also, because CastOptions creates a default CastMediaOptions object upon
# construction, we need to trim out the its builder as well, so we are truly
# assuming there's no CastMediaOptions instances anywhere. This is to avoid
# CastMediaOptions to reference resources upon construction.
-assumenosideeffects class com.google.android.gms.cast.framework.media.CastMediaOptions$Builder {
public <init>();
public <clinit>();
*** build() return null;
}
################################################################################
# ../../third_party/feed/src/src/main/java/com/google/android/libraries/feed/buildtools/proguard/r8_release.flags
################################################################################
# Feed proguard flags should only target and affect Feed classes. Any app-wide
# specific flags should be added to each host's proguard specs and overall
# should be avoided.
-assumenosideeffects class com.google.android.libraries.feed.common.logging.Logger {
# LINT.IfChange
public static boolean isDebugEnabled(java.lang.String) return false;
public static boolean isVerboseEnabled(java.lang.String) return false;
private static boolean shouldWtfCrash() return false;
# LINT.ThenChange
public static void v(...);
public static void vWithStackTrace(...);
public static void d(...);
public static void dWithStackTrace(...);
# Protocol buffers are large. Only allow spamming a developer's device.
public static void debugLogRawProto(...);
}
################################################################################
# ../../third_party/gvr-android-sdk/proguard-gvr-chromium.txt
################################################################################
-dontwarn com.google.common.logging.nano.Vr$**
-dontwarn com.google.vr.**
################################################################################
# ../../third_party/gvr-android-sdk/src/proguard-gvr.txt
################################################################################
# Don't obfuscate any NDK/SDK code. This makes the debugging of stack traces
# in release builds easier.
-keepnames class com.google.vr.ndk.** { *; }
-keepnames class com.google.vr.sdk.** { *; }
# These are part of the Java <-> native interfaces for GVR.
-keepclasseswithmembernames,includedescriptorclasses class com.google.vr.** {
native <methods>;
}
# The SDK configuration class member names are useful for debugging client logs.
-keepclasseswithmembernames,allowoptimization class com.google.common.logging.nano.Vr$VREvent$SdkConfigurationParams** {
*;
}
-keep class com.google.vr.cardboard.UsedByNative
-keep @com.google.vr.cardboard.UsedByNative class *
-keepclassmembers class * {
@com.google.vr.cardboard.UsedByNative *;
}
-keep class com.google.vr.cardboard.annotations.UsedByNative
-keep @com.google.vr.cardboard.annotations.UsedByNative class *
-keepclassmembers class * {
@com.google.vr.cardboard.annotations.UsedByNative *;
}
-keep class com.google.vr.cardboard.annotations.UsedByReflection
-keep @com.google.vr.cardboard.annotations.UsedByReflection class *
-keepclassmembers class * {
@com.google.vr.cardboard.annotations.UsedByReflection *;
}
-dontwarn com.google.protobuf.nano.NanoEnumValue
################################################################################
# obj/third_party/android_deps/com_android_support_animated_vector_drawable_java/proguard.txt
################################################################################
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# keep setters in VectorDrawables so that animations can still work.
-keepclassmembers class android.support.graphics.drawable.VectorDrawableCompat$* {
void set*(***);
*** get*();
}
################################################################################
# obj/third_party/android_deps/com_android_support_appcompat_v7_java/proguard.txt
################################################################################
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Ensure that reflectively-loaded inflater is not obfuscated. This can be
# removed when we stop supporting AAPT1 builds.
-keepnames class android.support.v7.app.AppCompatViewInflater
# aapt is not able to read app::actionViewClass and app:actionProviderClass to produce proguard
# keep rules. Add a commonly used SearchView to the keep list until b/109831488 is resolved.
-keep class android.support.v7.widget.SearchView { <init>(...); }
################################################################################
# obj/third_party/android_deps/com_android_support_recyclerview_v7_java/proguard.txt
################################################################################
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# When layoutManager xml attribute is used, RecyclerView inflates
#LayoutManagers' constructors using reflection.
-keep public class * extends android.support.v7.widget.RecyclerView$LayoutManager {
public <init>(android.content.Context, android.util.AttributeSet, int, int);
public <init>();
}
################################################################################
# obj/third_party/android_deps/com_android_support_support_compat_java/proguard.txt
################################################################################
# aapt2 is not (yet) keeping FQCNs defined in the appComponentFactory <application> attribute
-keep class android.support.v4.app.CoreComponentFactory
################################################################################
# obj/third_party/android_deps/com_android_support_support_media_compat_java/proguard.txt
################################################################################
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Prevent Parcelable objects from being removed or renamed.
-keep class android.support.v4.media.** implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
# Prevent Parcelable objects from being removed or renamed.
-keep class android.support.mediacompat.** implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.Audio* implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.MediaBrowserCompatUtils* implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.MediaBrowserProtocol* implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.MediaBrowserService* implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.Volume* implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.app.** implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keep class android.support.v4.media.session.MediaButton* implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
################################################################################
# obj/third_party/android_deps/com_android_support_transition_java/proguard.txt
################################################################################
# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Keep a field in transition that is used to keep a reference to weakly-referenced object
-keepclassmembers class android.support.transition.ChangeBounds$* extends android.animation.AnimatorListenerAdapter {
android.support.transition.ChangeBounds$ViewBounds mViewBounds;
}
################################################################################
# obj/third_party/android_deps/com_android_support_versionedparcelable_java/proguard.txt
################################################################################
-keep public class * extends androidx.versionedparcelable.VersionedParcelable
-keep public class android.support.**Parcelizer { *; }
-keep public class androidx.**Parcelizer { *; }
-keep public class androidx.versionedparcelable.ParcelImpl
################################################################################
# obj/third_party/android_deps/google_play_services_base_java/proguard.txt
################################################################################
# b/35135904 Ensure that proguard will not strip the mResultGuardian.
-keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult {
com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian;
}
################################################################################
# obj/third_party/android_deps/google_play_services_basement_java/proguard.txt
################################################################################
# Proguard flags for consumers of the Google Play services SDK
# https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project
# Keep SafeParcelable NULL value, needed for reflection by DowngradeableSafeParcel
-keepclassmembers public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
# Needed for Parcelable/SafeParcelable classes & their creators to not get renamed, as they are
# found via reflection.
-keep class com.google.android.gms.common.internal.ReflectedParcelable
-keepnames class * implements com.google.android.gms.common.internal.ReflectedParcelable
-keepclassmembers class * implements android.os.Parcelable {
public static final *** CREATOR;
}
# Keep the classes/members we need for client functionality.
-keep @interface android.support.annotation.Keep
-keep @android.support.annotation.Keep class *
-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}
# Keep the names of classes/members we need for client functionality.
-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
# Keep Dynamite API entry points
-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep @com.google.android.gms.common.util.DynamiteApi public class * {
public <fields>;
public <methods>;
}
# Needed when building against pre-Marshmallow SDK.
-dontwarn android.security.NetworkSecurityPolicy
# Needed when building against Marshmallow SDK.
-dontwarn android.app.Notification
# Protobuf has references not on the Android boot classpath
-dontwarn sun.misc.Unsafe
-dontwarn libcore.io.Memory
# Internal Google annotations for generating Proguard keep rules.
-dontwarn com.google.android.apps.common.proguard.UsedBy*
# Annotations referenced by the SDK but whose definitions are contained in
# non-required dependencies.
-dontwarn javax.annotation.**
-dontwarn org.checkerframework.**
################################################################################
# obj/third_party/android_deps/google_play_services_cast_framework_java/proguard.txt
################################################################################
-keep public class * implements com.google.android.gms.cast.framework.OptionsProvider
################################################################################
# obj/third_party/android_deps/google_play_services_clearcut_java/proguard.txt
################################################################################
# We keep all fields for every generated proto file as the runtime uses
# reflection over them that ProGuard cannot detect. Without this keep
# rule, fields may be removed that would cause runtime failures.
-keepclassmembers class * extends com.google.android.gms.internal.clearcut.zzcg {
<fields>;
}
################################################################################
# obj/third_party/android_deps/google_play_services_fido_java/proguard.txt
################################################################################
# Methods enable and disable in this class are complained as unresolved
# references, but they are system APIs and are not used by Fido client apps.
-dontwarn android.nfc.NfcAdapter
################################################################################
# obj/third_party/android_deps/google_play_services_gcm_java/proguard.txt
################################################################################
# Ensure that proguard will not strip the handleIntent method.
-keepclassmembers class com.google.android.gms.gcm.GcmListenerService {
public void handleIntent(android.content.Intent);
}
################################################################################
# obj/third_party/arcore-android-sdk-client/com_google_ar_core_java/proguard.txt
################################################################################
# Keep ARCore public-facing classes
-keepparameternames
# These are part of the Java <-> native interfaces for ARCore.
-keepclasseswithmembernames,includedescriptorclasses class !com.google.ar.core.viewer.**, !com.google.ar.core.services.logging.**, !com.google.ar.sceneform.**, com.google.ar.** {
native <methods>;
}
-keep public class !com.google.ar.core.viewer.**, !com.google.ar.core**.R$*, !com.google.ar.core.services.logging.**, com.google.ar.core.** {*;}
# If you need to build a library on top of arcore_client, and use this library for your project
# Please un-comment this line below.
# -keepattributes *Annotation*
-keep class com.google.ar.core.annotations.UsedByNative
-keep @com.google.ar.core.annotations.UsedByNative class *
-keepclassmembers class * {
@com.google.ar.core.annotations.UsedByNative *;
}
-keep class com.google.ar.core.annotations.UsedByReflection
-keep @com.google.ar.core.annotations.UsedByReflection class *
-keepclassmembers class * {
@com.google.ar.core.annotations.UsedByReflection *;
}
# Keep Dynamite classes
# .aidl file will be proguarded, we should keep all Aidls.
-keep class com.google.vr.dynamite.client.IObjectWrapper { *; }
-keep class com.google.vr.dynamite.client.ILoadedInstanceCreator { *; }
-keep class com.google.vr.dynamite.client.INativeLibraryLoader { *; }
# Keep annotation files and the file got annotated.
-keep class com.google.vr.dynamite.client.UsedByNative
-keep @com.google.vr.dynamite.client.UsedByNative class *
-keepclassmembers class * {
@com.google.vr.dynamite.client.UsedByNative *;
}
-keep class com.google.vr.dynamite.client.UsedByReflection
-keep @com.google.vr.dynamite.client.UsedByReflection class *
-keepclassmembers class * {
@com.google.vr.dynamite.client.UsedByReflection *;
}