diff options
-rw-r--r-- | core/java/com/android/internal/compat/IPlatformCompat.aidl | 11 | ||||
-rw-r--r-- | services/core/java/com/android/server/compat/PlatformCompat.java | 6 |
2 files changed, 17 insertions, 0 deletions
diff --git a/core/java/com/android/internal/compat/IPlatformCompat.aidl b/core/java/com/android/internal/compat/IPlatformCompat.aidl index f54c96b88f70..a5eb5f607c12 100644 --- a/core/java/com/android/internal/compat/IPlatformCompat.aidl +++ b/core/java/com/android/internal/compat/IPlatformCompat.aidl @@ -173,6 +173,17 @@ interface IPlatformCompat { boolean clearOverride(long changeId, String packageName); /** + * Restores the default behaviour for the given change and app. + * + * <p>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 cf5e16e53926..6b2a1c950e38 100644 --- a/services/core/java/com/android/server/compat/PlatformCompat.java +++ b/services/core/java/com/android/server/compat/PlatformCompat.java @@ -211,6 +211,12 @@ public class PlatformCompat extends IPlatformCompat.Stub { } @Override + public void clearOverrideForTest(long changeId, String packageName) { + checkCompatChangeOverridePermission(); + mCompatConfig.removeOverride(changeId, packageName); + } + + @Override public CompatibilityChangeConfig getAppConfig(ApplicationInfo appInfo) { checkCompatChangeReadAndLogPermission(); return mCompatConfig.getAppConfig(appInfo); |