Implement mainline skipping for CVE-2019-9464
Bug: 143367819
Test: sts-tradefed run sts-engbuild -m CtsPermissionTestCases
Change-Id: Icf9ffc22d232c1c02ee10092059e7ef0c63409b8
diff --git a/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java b/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java
index 0c660b1..1a9c8dc 100644
--- a/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java
+++ b/tests/tests/permission/src/android/permission/cts/LocationAccessCheckTest.java
@@ -74,6 +74,8 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.compatibility.common.util.ProtoUtils;
+import com.android.compatibility.common.util.mainline.MainlineModule;
+import com.android.compatibility.common.util.mainline.ModuleDetector;
import com.android.server.job.nano.JobSchedulerServiceDumpProto;
import com.android.server.job.nano.JobSchedulerServiceDumpProto.RegisteredJob;
@@ -134,6 +136,11 @@
private static ServiceConnection sConnection;
private static IAccessLocationOnCommand sLocationAccessor;
+ private static void assumeNotPlayManaged() throws Exception {
+ assumeFalse(ModuleDetector.moduleIsPlayManaged(
+ sContext.getPackageManager(), MainlineModule.PERMISSION_CONTROLLER));
+ }
+
/**
* Connected to {@value #TEST_APP_PKG} and make it access the location in the background
*/
@@ -573,6 +580,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void notificationIsShownOnlyOnce() throws Throwable {
+ assumeNotPlayManaged();
accessLocation();
getNotification(true);
@@ -582,6 +590,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void notificationIsShownAgainAfterClear() throws Throwable {
+ assumeNotPlayManaged();
accessLocation();
getNotification(true);
@@ -619,6 +628,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void removeNotificationOnUninstall() throws Throwable {
+ assumeNotPlayManaged();
accessLocation();
getNotification(false);
@@ -659,6 +669,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void noNotificationIfFeatureDisabled() throws Throwable {
+ assumeNotPlayManaged();
disableLocationAccessCheck();
accessLocation();
assertNull(getNotification(true));
@@ -667,6 +678,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void notificationOnlyForAccessesSinceFeatureWasEnabled() throws Throwable {
+ assumeNotPlayManaged();
// Disable the feature and access location in disabled state
getNotification(true, true);
disableLocationAccessCheck();
@@ -685,6 +697,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void noNotificationIfBlamerNotSystemOrLocationProvider() throws Throwable {
+ assumeNotPlayManaged();
getNotification(true);
// Blame the app for access from an untrusted for notification purposes package.
runWithShellPermissionIdentity(() -> {
@@ -698,6 +711,7 @@
@Test
@SecurityTest(minPatchLevel = "2019-12-01")
public void testOpeningLocationSettingsDoesNotTriggerAccess() throws Throwable {
+ assumeNotPlayManaged();
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sContext.startActivity(intent);