Revert "[RESTRICT AUTOMERGE] Revert "CTS test for Android Security b/37710346""
Bug: 72379138
Test: sts-tradefed
This reverts commit e9dcebaa79ba68e79386bd26a50b5fd80b44b128.
Change-Id: If77b1c29e94dabb82f025dc92c30f305eee13355
diff --git a/tests/tests/security/src/android/security/cts/StagefrightTest.java b/tests/tests/security/src/android/security/cts/StagefrightTest.java
index fcdeb87..01ea65b 100644
--- a/tests/tests/security/src/android/security/cts/StagefrightTest.java
+++ b/tests/tests/security/src/android/security/cts/StagefrightTest.java
@@ -31,6 +31,8 @@
import android.media.MediaCodec;
import android.media.MediaCodecInfo;
import android.media.MediaCodecList;
+import android.media.MediaDrm;
+import android.media.MediaDrm.MediaDrmStateException;
import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.media.MediaMetadataRetriever;
@@ -62,6 +64,7 @@
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.UUID;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
import java.util.regex.Pattern;
@@ -664,6 +667,39 @@
doStagefrightTest(R.raw.bug_32322258);
}
+ @SecurityTest(minPatchLevel = "2017-08")
+ public void testStagefright_bug_37710346() throws Exception {
+ UUID CLEARKEY_SCHEME_UUID = new UUID(0x1077efecc0b24d02L, 0xace33c1e52e2fb4bL);
+
+ String drmInitString = "0000003470737368" +
+ "01000000" +
+ "1077efecc0b24d02" +
+ "ace33c1e52e2fb4b" +
+ "10000001" +
+ "60061e017e477e87" +
+ "7e57d00d1ed00d1e" +
+ "00000000";
+ int len = drmInitString.length();
+ byte[] drmInitData = new byte[len / 2];
+ for (int i = 0; i < len; i += 2) {
+ drmInitData[i / 2] = (byte) ((Character.digit(drmInitString.charAt(i), 16) << 4) +
+ Character.digit(drmInitString.charAt(i + 1), 16));
+ }
+
+ try {
+ MediaDrm drm = new MediaDrm(CLEARKEY_SCHEME_UUID);
+ byte[] sessionId;
+ String initDataType = "video/mp4";
+
+ sessionId = drm.openSession();
+ MediaDrm.KeyRequest drmRequest = drm.getKeyRequest(sessionId, drmInitData,
+ initDataType, MediaDrm.KEY_TYPE_STREAMING, null);
+ } catch (Exception e) {
+ if (!(e instanceof MediaDrmStateException))
+ fail("media drm server died");
+ }
+ }
+
@SecurityTest(minPatchLevel = "2015-10")
public void testStagefright_cve_2015_3873_b_23248776() throws Exception {
doStagefrightTest(R.raw.cve_2015_3873_b_23248776);