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();