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