From 21900cb6ee56cdc9bf23863703edbaf084db463d Mon Sep 17 00:00:00 2001 From: Artur Satayev Date: Tue, 19 Jan 2021 17:58:03 +0000 Subject: [PATCH] Allow clearing a single change id for tests usage. Add clearOverrideForTest(changeId, packageName) to remove a single id from package overrdies. Bug: 147113465 Test: N/A Change-Id: I35c6fe418abb9bc562218444878188bc393725e5 --- .../com/android/internal/compat/IPlatformCompat.aidl | 11 +++++++++++ .../com/android/server/compat/PlatformCompat.java | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/core/java/com/android/internal/compat/IPlatformCompat.aidl b/core/java/com/android/internal/compat/IPlatformCompat.aidl index f54c96b88f703..a5eb5f607c129 100644 --- a/core/java/com/android/internal/compat/IPlatformCompat.aidl +++ b/core/java/com/android/internal/compat/IPlatformCompat.aidl @@ -172,6 +172,17 @@ interface IPlatformCompat { */ boolean clearOverride(long changeId, String packageName); + /** + * Restores the default behaviour for the given change and app. + * + *

Does not kill the app; to be only used in tests. + * + * @param changeId the ID of the change that was overridden + * @param packageName the app package name that was overridden + * @throws SecurityException if overriding changes is not permitted + */ + void clearOverrideForTest(long changeId, String packageName); + /** * Enables all compatibility changes that have enabledSinceTargetSdk == * {@param targetSdkVersion} for an app, subject to the policy. diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java index cf5e16e53926b..6b2a1c950e382 100644 --- a/services/core/java/com/android/server/compat/PlatformCompat.java +++ b/services/core/java/com/android/server/compat/PlatformCompat.java @@ -210,6 +210,12 @@ public class PlatformCompat extends IPlatformCompat.Stub { return existed; } + @Override + public void clearOverrideForTest(long changeId, String packageName) { + checkCompatChangeOverridePermission(); + mCompatConfig.removeOverride(changeId, packageName); + } + @Override public CompatibilityChangeConfig getAppConfig(ApplicationInfo appInfo) { checkCompatChangeReadAndLogPermission();