diff options
| author | 2020-01-13 17:49:26 +0000 | |
|---|---|---|
| committer | 2020-01-13 17:56:07 +0000 | |
| commit | 0dfee628459702ebf67eb52aa83762b5d8cd8d46 (patch) | |
| tree | 654ce6addd7f96c33199c5c96afac6c1f4e046e6 | |
| parent | e57a8f338f5a3c3cce6b6899a61ee56495d7b934 (diff) | |
Tweak compat change override policy
Allow enabling and disabling non-target sdk compat changes on debuggable
apps, beta/preview builds.
Bug: 144552011
Test: atest OverrideValidatorImplTest
Change-Id: I1c0ed2d9cd77b02209e43d919d135c3c377cb35c
| -rw-r--r-- | services/core/java/com/android/server/compat/OverrideValidatorImpl.java | 10 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/compat/OverrideValidatorImplTest.java | 8 |
2 files changed, 9 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/compat/OverrideValidatorImpl.java b/services/core/java/com/android/server/compat/OverrideValidatorImpl.java index dfc00806992b..4bf606e801f9 100644 --- a/services/core/java/com/android/server/compat/OverrideValidatorImpl.java +++ b/services/core/java/com/android/server/compat/OverrideValidatorImpl.java @@ -53,6 +53,7 @@ public class OverrideValidatorImpl extends IOverrideValidator.Stub { public OverrideAllowedState getOverrideAllowedState(long changeId, String packageName) { boolean debuggableBuild = false; boolean finalBuild = false; + int minTargetSdk = mCompatConfig.minTargetSdkForChangeId(changeId); debuggableBuild = mAndroidBuildClassifier.isDebuggableBuild(); finalBuild = mAndroidBuildClassifier.isFinalBuild(); @@ -76,15 +77,14 @@ public class OverrideValidatorImpl extends IOverrideValidator.Stub { if ((applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0) { return new OverrideAllowedState(DISABLED_NOT_DEBUGGABLE, -1, -1); } - int minTargetSdk = mCompatConfig.minTargetSdkForChangeId(changeId); - // Do not allow overriding non-target sdk gated changes on user builds - if (minTargetSdk == -1) { - return new OverrideAllowedState(DISABLED_NON_TARGET_SDK, appTargetSdk, minTargetSdk); - } // Allow overriding any change for debuggable apps on non-final builds. if (!finalBuild) { return new OverrideAllowedState(ALLOWED, appTargetSdk, minTargetSdk); } + // Do not allow overriding non-target sdk gated changes on user builds + if (minTargetSdk == -1) { + return new OverrideAllowedState(DISABLED_NON_TARGET_SDK, appTargetSdk, minTargetSdk); + } // Only allow to opt-in for a targetSdk gated change. if (applicationInfo.targetSdkVersion < minTargetSdk) { return new OverrideAllowedState(ALLOWED, appTargetSdk, minTargetSdk); diff --git a/services/tests/servicestests/src/com/android/server/compat/OverrideValidatorImplTest.java b/services/tests/servicestests/src/com/android/server/compat/OverrideValidatorImplTest.java index ecd07bdc4544..b14291b34195 100644 --- a/services/tests/servicestests/src/com/android/server/compat/OverrideValidatorImplTest.java +++ b/services/tests/servicestests/src/com/android/server/compat/OverrideValidatorImplTest.java @@ -188,7 +188,7 @@ public class OverrideValidatorImplTest { } @Test - public void getOverrideAllowedState_betaBuildEnabledChangeDebugApp_rejectOverride() + public void getOverrideAllowedState_betaBuildEnabledChangeDebugApp_allowOverride() throws Exception { CompatConfig config = CompatConfigBuilder.create(betaBuild(), mContext) .addEnabledChangeWithId(1).build(); @@ -203,11 +203,11 @@ public class OverrideValidatorImplTest { overrideValidator.getOverrideAllowedState(1, PACKAGE_NAME); assertThat(allowedState) - .isEqualTo(new OverrideAllowedState(DISABLED_NON_TARGET_SDK, -1, -1)); + .isEqualTo(new OverrideAllowedState(ALLOWED, -1, -1)); } @Test - public void getOverrideAllowedState_betaBuildDisabledChangeDebugApp_rejectOverride() + public void getOverrideAllowedState_betaBuildDisabledChangeDebugApp_allowOverride() throws Exception { CompatConfig config = CompatConfigBuilder.create(betaBuild(), mContext) .addDisabledChangeWithId(1).build(); @@ -221,7 +221,7 @@ public class OverrideValidatorImplTest { overrideValidator.getOverrideAllowedState(1, PACKAGE_NAME); assertThat(allowedState) - .isEqualTo(new OverrideAllowedState(DISABLED_NON_TARGET_SDK, -1, -1)); + .isEqualTo(new OverrideAllowedState(ALLOWED, -1, -1)); } @Test |