From c8fe08bdca42c9fc1de9c29a187da2790cfded00 Mon Sep 17 00:00:00 2001 From: Jigar Thakkar Date: Wed, 19 Apr 2023 19:27:29 +0000 Subject: [PATCH] Add config to control app cloning building blocks Adding a platform config to control app cloning building block adding in the U release. The default setting is to allow the building blocks to be enabled. Bug: 253449368 Test: Tested by flashing the changes on test device Change-Id: Id30a6841667bd047f7f028ee0107feeeacef0f0c --- core/res/res/values/config.xml | 4 ++++ core/res/res/values/symbols.xml | 1 + .../core/java/com/android/server/content/SyncManager.java | 5 ++--- .../core/java/com/android/server/pm/NoFilteringResolver.java | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index c5f7ea6501ff8..ccbb26496027b 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -6408,4 +6408,8 @@ false true + + + true diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index ae107fd648d3b..6704884ec71d4 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -480,6 +480,7 @@ + diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index da822fab6af46..3e31bd1e820f1 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -892,9 +892,8 @@ public class SyncManager { * @return true/false if contact sharing is enabled/disabled */ protected boolean isContactSharingAllowedForCloneProfile() { - // TODO(b/253449368): This method should also check for the config controlling - // all app-cloning features. - return mAppCloningDeviceConfigHelper.getEnableAppCloningBuildingBlocks(); + return mContext.getResources().getBoolean(R.bool.config_enableAppCloningBuildingBlocks) + && mAppCloningDeviceConfigHelper.getEnableAppCloningBuildingBlocks(); } /** diff --git a/services/core/java/com/android/server/pm/NoFilteringResolver.java b/services/core/java/com/android/server/pm/NoFilteringResolver.java index 392389009398a..ccd5b0ef4285e 100644 --- a/services/core/java/com/android/server/pm/NoFilteringResolver.java +++ b/services/core/java/com/android/server/pm/NoFilteringResolver.java @@ -23,6 +23,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.Binder; +import com.android.internal.R; import com.android.internal.config.appcloning.AppCloningDeviceConfigHelper; import com.android.server.pm.pkg.PackageStateInternal; import com.android.server.pm.resolution.ComponentResolverApi; @@ -61,7 +62,8 @@ public class NoFilteringResolver extends CrossProfileResolver { long flags) { final long token = Binder.clearCallingIdentity(); try { - return appCloningDeviceConfigHelper.getEnableAppCloningBuildingBlocks() + return context.getResources().getBoolean(R.bool.config_enableAppCloningBuildingBlocks) + && appCloningDeviceConfigHelper.getEnableAppCloningBuildingBlocks() && (resolveForStart || (((flags & PackageManager.MATCH_CLONE_PROFILE) != 0) && hasPermission(context, Manifest.permission.QUERY_CLONED_APPS))); } finally {