Merge "No longer using specific watch device idle settings" into oc-dev
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleClientTestBaseActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleClientTestBaseActivity.java
index f7adc3d..df9a368 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleClientTestBaseActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/bluetooth/BleClientTestBaseActivity.java
@@ -78,7 +78,7 @@
     private final int BLE_READ_DESCRIPTOR_NO_PERMISSION = 13;   //14;
     private final int BLE_WRITE_DESCRIPTOR_NO_PERMISSION = 14;  //15;
     private final int BLE_READ_RSSI = 15;   //16;
-    private final int BLE_CLIENT_DISCONNECT = 16;   //17;
+    private final int BLE_CLIENT_DISCONNECT = 15;   //16;   //17;
 
     private TestAdapter mTestAdapter;
     private long mPassed;
@@ -177,7 +177,8 @@
         testList.add(R.string.ble_write_descriptor_name);
         testList.add(R.string.ble_read_descriptor_nopermission_name);
         testList.add(R.string.ble_write_descriptor_nopermission_name);
-        testList.add(R.string.ble_read_rssi_name);
+// TODO: too flaky b/34951749
+//        testList.add(R.string.ble_read_rssi_name);
         testList.add(R.string.ble_client_disconnect_name);
 
         return testList;
@@ -336,8 +337,12 @@
                 actionName = getString(R.string.ble_write_descriptor_nopermission_name);
                 mTestAdapter.setTestPass(BLE_WRITE_DESCRIPTOR_NO_PERMISSION);
                 mPassed |= PASS_FLAG_WRITE_DESCRIPTOR_NO_PERMISSION;
+// TODO: too flaky b/34951749
                 // execute RSSI requesting test
-                newAction = BleClientService.BLE_CLIENT_ACTION_READ_RSSI;
+                // newAction = BleClientService.BLE_CLIENT_ACTION_READ_RSSI;
+                // execute disconnection test
+                mPassed |= PASS_FLAG_READ_RSSI;
+                newAction = BleClientService.BLE_CLIENT_ACTION_CLIENT_DISCONNECT;
                 break;
             case BleClientService.BLE_READ_REMOTE_RSSI:
                 actionName = getString(R.string.ble_read_rssi_name);
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/EnterprisePrivacyTestListActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/EnterprisePrivacyTestListActivity.java
index 8df3f57..a4adfda 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/EnterprisePrivacyTestListActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/managedprovisioning/EnterprisePrivacyTestListActivity.java
@@ -274,20 +274,25 @@
         //                 new ButtonInfo(R.string.enterprise_privacy_finish,
         //                         buildCommandIntent(CommandReceiverActivity
         //                                 .COMMAND_CLEAR_MAXIMUM_PASSWORD_ATTEMPTS))}));
-        adapter.add(createInteractiveTestItem(this, ENTERPRISE_PRIVACY_COMP_FAILED_PASSWORD_WIPE,
-                R.string.enterprise_privacy_comp_failed_password_wipe,
-                R.string.enterprise_privacy_comp_failed_password_wipe_info,
-                new ButtonInfo[] {
-                        new ButtonInfo(R.string.enterprise_privacy_start,
-                                buildCommandIntent(
-                                        CommandReceiverActivity.COMMAND_CREATE_MANAGED_PROFILE)),
-                        new ButtonInfo(R.string.enterprise_privacy_open_settings,
-                                new Intent(Settings.ACTION_ENTERPRISE_PRIVACY_SETTINGS)),
-                        new ButtonInfo(R.string.enterprise_privacy_set_limit, new Intent(
-                                CompHelperActivity.ACTION_SET_MAXIMUM_PASSWORD_ATTEMPTS)),
-                        new ButtonInfo(R.string.enterprise_privacy_finish,
-                                buildCommandIntent(
-                                        CommandReceiverActivity.COMMAND_REMOVE_MANAGED_PROFILE))}));
+        if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_MANAGED_USERS)) {
+            adapter.add(createInteractiveTestItem(this,
+                    ENTERPRISE_PRIVACY_COMP_FAILED_PASSWORD_WIPE,
+                    R.string.enterprise_privacy_comp_failed_password_wipe,
+                    R.string.enterprise_privacy_comp_failed_password_wipe_info,
+                    new ButtonInfo[]{
+                            new ButtonInfo(R.string.enterprise_privacy_start,
+                                    buildCommandIntent(
+                                            CommandReceiverActivity.
+                                                    COMMAND_CREATE_MANAGED_PROFILE)),
+                            new ButtonInfo(R.string.enterprise_privacy_open_settings,
+                                    new Intent(Settings.ACTION_ENTERPRISE_PRIVACY_SETTINGS)),
+                            new ButtonInfo(R.string.enterprise_privacy_set_limit, new Intent(
+                                    CompHelperActivity.ACTION_SET_MAXIMUM_PASSWORD_ATTEMPTS)),
+                            new ButtonInfo(R.string.enterprise_privacy_finish,
+                                    buildCommandIntent(
+                                            CommandReceiverActivity.
+                                                    COMMAND_REMOVE_MANAGED_PROFILE))}));
+        }
         adapter.add(createInteractiveTestItem(this, ENTERPRISE_PRIVACY_QUICK_SETTINGS,
                 R.string.enterprise_privacy_quick_settings,
                 R.string.enterprise_privacy_quick_settings_info,
diff --git a/common/host-side/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/JarHostTestTest.java b/common/host-side/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/JarHostTestTest.java
index e7221e7..a06bca0 100644
--- a/common/host-side/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/JarHostTestTest.java
+++ b/common/host-side/tradefed/tests/src/com/android/compatibility/common/tradefed/testtype/JarHostTestTest.java
@@ -136,7 +136,8 @@
                 + "JarHostTestTest$Junit4TestClass");
         setter.setOptionValue("class", "com.android.compatibility.common.tradefed.testtype."
                 + "JarHostTestTest$Junit4TestClass2");
-        List<IRemoteTest> res = (List<IRemoteTest>)mTest.split();
+        // sharCount is ignored; will split by number of classes
+        List<IRemoteTest> res = (List<IRemoteTest>)mTest.split(1);
         assertEquals(2, res.size());
         assertTrue(res.get(0) instanceof JarHostTest);
         assertTrue(res.get(1) instanceof JarHostTest);
@@ -150,7 +151,8 @@
         mTest = new JarHostTestable(mTestDir);
         OptionSetter setter = new OptionSetter(mTest);
         setter.setOptionValue("jar", testJar.getName());
-        List<IRemoteTest> res = (List<IRemoteTest>)mTest.split();
+        // sharCount is ignored; will split by number of classes
+        List<IRemoteTest> res = (List<IRemoteTest>)mTest.split(1);
         assertEquals(2, res.size());
         assertTrue(res.get(0) instanceof JarHostTest);
         assertEquals("[android.ui.cts.TaskSwitchingTest]",
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/StorageHostTest.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/StorageHostTest.java
index 5cbe935..fa0120d 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/StorageHostTest.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/StorageHostTest.java
@@ -27,6 +27,8 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.concurrent.TimeUnit;
+
 /**
  * Tests that exercise various storage APIs.
  */
@@ -234,6 +236,7 @@
 
     public void runDeviceTests(String packageName, String testClassName, String testMethodName,
             int userId) throws DeviceNotAvailableException {
-        Utils.runDeviceTests(getDevice(), packageName, testClassName, testMethodName, userId);
+        Utils.runDeviceTests(getDevice(), packageName, testClassName, testMethodName, userId, null,
+                20L, TimeUnit.MINUTES);
     }
 }
diff --git a/hostsidetests/appsecurity/src/android/appsecurity/cts/Utils.java b/hostsidetests/appsecurity/src/android/appsecurity/cts/Utils.java
index 703e3b6..67ee091 100644
--- a/hostsidetests/appsecurity/src/android/appsecurity/cts/Utils.java
+++ b/hostsidetests/appsecurity/src/android/appsecurity/cts/Utils.java
@@ -26,8 +26,8 @@
 import com.android.tradefed.result.CollectingTestListener;
 
 import java.util.Arrays;
-import java.util.concurrent.TimeUnit;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 public class Utils {
     public static final int USER_SYSTEM = 0;
@@ -71,14 +71,22 @@
     public static void runDeviceTests(ITestDevice device, String packageName, String testClassName,
             String testMethodName, int userId, Map<String, String> testArgs)
                     throws DeviceNotAvailableException {
+        // 60 min timeout per test by default
+        runDeviceTests(device, packageName, testClassName, testMethodName, userId, testArgs,
+                60L, TimeUnit.MINUTES);
+    }
+
+    public static void runDeviceTests(ITestDevice device, String packageName, String testClassName,
+            String testMethodName, int userId, Map<String, String> testArgs, long timeout,
+            TimeUnit unit)
+                    throws DeviceNotAvailableException {
         if (testClassName != null && testClassName.startsWith(".")) {
             testClassName = packageName + testClassName;
         }
-
         RemoteAndroidTestRunner testRunner = new RemoteAndroidTestRunner(packageName,
                 "android.support.test.runner.AndroidJUnitRunner", device.getIDevice());
-        // 60 min timeout per test
-        testRunner.setMaxTimeToOutputResponse(60L, TimeUnit.MINUTES);
+        // timeout_msec is the timeout per test for instrumentation
+        testRunner.addInstrumentationArg("timeout_msec", Long.toString(unit.toMillis(timeout)));
         if (testClassName != null && testMethodName != null) {
             testRunner.setMethodName(testClassName, testMethodName);
         } else if (testClassName != null) {
diff --git a/hostsidetests/compilation/assets/primary.prof.txt b/hostsidetests/compilation/assets/primary.prof.txt
index e74ec47..ab8b943 100644
--- a/hostsidetests/compilation/assets/primary.prof.txt
+++ b/hostsidetests/compilation/assets/primary.prof.txt
@@ -1,18 +1,15 @@
 Landroid/cts/compilation/CompilationTargetActivity;
-HLandroid/cts/compilation/CompilationTargetActivity;->m11()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m12()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m13()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m14()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m15()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m16()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m17()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m18()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m19()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m20()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m21()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m22()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m23()I
-HLandroid/cts/compilation/CompilationTargetActivity;->m24()I
-SLandroid/cts/compilation/CompilationTargetActivity;->onResume()V
-SPLandroid/cts/compilation/CompilationTargetActivity;->onPause()V
-
+Landroid/cts/compilation/CompilationTargetActivity;->m11()I
+Landroid/cts/compilation/CompilationTargetActivity;->m12()I
+Landroid/cts/compilation/CompilationTargetActivity;->m13()I
+Landroid/cts/compilation/CompilationTargetActivity;->m14()I
+Landroid/cts/compilation/CompilationTargetActivity;->m15()I
+Landroid/cts/compilation/CompilationTargetActivity;->m16()I
+Landroid/cts/compilation/CompilationTargetActivity;->m17()I
+Landroid/cts/compilation/CompilationTargetActivity;->m18()I
+Landroid/cts/compilation/CompilationTargetActivity;->m19()I
+Landroid/cts/compilation/CompilationTargetActivity;->m20()I
+Landroid/cts/compilation/CompilationTargetActivity;->m21()I
+Landroid/cts/compilation/CompilationTargetActivity;->m22()I
+Landroid/cts/compilation/CompilationTargetActivity;->m23()I
+Landroid/cts/compilation/CompilationTargetActivity;->m24()I
diff --git a/hostsidetests/security/src/android/security/cts/AdbUtils.java b/hostsidetests/security/src/android/security/cts/AdbUtils.java
index 7670e61..f44870a 100644
--- a/hostsidetests/security/src/android/security/cts/AdbUtils.java
+++ b/hostsidetests/security/src/android/security/cts/AdbUtils.java
@@ -32,7 +32,6 @@
 import java.io.OutputStream;
 import java.util.Scanner;
 import java.util.concurrent.TimeUnit;
-import java.util.regex.Pattern;
 
 public class AdbUtils {
 
@@ -126,28 +125,4 @@
         }
 
     }
-
-    /**
-     * Runs an info disclosure related PoC, pulls logs from the device,
-     * and searches the logs for the info being disclosed.
-     * @param pocName string of the PoC name
-     * @param device device to be ran on
-     * @param timeout time to wait for output in seconds
-     * @param pattern pattern of info being disclosed
-     * @return boolean returns false if the test fails, otherwise returns true
-     **/
-    public static boolean detectInformationDisclosure(
-        String pocName, ITestDevice device, int timeout,
-        String pattern) throws Exception {
-
-           String pocOutput = runPoc(pocName, device, timeout);
-           if (Pattern.matches(pattern, pocOutput))
-             return false;
-
-           String logcatOutput = device.executeShellCommand("logcat -d");
-           if (Pattern.matches(pattern, logcatOutput))
-             return false;
-
-           return true;
-    }
 }
diff --git a/hostsidetests/security/src/android/security/cts/Poc17_06.java b/hostsidetests/security/src/android/security/cts/Poc17_06.java
index 27c787e..da7336d 100644
--- a/hostsidetests/security/src/android/security/cts/Poc17_06.java
+++ b/hostsidetests/security/src/android/security/cts/Poc17_06.java
@@ -97,9 +97,9 @@
      */
     @SecurityTest
     public void testPocBug_35644815() throws Exception {
-      enableAdbRoot(getDevice());
-      infoDisclosure("Bug-35644815", getDevice(), 60,
-          "[\\s\\n\\S]*INFO DISC FLAG: 0000[\\s\\n\\S]*", false);
+        enableAdbRoot(getDevice());
+        String pocOut = AdbUtils.runPoc("Bug-35644815", getDevice(), 60);
+        assertMatches("[\\s\\n\\S]*INFO DISC FLAG: 0000[\\s\\n\\S]*", pocOut);
     }
 
 }
diff --git a/hostsidetests/security/src/android/security/cts/Poc17_07.java b/hostsidetests/security/src/android/security/cts/Poc17_07.java
index 5c9349d..fb460ca 100644
--- a/hostsidetests/security/src/android/security/cts/Poc17_07.java
+++ b/hostsidetests/security/src/android/security/cts/Poc17_07.java
@@ -135,8 +135,9 @@
     @SecurityTest
     public void testPocBug_35468048() throws Exception {
         enableAdbRoot(getDevice());
-        infoDisclosure("Bug-35468048", getDevice(), 60, "[\\s\\n\\S]*read succeeded: [0-9]+" +
-            " bytes[\\s][\\S]{3} content: 0x[0-9]+. 0x[0-9]+[\\s\\n\\S]*", true );
+        String pocOut = AdbUtils.runPoc("Bug-35468048", getDevice(), 60);
+        assertNotMatches("[\\s\\n\\S]*read succeeded: [0-9]+ bytes[\\s][\\S]" +
+                         "{3} content: 0x[0-9]+. 0x[0-9]+[\\s\\n\\S]*", pocOut);
     }
 
     /**
diff --git a/hostsidetests/security/src/android/security/cts/Poc17_08.java b/hostsidetests/security/src/android/security/cts/Poc17_08.java
index f8fbcd0..7c092e2 100644
--- a/hostsidetests/security/src/android/security/cts/Poc17_08.java
+++ b/hostsidetests/security/src/android/security/cts/Poc17_08.java
@@ -70,9 +70,10 @@
     public void testPocBug_35764875() throws Exception {
       enableAdbRoot(getDevice());
       if(containsDriver(getDevice(), "/dev/msm_aac")) {
-            infoDisclosure("Bug-35764875", getDevice(), 60,
-            "[\\s\\n\\S]*information leaked, trycount=[0-9]+, rc=-[0-9]+,"
-            +" event_type=[0-9]+[\\s][0-9]{80}[\\s\\n\\S]*", true);
+            String pocOut = AdbUtils.runPoc("Bug-35764875", getDevice(), 60);
+            assertNotMatches("[\\s\\n\\S]*information leaked, trycount=[0-9]" +
+                             "+, rc=-[0-9]+, event_type=[0-9]+[\\s][0-9]{80}" +
+                             "[\\s\\n\\S]*", pocOut);
       }
     }
 
@@ -83,8 +84,9 @@
     public void testPocBug_35644510() throws Exception {
         enableAdbRoot(getDevice());
         if(containsDriver(getDevice(), "/dev/qbt1000")) {
-            infoDisclosure("Bug-35644510", getDevice(), 60,
-            "[\\s\\n\\S]*KERNEL ADDRESS LEAKED = 0x[a-f0-9]{16}[\\s\\n\\S]*", true);
+            String pocOut = AdbUtils.runPoc("Bug-35644510", getDevice(), 60);
+            assertNotMatches("[\\s\\n\\S]*KERNEL ADDRESS LEAKED = 0x[a-f0-9]" +
+                             "{16}[\\s\\n\\S]*", pocOut);
         }
     }
 }
diff --git a/hostsidetests/security/src/android/security/cts/SecurityTestCase.java b/hostsidetests/security/src/android/security/cts/SecurityTestCase.java
index ba8a846..fa45a4f 100644
--- a/hostsidetests/security/src/android/security/cts/SecurityTestCase.java
+++ b/hostsidetests/security/src/android/security/cts/SecurityTestCase.java
@@ -21,6 +21,8 @@
 import com.android.tradefed.device.NativeDevice;
 import com.android.tradefed.testtype.DeviceTestCase;
 
+import java.util.regex.Pattern;
+
 public class SecurityTestCase extends DeviceTestCase {
 
     private long kernelStartTime;
@@ -71,15 +73,11 @@
         getDevice().disableAdbRoot();
     }
 
-    /**
-     * Runs an info disclosure
-     **/
-    public void infoDisclosure(
-        String pocName, ITestDevice device, int timeout,
-        String pattern, boolean result) throws Exception {
+    public void assertMatches(String pattern, String input) throws Exception {
+        assertTrue("Pattern not found", Pattern.matches(pattern, input));
+    }
 
-        assertTrue("Pattern found.",
-                    AdbUtils.detectInformationDisclosure
-                    (pocName, device, timeout, pattern)==result );
-     }
+    public void assertNotMatches(String pattern, String input) throws Exception {
+        assertFalse("Pattern found", Pattern.matches(pattern, input));
+    }
 }
diff --git a/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp b/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
index 7ff00b0..504ae01 100644
--- a/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
+++ b/tests/tests/jni/libjnitest/android_jni_cts_LinkerNamespacesTest.cpp
@@ -77,7 +77,8 @@
 
 static bool not_accessible(const std::string& library, const std::string& err) {
   return err.find("dlopen failed: library \"" + library + "\"") == 0 &&
-         err.find("is not accessible for the namespace \"classloader-namespace\"") != std::string::npos;
+         (err.find("is not accessible for the namespace \"classloader-namespace\"") != std::string::npos ||
+          err.find("is not accessible for the namespace \"sphal\"") != std::string::npos);
 }
 
 static bool not_found(const std::string& library, const std::string& err) {
diff --git a/tests/tests/media/src/android/media/cts/MediaRecorderTest.java b/tests/tests/media/src/android/media/cts/MediaRecorderTest.java
index 06e89e5..71013cc 100644
--- a/tests/tests/media/src/android/media/cts/MediaRecorderTest.java
+++ b/tests/tests/media/src/android/media/cts/MediaRecorderTest.java
@@ -401,6 +401,8 @@
         if (videoSizes == null) {
             videoSizes = parameters.getSupportedPreviewSizes();
         }
+        int minVideoWidth = Integer.MAX_VALUE;
+        int minVideoHeight = Integer.MAX_VALUE;
         for (Camera.Size size : videoSizes)
         {
             if (size.width == VIDEO_WIDTH && size.height == VIDEO_HEIGHT) {
@@ -408,9 +410,14 @@
                 mVideoHeight = VIDEO_HEIGHT;
                 return;
             }
+            if (size.width < minVideoWidth || size.height < minVideoHeight) {
+                minVideoWidth = size.width;
+                minVideoHeight = size.height;
+            }
         }
-        mVideoWidth = videoSizes.get(0).width;
-        mVideoHeight = videoSizes.get(0).height;
+        // Use minimum resolution to avoid that one frame size exceeds file size limit.
+        mVideoWidth = minVideoWidth;
+        mVideoHeight = minVideoHeight;
     }
 
     private void recordVideoUsingCamera(
diff --git a/tests/tests/permission2/res/raw/android_manifest.xml b/tests/tests/permission2/res/raw/android_manifest.xml
index 4223535..7846dc2 100644
--- a/tests/tests/permission2/res/raw/android_manifest.xml
+++ b/tests/tests/permission2/res/raw/android_manifest.xml
@@ -2332,6 +2332,15 @@
     <permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"
         android:protectionLevel="signature" />
 
+    <!-- @SystemApi Allows an application to use
+        {@link android.view.WindowManager.LayoutsParams#PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS}
+        to hide non-system-overlay windows.
+        <p>Not for use by third-party applications.
+        @hide
+    -->
+    <permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"
+                android:protectionLevel="signature|installer" />
+
     <!-- @SystemApi Allows an application to manage (create, destroy,
          Z-order) application tokens in the window manager.
          <p>Not for use by third-party applications.
diff --git a/tests/tests/security/res/raw/cve_2016_0842.mp4 b/tests/tests/security/res/raw/cve_2016_0842.mp4
new file mode 100644
index 0000000..e315867
--- /dev/null
+++ b/tests/tests/security/res/raw/cve_2016_0842.mp4
Binary files differ
diff --git a/tests/tests/security/res/raw/cve_2017_0691.bmp b/tests/tests/security/res/raw/cve_2017_0691.bmp
new file mode 100644
index 0000000..d3f7c6d
--- /dev/null
+++ b/tests/tests/security/res/raw/cve_2017_0691.bmp
Binary files differ
diff --git a/tests/tests/security/src/android/security/cts/BitmapFactoryDecodeStreamTest.java b/tests/tests/security/src/android/security/cts/BitmapFactoryDecodeStreamTest.java
index 9115530..8b0a21d 100644
--- a/tests/tests/security/src/android/security/cts/BitmapFactoryDecodeStreamTest.java
+++ b/tests/tests/security/src/android/security/cts/BitmapFactoryDecodeStreamTest.java
@@ -39,4 +39,11 @@
         BitmapFactory.decodeStream(inStream);
 
     }
+
+    @SecurityTest
+    public void testPocCVE_2017_0691() throws Exception {
+        InputStream exploitImage = new BufferedInputStream(mContext.getResources().openRawResource(
+                R.raw.cve_2017_0691));
+        BitmapFactory.decodeStream(exploitImage);
+    }
 }
diff --git a/tests/tests/security/src/android/security/cts/StagefrightTest.java b/tests/tests/security/src/android/security/cts/StagefrightTest.java
index 8c7fe43..8468bd7 100644
--- a/tests/tests/security/src/android/security/cts/StagefrightTest.java
+++ b/tests/tests/security/src/android/security/cts/StagefrightTest.java
@@ -217,6 +217,11 @@
      ***********************************************************/
 
     @SecurityTest
+    public void testStagefright_cve_2016_0842() throws Exception {
+        doStagefrightTest(R.raw.cve_2016_0842);
+    }
+
+    @SecurityTest
     public void testStagefright_bug_34097672() throws Exception {
         doStagefrightTest(R.raw.bug_34097672);
     }
diff --git a/tests/tests/telephony/src/android/telephony/cts/VisualVoicemailServiceTest.java b/tests/tests/telephony/src/android/telephony/cts/VisualVoicemailServiceTest.java
index c6c5ced..01f926b 100644
--- a/tests/tests/telephony/src/android/telephony/cts/VisualVoicemailServiceTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/VisualVoicemailServiceTest.java
@@ -561,9 +561,10 @@
 
     private void setupSmsReceiver(String text) {
         mSmsReceiver = new SmsBroadcastReceiver(text);
-        IntentFilter filter = new IntentFilter(Intents.SMS_RECEIVED_ACTION);
-        filter.addAction(Intents.DATA_SMS_RECEIVED_ACTION);
-        mContext.registerReceiver(mSmsReceiver, filter);
+        mContext.registerReceiver(mSmsReceiver, new IntentFilter(Intents.SMS_RECEIVED_ACTION));
+        IntentFilter dataFilter = new IntentFilter(Intents.DATA_SMS_RECEIVED_ACTION);
+        dataFilter.addDataScheme("sms");
+        mContext.registerReceiver(mSmsReceiver, dataFilter);
     }
 
     private static class SmsBroadcastReceiver extends BroadcastReceiver {
diff --git a/tools/cts-tradefed/res/config/cts-known-failures.xml b/tools/cts-tradefed/res/config/cts-known-failures.xml
index 3042515..ed251d7 100644
--- a/tools/cts-tradefed/res/config/cts-known-failures.xml
+++ b/tools/cts-tradefed/res/config/cts-known-failures.xml
@@ -238,9 +238,6 @@
     <!-- b/63566721 -->
     <option name="compatibility:exclude-filter" value="CtsWrapWrapDebugTestCases android.wrap.cts.WrapTest" />
 
-    <!-- b/38462487 -->
-    <option name="compatibility:exclude-filter" value="CtsCompilationTestCases android.cts.compilation.AdbRootDependentCompilationTest#testCompile_curProfile" />
-
     <!-- b/38420898 -->
     <option name="compatibility:exclude-filter" value="CtsSensorTestCases android.hardware.cts.SensorDirectReportTest#testRateIndependencyAccelMultiChannel" />
     <option name="compatibility:exclude-filter" value="CtsSensorTestCases android.hardware.cts.SensorDirectReportTest#testRateIndependencyGyroMultiChannel" />