drop ShellPermission after use it
bug: 160360149
Test: manual
Change-Id: Idaa05a6324213290348baf18abf31251430b9e5d
diff --git a/tests/tests/media/src/android/media/cts/MediaCasTest.java b/tests/tests/media/src/android/media/cts/MediaCasTest.java
index 537e606..29d30b5 100644
--- a/tests/tests/media/src/android/media/cts/MediaCasTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaCasTest.java
@@ -153,13 +153,21 @@
"65 79 69 6e 74 5f 6d 69 6e 3d 32 35 20 73 63 65" +
"6e 65 " ;
- // Need MANAGE_USERS or CREATE_USERS permission to access ActivityManager#getCurrentUse,
- // then adopt it from shell.
+ @Override
public void setUp() throws Exception {
+ super.setUp();
+ // Need MANAGE_USERS or CREATE_USERS permission to access ActivityManager#getCurrentUser in
+ // MediaCas. It is used by all tests, then adopt it from shell in setup
InstrumentationRegistry
.getInstrumentation().getUiAutomation().adoptShellPermissionIdentity();
}
+ @Override
+ protected void tearDown() throws Exception {
+ InstrumentationRegistry
+ .getInstrumentation().getUiAutomation().dropShellPermissionIdentity();
+ super.tearDown();
+ }
/**
* Test that all enumerated CA systems can be instantiated.
*
diff --git a/tests/tests/media/src/android/media/cts/MediaCodecClearKeyPlayer.java b/tests/tests/media/src/android/media/cts/MediaCodecClearKeyPlayer.java
index a710663..f06687c 100644
--- a/tests/tests/media/src/android/media/cts/MediaCodecClearKeyPlayer.java
+++ b/tests/tests/media/src/android/media/cts/MediaCodecClearKeyPlayer.java
@@ -32,6 +32,9 @@
import android.media.MediaFormat;
import android.net.Uri;
import android.util.Log;
+
+import androidx.test.InstrumentationRegistry;
+
import android.view.Surface;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -326,7 +329,17 @@
if (!Arrays.equals(sCasPrivateInfo, casInfo.getPrivateData())) {
throw new Error("Cas private data mismatch");
}
- mMediaCas = new MediaCas(casInfo.getSystemId());
+ // Need MANAGE_USERS or CREATE_USERS permission to access
+ // ActivityManager#getCurrentUse in MediaCas, then adopt it from shell.
+ InstrumentationRegistry
+ .getInstrumentation().getUiAutomation().adoptShellPermissionIdentity();
+ try {
+ mMediaCas = new MediaCas(casInfo.getSystemId());
+ } finally {
+ InstrumentationRegistry
+ .getInstrumentation().getUiAutomation().dropShellPermissionIdentity();
+ }
+
mMediaCas.provision(sProvisionStr);
extractor.setMediaCas(mMediaCas);
break;
diff --git a/tests/tests/media/src/android/media/cts/MediaDrmClearkeyTest.java b/tests/tests/media/src/android/media/cts/MediaDrmClearkeyTest.java
index 6438cd0..91c3ec4 100644
--- a/tests/tests/media/src/android/media/cts/MediaDrmClearkeyTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaDrmClearkeyTest.java
@@ -28,8 +28,6 @@
import android.util.Base64;
import android.util.Log;
-import androidx.test.InstrumentationRegistry;
-
import android.view.Surface;
import com.android.compatibility.common.util.ApiLevelUtil;
@@ -118,10 +116,6 @@
if (false == deviceHasMediaDrm()) {
tearDown();
}
- // Need MANAGE_USERS or CREATE_USERS permission to access ActivityManager#getCurrentUse in
- // MediaCas, then adopt it from shell.
- InstrumentationRegistry
- .getInstrumentation().getUiAutomation().adoptShellPermissionIdentity();
}
@Override