Merge "Fix failing test: TaskSwitchingTest.testTaskswitching" into lmp-dev
diff --git a/hostsidetests/theme/assets/21/hdpi.zip b/hostsidetests/theme/assets/21/hdpi.zip
index 2035d17..9cc179c 100644
--- a/hostsidetests/theme/assets/21/hdpi.zip
+++ b/hostsidetests/theme/assets/21/hdpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/21/tvdpi.zip b/hostsidetests/theme/assets/21/tvdpi.zip
index eb6fd8c..fbe1781 100644
--- a/hostsidetests/theme/assets/21/tvdpi.zip
+++ b/hostsidetests/theme/assets/21/tvdpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/21/xhdpi.zip b/hostsidetests/theme/assets/21/xhdpi.zip
index c4b4d0e..de6e2e1 100644
--- a/hostsidetests/theme/assets/21/xhdpi.zip
+++ b/hostsidetests/theme/assets/21/xhdpi.zip
Binary files differ
diff --git a/hostsidetests/theme/assets/21/xxhdpi.zip b/hostsidetests/theme/assets/21/xxhdpi.zip
index 62983df..9f0d778 100644
--- a/hostsidetests/theme/assets/21/xxhdpi.zip
+++ b/hostsidetests/theme/assets/21/xxhdpi.zip
Binary files differ
diff --git a/tests/tests/accessibilityservice/AndroidManifest.xml b/tests/tests/accessibilityservice/AndroidManifest.xml
index 4039193..0d452ae 100644
--- a/tests/tests/accessibilityservice/AndroidManifest.xml
+++ b/tests/tests/accessibilityservice/AndroidManifest.xml
@@ -19,10 +19,12 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.cts.accessibilityservice">
 
-  <uses-sdk android:minSdkVersion="18"
-          android:targetSdkVersion="18" />
+   <uses-sdk android:minSdkVersion="18"
+           android:targetSdkVersion="18" />
 
-  <application android:theme="@android:style/Theme.Holo.NoActionBar" >
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
+    <application android:theme="@android:style/Theme.Holo.NoActionBar" >
 
       <uses-library android:name="android.test.runner"/>
 
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
index 2e072d5..f6fc86f 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/CameraTestUtils.java
@@ -31,6 +31,7 @@
 import android.hardware.camera2.CaptureRequest;
 import android.hardware.camera2.CaptureResult;
 import android.hardware.camera2.TotalCaptureResult;
+import android.hardware.cts.helpers.CameraUtils;
 import android.util.Size;
 import android.hardware.camera2.params.MeteringRectangle;
 import android.hardware.camera2.params.StreamConfigurationMap;
@@ -522,13 +523,8 @@
     public static class SizeComparator implements Comparator<Size> {
         @Override
         public int compare(Size lhs, Size rhs) {
-            long left = lhs.getWidth() * lhs.getHeight();
-            long right = rhs.getWidth() * rhs.getHeight();
-            if (left == right) {
-                left = lhs.getWidth();
-                right = rhs.getWidth();
-            }
-            return (left < right) ? -1 : (left > right ? 1 : 0);
+            return CameraUtils
+                    .compareSizes(lhs.getWidth(), lhs.getHeight(), rhs.getWidth(), rhs.getHeight());
         }
     }
 
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/DngCreatorTest.java b/tests/tests/hardware/src/android/hardware/camera2/cts/DngCreatorTest.java
index 29c3526..9ec649e 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/DngCreatorTest.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/DngCreatorTest.java
@@ -17,6 +17,7 @@
 package android.hardware.camera2.cts;
 
 import android.graphics.ImageFormat;
+import android.graphics.Rect;
 import android.hardware.camera2.CameraCaptureSession;
 import android.hardware.camera2.CameraCharacteristics;
 import android.hardware.camera2.CameraDevice;
@@ -40,6 +41,7 @@
 import java.util.List;
 
 import static android.hardware.camera2.cts.CameraTestUtils.configureCameraSession;
+import static android.hardware.camera2.cts.helpers.AssertHelpers.*;
 
 /**
  * Tests for the DngCreator API.
@@ -82,25 +84,34 @@
             try {
                 openDevice(deviceId);
 
-                Size[] targetCaptureSizes =
-                        mStaticInfo.getAvailableSizesForFormatChecked(ImageFormat.RAW_SENSOR,
-                                StaticMetadata.StreamDirection.Output);
-                if (targetCaptureSizes.length == 0) {
-                    if (VERBOSE) {
-                        Log.i(TAG, "Skipping testSingleImageBasic - " +
-                                "no raw output streams for camera " + deviceId);
-                    }
+                if (!mStaticInfo.isCapabilitySupported(
+                        CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_RAW)) {
+                    Log.i(TAG, "RAW capability is not supported in camera " + mCameraIds[i] +
+                            ". Skip the test.");
                     continue;
                 }
 
-                Size s = targetCaptureSizes[0];
+                Size[] targetCaptureSizes =
+                        mStaticInfo.getAvailableSizesForFormatChecked(ImageFormat.RAW_SENSOR,
+                                StaticMetadata.StreamDirection.Output);
+
+                assertTrue("No capture sizes available for RAW format!",
+                        targetCaptureSizes.length != 0);
+                Rect activeArray = mStaticInfo.getActiveArraySizeChecked();
+                Size activeArraySize = new Size(activeArray.width(), activeArray.height());
+                assertTrue("Missing ActiveArraySize", activeArray.width() > 0 &&
+                        activeArray.height() > 0);
+                // TODO: Allow PixelArraySize also.
+                assertArrayContains("Available sizes for RAW format must include ActiveArraySize",
+                        targetCaptureSizes, activeArraySize);
 
                 // Create capture image reader
                 CameraTestUtils.SimpleImageReaderListener captureListener
                         = new CameraTestUtils.SimpleImageReaderListener();
-                captureReader = createImageReader(s, ImageFormat.RAW_SENSOR, 2,
+                captureReader = createImageReader(activeArraySize, ImageFormat.RAW_SENSOR, 2,
                         captureListener);
-                Pair<Image, CaptureResult> resultPair = captureSingleRawShot(s, captureReader, captureListener);
+                Pair<Image, CaptureResult> resultPair = captureSingleRawShot(activeArraySize,
+                        captureReader, captureListener);
                 CameraCharacteristics characteristics = mStaticInfo.getCharacteristics();
 
                 // Test simple writeImage, no header checks
@@ -159,16 +170,26 @@
             try {
                 openDevice(deviceId);
 
+                if (!mStaticInfo.isCapabilitySupported(
+                        CameraCharacteristics.REQUEST_AVAILABLE_CAPABILITIES_RAW)) {
+                    Log.i(TAG, "RAW capability is not supported in camera " + mCameraIds[i] +
+                            ". Skip the test.");
+                    continue;
+                }
+
                 Size[] targetCaptureSizes =
                         mStaticInfo.getAvailableSizesForFormatChecked(ImageFormat.RAW_SENSOR,
                                 StaticMetadata.StreamDirection.Output);
-                if (targetCaptureSizes.length == 0) {
-                    if (VERBOSE) {
-                        Log.i(TAG, "Skipping testSingleImageThumbnail - " +
-                                "no raw output streams for camera " + deviceId);
-                    }
-                    continue;
-                }
+
+                assertTrue("No capture sizes available for RAW format!",
+                        targetCaptureSizes.length != 0);
+                Rect activeArray = mStaticInfo.getActiveArraySizeChecked();
+                Size activeArraySize = new Size(activeArray.width(), activeArray.height());
+                assertTrue("Missing ActiveArraySize", activeArray.width() > 0 &&
+                        activeArray.height() > 0);
+                // TODO: Allow PixelArraySize also.
+                assertArrayContains("Available sizes for RAW format must include ActiveArraySize",
+                        targetCaptureSizes, activeArraySize);
 
                 Size[] targetPreviewSizes =
                         mStaticInfo.getAvailableSizesForFormatChecked(ImageFormat.YUV_420_888,
@@ -176,12 +197,10 @@
                 // Get smallest preview size
                 Size previewSize = mOrderedPreviewSizes.get(mOrderedPreviewSizes.size() - 1);
 
-                Size s = targetCaptureSizes[0];
-
                 // Create capture image reader
                 CameraTestUtils.SimpleImageReaderListener captureListener
                         = new CameraTestUtils.SimpleImageReaderListener();
-                captureReaders.add(createImageReader(s, ImageFormat.RAW_SENSOR, 2,
+                captureReaders.add(createImageReader(activeArraySize, ImageFormat.RAW_SENSOR, 2,
                         captureListener));
                 captureListeners.add(captureListener);
 
@@ -192,8 +211,8 @@
                         previewListener));
                 captureListeners.add(previewListener);
 
-                Pair<List<Image>, CaptureResult> resultPair = captureSingleRawShot(s, captureReaders,
-                        captureListeners);
+                Pair<List<Image>, CaptureResult> resultPair = captureSingleRawShot(activeArraySize,
+                        captureReaders, captureListeners);
                 CameraCharacteristics characteristics = mStaticInfo.getCharacteristics();
 
                 // Test simple writeImage, no header checks
diff --git a/tests/tests/hardware/src/android/hardware/camera2/cts/StillCaptureTest.java b/tests/tests/hardware/src/android/hardware/camera2/cts/StillCaptureTest.java
index 2e03e43..048b1cf 100644
--- a/tests/tests/hardware/src/android/hardware/camera2/cts/StillCaptureTest.java
+++ b/tests/tests/hardware/src/android/hardware/camera2/cts/StillCaptureTest.java
@@ -17,6 +17,7 @@
 package android.hardware.camera2.cts;
 
 import static android.hardware.camera2.cts.CameraTestUtils.*;
+import static android.hardware.camera2.cts.helpers.AssertHelpers.assertArrayContains;
 import static junit.framework.Assert.assertNotNull;
 
 import android.graphics.ImageFormat;
@@ -641,140 +642,151 @@
     private void rawCaptureTestByCamera() throws Exception {
         Size maxPreviewSz = mOrderedPreviewSizes.get(0);
         Size[] rawSizes = mStaticInfo.getRawOutputSizesChecked();
-        for (Size size : rawSizes) {
-            if (VERBOSE) {
-                Log.v(TAG, "Testing Raw capture with size " + size.toString()
-                        + ", preview size " + maxPreviewSz);
-            }
 
-            // Prepare raw capture and start preview.
-            CaptureRequest.Builder previewBuilder =
-                    mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
-            CaptureRequest.Builder rawBuilder =
-                    mCamera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
-            SimpleCaptureCallback resultListener = new SimpleCaptureCallback();
-            SimpleImageReaderListener imageListener = new SimpleImageReaderListener();
-            prepareRawCaptureAndStartPreview(previewBuilder, rawBuilder, maxPreviewSz, size,
-                    resultListener, imageListener);
+        assertTrue("No capture sizes available for RAW format!",
+                rawSizes.length != 0);
+        Rect activeArray = mStaticInfo.getActiveArraySizeChecked();
+        Size size = new Size(activeArray.width(), activeArray.height());
+        assertTrue("Missing ActiveArraySize", activeArray.width() > 0 &&
+                activeArray.height() > 0);
+        assertArrayContains("Available sizes for RAW format must include ActiveArraySize",
+                rawSizes, size);
 
-            CaptureRequest rawRequest = rawBuilder.build();
-            mSession.capture(rawRequest, resultListener, mHandler);
+        // Prepare raw capture and start preview.
+        CaptureRequest.Builder previewBuilder =
+                mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
+        CaptureRequest.Builder rawBuilder =
+                mCamera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
+        SimpleCaptureCallback resultListener = new SimpleCaptureCallback();
+        SimpleImageReaderListener imageListener = new SimpleImageReaderListener();
+        prepareRawCaptureAndStartPreview(previewBuilder, rawBuilder, maxPreviewSz, size,
+                resultListener, imageListener);
 
-            Image image = imageListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
-            validateRaw16Image(image, size);
-            if (DEBUG) {
-                byte[] rawBuffer = getDataFromImage(image);
-                String rawFileName =
-                        DEBUG_FILE_NAME_BASE + "/test" + "_" + size.toString() +
-                        "_cam" + mCamera.getId() +  ".raw16";
-                Log.d(TAG, "Dump raw file into " + rawFileName);
-                dumpFile(rawFileName, rawBuffer);
-            }
-
-            verifyRawCaptureResult(rawRequest, resultListener.getCaptureResultForRequest(rawRequest,
-                    NUM_RESULTS_WAIT_TIMEOUT));
-            stopPreview();
+        if (VERBOSE) {
+            Log.v(TAG, "Testing Raw capture with size " + size.toString()
+                    + ", preview size " + maxPreviewSz);
         }
+
+        CaptureRequest rawRequest = rawBuilder.build();
+        mSession.capture(rawRequest, resultListener, mHandler);
+
+        Image image = imageListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
+        validateRaw16Image(image, size);
+        if (DEBUG) {
+            byte[] rawBuffer = getDataFromImage(image);
+            String rawFileName = DEBUG_FILE_NAME_BASE + "/test" + "_" + size.toString() + "_cam" +
+                    mCamera.getId() + ".raw16";
+            Log.d(TAG, "Dump raw file into " + rawFileName);
+            dumpFile(rawFileName, rawBuffer);
+        }
+
+        verifyRawCaptureResult(rawRequest, resultListener.getCaptureResultForRequest(rawRequest,
+                NUM_RESULTS_WAIT_TIMEOUT));
+        stopPreview();
     }
 
     private void fullRawCaptureTestByCamera() throws Exception {
         Size maxPreviewSz = mOrderedPreviewSizes.get(0);
         Size maxStillSz = mOrderedStillSizes.get(0);
         Size[] rawSizes = mStaticInfo.getRawOutputSizesChecked();
-        for (Size size : rawSizes) {
-            if (VERBOSE) {
-                Log.v(TAG, "Testing multi capture with size " + size.toString()
-                        + ", preview size " + maxPreviewSz);
-            }
 
-            // Prepare raw capture and start preview.
-            CaptureRequest.Builder previewBuilder =
-                    mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
-            CaptureRequest.Builder multiBuilder =
-                    mCamera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
+        SimpleCaptureCallback resultListener = new SimpleCaptureCallback();
+        SimpleImageReaderListener jpegListener = new SimpleImageReaderListener();
+        SimpleImageReaderListener rawListener = new SimpleImageReaderListener();
 
-            SimpleCaptureCallback resultListener = new SimpleCaptureCallback();
-            SimpleImageReaderListener jpegListener = new SimpleImageReaderListener();
-            SimpleImageReaderListener rawListener = new SimpleImageReaderListener();
+        assertTrue("No capture sizes available for RAW format!",
+                rawSizes.length != 0);
+        Rect activeArray = mStaticInfo.getActiveArraySizeChecked();
+        Size size = new Size(activeArray.width(), activeArray.height());
+        assertTrue("Missing ActiveArraySize", activeArray.width() > 0 &&
+                activeArray.height() > 0);
+        assertArrayContains("Available sizes for RAW format must include ActiveArraySize",
+                rawSizes, size);
 
+        if (VERBOSE) {
+            Log.v(TAG, "Testing multi capture with size " + size.toString()
+                    + ", preview size " + maxPreviewSz);
+        }
+
+        // Prepare raw capture and start preview.
+        CaptureRequest.Builder previewBuilder =
+                mCamera.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
+        CaptureRequest.Builder multiBuilder =
+                mCamera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
+
+        ImageReader rawReader = null;
+        ImageReader jpegReader = null;
+
+        try {
+            // Create ImageReaders.
+            rawReader = makeImageReader(size,
+                    ImageFormat.RAW_SENSOR, MAX_READER_IMAGES, rawListener, mHandler);
+            jpegReader = makeImageReader(maxStillSz,
+                    ImageFormat.JPEG, MAX_READER_IMAGES, jpegListener, mHandler);
             updatePreviewSurface(maxPreviewSz);
 
-            ImageReader rawReader = null;
-            ImageReader jpegReader = null;
-            try {
+            // Configure output streams with preview and jpeg streams.
+            List<Surface> outputSurfaces = new ArrayList<Surface>();
+            outputSurfaces.add(rawReader.getSurface());
+            outputSurfaces.add(jpegReader.getSurface());
+            outputSurfaces.add(mPreviewSurface);
+            mSessionListener = new BlockingSessionCallback();
+            mSession = configureCameraSession(mCamera, outputSurfaces,
+                    mSessionListener, mHandler);
 
-                // Create ImageReaders.
-                rawReader = makeImageReader(size,
-                        ImageFormat.RAW_SENSOR, MAX_READER_IMAGES, rawListener, mHandler);
-                jpegReader = makeImageReader(maxStillSz,
-                        ImageFormat.JPEG, MAX_READER_IMAGES, jpegListener, mHandler);
+            // Configure the requests.
+            previewBuilder.addTarget(mPreviewSurface);
+            multiBuilder.addTarget(mPreviewSurface);
+            multiBuilder.addTarget(rawReader.getSurface());
+            multiBuilder.addTarget(jpegReader.getSurface());
 
-                // Configure output streams with preview and jpeg streams.
-                List<Surface> outputSurfaces = new ArrayList<Surface>();
-                outputSurfaces.add(rawReader.getSurface());
-                outputSurfaces.add(jpegReader.getSurface());
-                outputSurfaces.add(mPreviewSurface);
-                mSessionListener = new BlockingSessionCallback();
-                mSession = configureCameraSession(mCamera, outputSurfaces,
-                        mSessionListener, mHandler);
+            // Start preview.
+            mSession.setRepeatingRequest(previewBuilder.build(), null, mHandler);
 
-                // Configure the requests.
-                previewBuilder.addTarget(mPreviewSurface);
-                multiBuilder.addTarget(mPreviewSurface);
-                multiBuilder.addTarget(rawReader.getSurface());
-                multiBuilder.addTarget(jpegReader.getSurface());
+            // Poor man's 3A, wait 2 seconds for AE/AF (if any) to settle.
+            // TODO: Do proper 3A trigger and lock (see testTakePictureTest).
+            Thread.sleep(3000);
 
-                // Start preview.
-                mSession.setRepeatingRequest(previewBuilder.build(), null, mHandler);
+            multiBuilder.set(CaptureRequest.STATISTICS_LENS_SHADING_MAP_MODE,
+                    CaptureRequest.STATISTICS_LENS_SHADING_MAP_MODE_ON);
+            CaptureRequest multiRequest = multiBuilder.build();
 
-                // Poor man's 3A, wait 2 seconds for AE/AF (if any) to settle.
-                // TODO: Do proper 3A trigger and lock (see testTakePictureTest).
-                Thread.sleep(3000);
+            mSession.capture(multiRequest, resultListener, mHandler);
 
-                multiBuilder.set(CaptureRequest.STATISTICS_LENS_SHADING_MAP_MODE,
-                        CaptureRequest.STATISTICS_LENS_SHADING_MAP_MODE_ON);
-                CaptureRequest multiRequest = multiBuilder.build();
-
-                mSession.capture(multiRequest, resultListener, mHandler);
-
-                CaptureResult result = resultListener.getCaptureResultForRequest(multiRequest,
-                        NUM_RESULTS_WAIT_TIMEOUT);
-                Image jpegImage = jpegListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
-                basicValidateJpegImage(jpegImage, maxStillSz);
-                Image rawImage = rawListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
-                validateRaw16Image(rawImage, size);
-                verifyRawCaptureResult(multiRequest, result);
+            CaptureResult result = resultListener.getCaptureResultForRequest(multiRequest,
+                    NUM_RESULTS_WAIT_TIMEOUT);
+            Image jpegImage = jpegListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
+            basicValidateJpegImage(jpegImage, maxStillSz);
+            Image rawImage = rawListener.getImage(CAPTURE_IMAGE_TIMEOUT_MS);
+            validateRaw16Image(rawImage, size);
+            verifyRawCaptureResult(multiRequest, result);
 
 
-                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-                try (DngCreator dngCreator =
-                        new DngCreator(mStaticInfo.getCharacteristics(), result)) {
-                    dngCreator.writeImage(outputStream, rawImage);
-                }
-
-                if (DEBUG) {
-                    byte[] rawBuffer = outputStream.toByteArray();
-                    String rawFileName =
-                            DEBUG_FILE_NAME_BASE + "/raw16_" + TAG + size.toString() +
-                                    "_cam_" + mCamera.getId() + ".dng";
-                    Log.d(TAG, "Dump raw file into " + rawFileName);
-                    dumpFile(rawFileName, rawBuffer);
-
-                    byte[] jpegBuffer = getDataFromImage(jpegImage);
-                    String jpegFileName =
-                            DEBUG_FILE_NAME_BASE + "/jpeg_" + TAG + size.toString() +
-                                    "_cam_" + mCamera.getId() + ".jpg";
-                    Log.d(TAG, "Dump jpeg file into " + rawFileName);
-                    dumpFile(jpegFileName, jpegBuffer);
-                }
-
-                stopPreview();
-            } finally {
-                CameraTestUtils.closeImageReader(rawReader);
-                CameraTestUtils.closeImageReader(jpegReader);
-                rawReader = null;
-                jpegReader = null;
+            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+            try (DngCreator dngCreator = new DngCreator(mStaticInfo.getCharacteristics(), result)) {
+                dngCreator.writeImage(outputStream, rawImage);
             }
+
+            if (DEBUG) {
+                byte[] rawBuffer = outputStream.toByteArray();
+                String rawFileName = DEBUG_FILE_NAME_BASE + "/raw16_" + TAG + size.toString() +
+                        "_cam_" + mCamera.getId() + ".dng";
+                Log.d(TAG, "Dump raw file into " + rawFileName);
+                dumpFile(rawFileName, rawBuffer);
+
+                byte[] jpegBuffer = getDataFromImage(jpegImage);
+                String jpegFileName = DEBUG_FILE_NAME_BASE + "/jpeg_" + TAG + size.toString() +
+                        "_cam_" + mCamera.getId() + ".jpg";
+                Log.d(TAG, "Dump jpeg file into " + rawFileName);
+                dumpFile(jpegFileName, jpegBuffer);
+            }
+
+            stopPreview();
+        } finally {
+            CameraTestUtils.closeImageReader(rawReader);
+            CameraTestUtils.closeImageReader(jpegReader);
+            rawReader = null;
+            jpegReader = null;
         }
     }
 
diff --git a/tests/tests/hardware/src/android/hardware/cts/Camera_SizeTest.java b/tests/tests/hardware/src/android/hardware/cts/Camera_SizeTest.java
index 72d4ba3..827ab76 100644
--- a/tests/tests/hardware/src/android/hardware/cts/Camera_SizeTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/Camera_SizeTest.java
@@ -17,14 +17,20 @@
 package android.hardware.cts;
 
 
+import android.cts.util.CtsAndroidTestCase;
 import android.hardware.Camera;
 import android.hardware.Camera.Parameters;
+import android.hardware.cts.helpers.CameraUtils;
 import android.test.suitebuilder.annotation.LargeTest;
 
-import junit.framework.TestCase;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import java.util.Collections;
+import java.util.List;
 
 @LargeTest
-public class Camera_SizeTest extends TestCase {
+public class Camera_SizeTest extends CtsAndroidTestCase {
 
     private final int HEIGHT1 = 320;
     private final int WIDTH1 = 240;
@@ -33,6 +39,8 @@
     private final int HEIGHT3 = 640;
     private final int WIDTH3 = 480;
 
+    private static final float ASPECT_RATIO_TOLERANCE = 0.05f;
+
     public void testConstructor() {
         if (Camera.getNumberOfCameras() < 1) {
             return;
@@ -48,10 +56,61 @@
         camera.release();
     }
 
+    /**
+     * Check that the largest available preview and jpeg outputs have the same aspect ratio.  This
+     * aspect ratio must be the same as the physical camera sensor, and the FOV for these outputs
+     * must not be cropped.
+     *
+     * This is only required for backward compatibility of the Camera2 API when running in LEGACY
+     * mode.
+     *
+     * @see {@link android.hardware.camera2.CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL}
+     */
+    public void testMaxAspectRatios() throws Exception {
+        for (int id = 0; id < Camera.getNumberOfCameras(); ++id) {
+            if (CameraUtils.isLegacyHAL(getContext(), id)) {
+
+                Camera camera = Camera.open(id);
+                Parameters parameters = camera.getParameters();
+
+                List<Camera.Size> supportedJpegDimens = parameters.getSupportedPictureSizes();
+                List<Camera.Size> supportedPreviewDimens = parameters.getSupportedPreviewSizes();
+
+                Collections.sort(supportedJpegDimens, new CameraUtils.LegacySizeComparator());
+                Collections.sort(supportedPreviewDimens, new CameraUtils.LegacySizeComparator());
+
+                Camera.Size largestJpegDimen =
+                        supportedJpegDimens.get(supportedJpegDimens.size() - 1);
+                Camera.Size largestPreviewDimen =
+                        supportedPreviewDimens.get(supportedPreviewDimens.size() - 1);
+
+                float jpegAspect = largestJpegDimen.width / (float) largestJpegDimen.height;
+                float previewAspect =
+                        largestPreviewDimen.width / (float) largestPreviewDimen.height;
+
+                assertTrue("Largest preview dimension (w=" + largestPreviewDimen.width + ", h=" +
+                                largestPreviewDimen.height + ") must have the same aspect ratio " +
+                                "as the largest Jpeg dimension (w=" + largestJpegDimen.width +
+                                ", h=" + largestJpegDimen.height + ")",
+                        Math.abs(jpegAspect - previewAspect) < ASPECT_RATIO_TOLERANCE
+                );
+
+
+                camera.release();
+            }
+        }
+    }
+
     private void checkSize(Parameters parameters, int width, int height) {
         parameters.setPictureSize(width, height);
         assertEquals(width, parameters.getPictureSize().width);
         assertEquals(height, parameters.getPictureSize().height);
     }
+
+    private static void addTestToSuite(TestSuite testSuite, String testName) {
+        Camera_SizeTest test = new Camera_SizeTest();
+        test.setName(testName);
+        testSuite.addTest(test);
+    }
 }
 
diff --git a/tests/tests/hardware/src/android/hardware/cts/helpers/CameraUtils.java b/tests/tests/hardware/src/android/hardware/cts/helpers/CameraUtils.java
new file mode 100644
index 0000000..aaf9590
--- /dev/null
+++ b/tests/tests/hardware/src/android/hardware/cts/helpers/CameraUtils.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.cts.helpers;
+
+import android.content.Context;
+import android.hardware.Camera;
+import android.hardware.camera2.CameraCharacteristics;
+import android.hardware.camera2.CameraManager;
+
+import java.util.Comparator;
+
+/**
+ * Utility class containing helper functions for the Camera CTS tests.
+ */
+public class CameraUtils {
+
+    /**
+     * Returns {@code true} if this device only supports {@code LEGACY} mode operation in the
+     * Camera2 API for the given camera ID.
+     *
+     * @param context {@link Context} to access the {@link CameraManager} in.
+     * @param cameraId the ID of the camera device to check.
+     * @return {@code true} if this device only supports {@code LEGACY} mode.
+     */
+    public static boolean isLegacyHAL(Context context, int cameraId) throws Exception {
+        CameraManager manager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
+        CameraCharacteristics characteristics =
+                manager.getCameraCharacteristics(Integer.toString(cameraId));
+
+        return characteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) ==
+                CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY;
+    }
+
+    /**
+     * Shared size comparison method used by size comparators.
+     *
+     * <p>Compares the number of pixels it covers.If two the areas of two sizes are same, compare
+     * the widths.</p>
+     */
+     public static int compareSizes(int widthA, int heightA, int widthB, int heightB) {
+        long left = widthA * (long) heightA;
+        long right = widthB * (long) heightB;
+        if (left == right) {
+            left = widthA;
+            right = widthB;
+        }
+        return (left < right) ? -1 : (left > right ? 1 : 0);
+    }
+
+    /**
+     * Size comparator that compares the number of pixels it covers.
+     *
+     * <p>If two the areas of two sizes are same, compare the widths.</p>
+     */
+    public static class LegacySizeComparator implements Comparator<Camera.Size> {
+        @Override
+        public int compare(Camera.Size lhs, Camera.Size rhs) {
+            return compareSizes(lhs.width, lhs.height, rhs.width, rhs.height);
+        }
+    }
+
+}
diff --git a/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayWithCompositionTest.java b/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayWithCompositionTest.java
index 6635c12..369ae6e 100644
--- a/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayWithCompositionTest.java
+++ b/tests/tests/media/src/android/media/cts/EncodeVirtualDisplayWithCompositionTest.java
@@ -593,6 +593,9 @@
                             mEventListener.onBufferReady(encodedData, info);
                             mEncoder.releaseOutputBuffer(index, false);
                         }
+                    } else if (index == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED){
+                        Log.i(TAG, "output buffer changed");
+                        encoderOutputBuffers = mEncoder.getOutputBuffers();
                     }
                 }
             } catch (Exception e) {
diff --git a/tests/tests/print/AndroidManifest.xml b/tests/tests/print/AndroidManifest.xml
index 4c94fd5..b4a2905 100644
--- a/tests/tests/print/AndroidManifest.xml
+++ b/tests/tests/print/AndroidManifest.xml
@@ -19,6 +19,8 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.android.cts.print">
 
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
+
     <application android:allowBackup="false" >
 
         <uses-library android:name="android.test.runner"/>
diff --git a/tests/tests/renderscript/Android.mk b/tests/tests/renderscript/Android.mk
index f3f5123..81434ee 100644
--- a/tests/tests/renderscript/Android.mk
+++ b/tests/tests/renderscript/Android.mk
@@ -30,8 +30,6 @@
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-renderscript-files-under, src)
 
-LOCAL_INSTRUMENTATION_FOR := CtsTestStubs
-
 LOCAL_SDK_VERSION := current
 
 include $(BUILD_CTS_PACKAGE)
diff --git a/tests/tests/renderscript/AndroidManifest.xml b/tests/tests/renderscript/AndroidManifest.xml
index 2a23090..b9405ca 100644
--- a/tests/tests/renderscript/AndroidManifest.xml
+++ b/tests/tests/renderscript/AndroidManifest.xml
@@ -28,7 +28,7 @@
 
     <!-- This is a self-instrumenting test package. -->
     <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
-                     android:targetPackage="com.android.cts.stub"
+                     android:targetPackage="com.android.cts.renderscript"
                      android:label="CTS tests of Renderscript component">
         <meta-data android:name="listener"
             android:value="com.android.cts.runner.CtsTestRunListener" />
diff --git a/tests/res/raw/leak.bc b/tests/tests/renderscript/res/raw/leak.bc
similarity index 100%
rename from tests/res/raw/leak.bc
rename to tests/tests/renderscript/res/raw/leak.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_11.bc b/tests/tests/renderscript/res/raw/set_target_api_11.bc
similarity index 100%
rename from tests/res/raw/set_target_api_11.bc
rename to tests/tests/renderscript/res/raw/set_target_api_11.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_12.bc b/tests/tests/renderscript/res/raw/set_target_api_12.bc
similarity index 100%
rename from tests/res/raw/set_target_api_12.bc
rename to tests/tests/renderscript/res/raw/set_target_api_12.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_13.bc b/tests/tests/renderscript/res/raw/set_target_api_13.bc
similarity index 100%
rename from tests/res/raw/set_target_api_13.bc
rename to tests/tests/renderscript/res/raw/set_target_api_13.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_14.bc b/tests/tests/renderscript/res/raw/set_target_api_14.bc
similarity index 100%
rename from tests/res/raw/set_target_api_14.bc
rename to tests/tests/renderscript/res/raw/set_target_api_14.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_15.bc b/tests/tests/renderscript/res/raw/set_target_api_15.bc
similarity index 100%
rename from tests/res/raw/set_target_api_15.bc
rename to tests/tests/renderscript/res/raw/set_target_api_15.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_16.bc b/tests/tests/renderscript/res/raw/set_target_api_16.bc
similarity index 100%
rename from tests/res/raw/set_target_api_16.bc
rename to tests/tests/renderscript/res/raw/set_target_api_16.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_17.bc b/tests/tests/renderscript/res/raw/set_target_api_17.bc
similarity index 100%
rename from tests/res/raw/set_target_api_17.bc
rename to tests/tests/renderscript/res/raw/set_target_api_17.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_18.bc b/tests/tests/renderscript/res/raw/set_target_api_18.bc
similarity index 100%
rename from tests/res/raw/set_target_api_18.bc
rename to tests/tests/renderscript/res/raw/set_target_api_18.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_19.bc b/tests/tests/renderscript/res/raw/set_target_api_19.bc
similarity index 100%
rename from tests/res/raw/set_target_api_19.bc
rename to tests/tests/renderscript/res/raw/set_target_api_19.bc
Binary files differ
diff --git a/tests/res/raw/set_target_api_too_high.bc b/tests/tests/renderscript/res/raw/set_target_api_too_high.bc
similarity index 100%
rename from tests/res/raw/set_target_api_too_high.bc
rename to tests/tests/renderscript/res/raw/set_target_api_too_high.bc
Binary files differ
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AllocationCopy2DRangeTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AllocationCopy2DRangeTest.java
index 3ac9834..a549906 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AllocationCopy2DRangeTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AllocationCopy2DRangeTest.java
@@ -20,7 +20,6 @@
 import android.renderscript.Element;
 import android.renderscript.Type;
 import java.util.Random;
-import com.android.cts.stub.R;
 
 public class AllocationCopy2DRangeTest extends RSBaseCompute {
     private Allocation mInAllocation;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AllocationResize.java b/tests/tests/renderscript/src/android/renderscript/cts/AllocationResize.java
index 7c711f5..96045af 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AllocationResize.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AllocationResize.java
@@ -20,7 +20,6 @@
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 import java.util.Random;
 
 public class AllocationResize extends RSBaseCompute {
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java b/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java
index 10d2673..7e867f7 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/AllocationTest.java
@@ -16,8 +16,6 @@
 
 package android.renderscript.cts;
 
-import com.android.cts.stub.R;
-
 import android.graphics.Bitmap;
 import android.renderscript.Allocation;
 import android.renderscript.AllocationAdapter;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ClearObjectTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ClearObjectTest.java
index e8a330a..9b1fbb7 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ClearObjectTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ClearObjectTest.java
@@ -22,7 +22,6 @@
 import android.renderscript.Sampler;
 import android.renderscript.Script;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 
 public class ClearObjectTest extends RSBaseCompute {
     int ObjectNum = 1;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/CompilerTest.java b/tests/tests/renderscript/src/android/renderscript/cts/CompilerTest.java
index adad6d5..9d119be 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/CompilerTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/CompilerTest.java
@@ -19,8 +19,6 @@
 import android.renderscript.RSRuntimeException;
 import android.util.Log;
 
-import com.android.cts.stub.R;
-
 /**
  * Test whether the driver properly handles compile-time issues.
  */
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
index e080f42..af176c2 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ComputeTest.java
@@ -48,8 +48,6 @@
 
 import android.renderscript.Type;
 
-import com.android.cts.stub.R;
-
 public class ComputeTest extends RSBaseCompute {
 
     public void testJavaVectorTypes() {
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java
index 4100f6e..b90633e 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ForEachTest.java
@@ -48,8 +48,6 @@
 
 import android.renderscript.Type;
 
-import com.android.cts.stub.R;
-
 public class ForEachTest extends RSBaseCompute {
     /**
      * Test support for reflected forEach() as well as validation of parameters.
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/GetAllocationTest.java b/tests/tests/renderscript/src/android/renderscript/cts/GetAllocationTest.java
index 047ca93..f938569 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/GetAllocationTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/GetAllocationTest.java
@@ -19,7 +19,6 @@
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 import java.util.Random;
 
 public class GetAllocationTest extends RSBaseCompute {
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/GetElementAt.java b/tests/tests/renderscript/src/android/renderscript/cts/GetElementAt.java
index a37a46e..be56a62 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/GetElementAt.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/GetElementAt.java
@@ -20,7 +20,6 @@
 import android.renderscript.Element;
 import android.renderscript.Type;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 import java.util.Random;
 
 public class GetElementAt extends RSBaseCompute {
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java
index fae20f4..f38bdb0 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ImageProcessingTest.java
@@ -59,8 +59,6 @@
 import android.renderscript.ScriptIntrinsicConvolve5x5;
 import android.renderscript.ScriptIntrinsicLUT;
 
-import com.android.cts.stub.R;
-
 public class ImageProcessingTest extends RSBaseCompute {
     private Allocation a1, a2;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/InitTest.java b/tests/tests/renderscript/src/android/renderscript/cts/InitTest.java
index 53fe05b..ec22249 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/InitTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/InitTest.java
@@ -19,7 +19,6 @@
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 
 public class InitTest extends RSBaseCompute {
     private Allocation mIn;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/IsObjectTest.java b/tests/tests/renderscript/src/android/renderscript/cts/IsObjectTest.java
index 58ae448..0bb17cb 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/IsObjectTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/IsObjectTest.java
@@ -21,7 +21,6 @@
 import android.renderscript.Element;
 import android.util.Log;
 import android.view.SurfaceHolder;
-import com.android.cts.stub.R;
 
 import junit.framework.Assert;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java b/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java
index 0a8c8bd..64368b6 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/KernelTest.java
@@ -48,8 +48,6 @@
 
 import android.renderscript.Type;
 
-import com.android.cts.stub.R;
-
 public class KernelTest extends RSBaseCompute {
     /**
      * Test support for reflected forEach() as well as validation of parameters.
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RSUtils.java b/tests/tests/renderscript/src/android/renderscript/cts/RSUtils.java
index a47af15..6038d90 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RSUtils.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RSUtils.java
@@ -19,7 +19,6 @@
 import android.content.res.Resources;
 import android.renderscript.Allocation;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 
 import java.util.Random;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RenderScriptTest.java b/tests/tests/renderscript/src/android/renderscript/cts/RenderScriptTest.java
index e31f3c6..4007260 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RenderScriptTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RenderScriptTest.java
@@ -16,8 +16,6 @@
 
 package android.renderscript.cts;
 
-import com.android.cts.stub.R;
-
 import android.renderscript.RenderScript;
 import android.test.AndroidTestCase;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RsPackColorTo8888Test.java b/tests/tests/renderscript/src/android/renderscript/cts/RsPackColorTo8888Test.java
index bb8b275..d6ea521 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RsPackColorTo8888Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RsPackColorTo8888Test.java
@@ -16,7 +16,6 @@
 
 package android.renderscript.cts;
 
-import com.android.cts.stub.R;
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.renderscript.Float3;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/RsUnpackColor8888Test.java b/tests/tests/renderscript/src/android/renderscript/cts/RsUnpackColor8888Test.java
index c32cc79..4754a9f 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/RsUnpackColor8888Test.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/RsUnpackColor8888Test.java
@@ -16,7 +16,6 @@
 
 package android.renderscript.cts;
 
-import com.android.cts.stub.R;
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.renderscript.Float4;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java
index 916fec3..bc69b0e 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SampleTest.java
@@ -16,8 +16,6 @@
 
 package android.renderscript.cts;
 
-import com.android.cts.stub.R;
-
 import android.graphics.Bitmap;
 import android.renderscript.Allocation;
 import android.renderscript.Allocation.MipmapControl;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java
index c9a79c8..d44c305 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptGroupTest.java
@@ -16,8 +16,6 @@
 
 package android.renderscript.cts;
 
-import com.android.cts.stub.R;
-
 import android.graphics.Bitmap;
 import android.renderscript.Allocation;
 import android.renderscript.AllocationAdapter;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/ScriptTest.java b/tests/tests/renderscript/src/android/renderscript/cts/ScriptTest.java
index ed73b6a..8c41e14 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/ScriptTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/ScriptTest.java
@@ -28,8 +28,6 @@
 
 import android.renderscript.cts.ScriptC_negate;
 
-import com.android.cts.stub.R;
-
 public class ScriptTest extends RSBaseCompute {
 
     public void testScript() {
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SendToClient.java b/tests/tests/renderscript/src/android/renderscript/cts/SendToClient.java
index f944af9..8b48bea 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SendToClient.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SendToClient.java
@@ -21,7 +21,6 @@
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.renderscript.RenderScript.RSMessageHandler;
-import com.android.cts.stub.R;
 
 public class SendToClient extends RSBaseCompute {
     private Allocation mInAllocation;
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SendToClientBlockingTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SendToClientBlockingTest.java
index 00129e9..58fba9b 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SendToClientBlockingTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SendToClientBlockingTest.java
@@ -21,8 +21,6 @@
 import java.util.concurrent.Semaphore;
 import java.util.Random;
 
-import com.android.cts.stub.R;
-
 public class SendToClientBlockingTest extends RSBaseCompute {
     private static final Semaphore mSync = new Semaphore(0);
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/SetObjectTest.java b/tests/tests/renderscript/src/android/renderscript/cts/SetObjectTest.java
index a6626ee..ef6687f 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/SetObjectTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/SetObjectTest.java
@@ -20,7 +20,6 @@
 import android.renderscript.Allocation;
 import android.renderscript.Element;
 import android.util.Log;
-import com.android.cts.stub.R;
 
 import junit.framework.Assert;
 
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/StructArrayTest.java b/tests/tests/renderscript/src/android/renderscript/cts/StructArrayTest.java
index a851501..91e65f8 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/StructArrayTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/StructArrayTest.java
@@ -15,7 +15,6 @@
  */
 
 package android.renderscript.cts;
-import com.android.cts.stub.R;
 
 public class StructArrayTest extends RSBaseCompute {
     /**
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/StructPadTest.java b/tests/tests/renderscript/src/android/renderscript/cts/StructPadTest.java
index 4832202..ee3483a 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/StructPadTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/StructPadTest.java
@@ -17,7 +17,6 @@
 package android.renderscript.cts;
 
 import android.renderscript.Float4;
-import com.android.cts.stub.R;
 
 public class StructPadTest extends RSBaseCompute {
     /**
diff --git a/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java b/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java
index 70fca9b..f167a86 100644
--- a/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java
+++ b/tests/tests/renderscript/src/android/renderscript/cts/VersionTest.java
@@ -18,7 +18,6 @@
 
 import android.renderscript.RenderScript.RSMessageHandler;
 import android.renderscript.RSRuntimeException;
-import com.android.cts.stub.R;
 
 /**
  * Test for appropriate handling of versioned bitcode.
diff --git a/tests/tests/telephony/src/android/telephony/cts/SimRestrictedApisTest.java b/tests/tests/telephony/src/android/telephony/cts/SimRestrictedApisTest.java
index 1123cb0..599bf79 100644
--- a/tests/tests/telephony/src/android/telephony/cts/SimRestrictedApisTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/SimRestrictedApisTest.java
@@ -214,25 +214,13 @@
     }
 
     /**
-     * Tests the TelephonyManager.setPreferredNetworkType() API. This makes a call to
-     * setPreferredNetworkType() API and expects a SecurityException since the test apk
+     * Tests the TelephonyManager.setGlobalPreferredNetworkType() API. This makes a call to
+     * setGlobalPreferredNetworkType() API and expects a SecurityException since the test apk
      * is not signed by certificate on the SIM.
      */
-    public void testSetPreferredNetworkType() {
+    public void testSetGlobalPreferredNetworkType() {
         try {
-            TelephonyManager.getDefault().setPreferredNetworkType(0);
-            fail("Expected SecurityException. App doesn't have carrier privileges.");
-        } catch (SecurityException expected) {}
-    }
-
-    /**
-     * Tests the TelephonyManager.setCdmaSubscription() API. This makes a call to
-     * setCdmaSubscription() API and expects a SecurityException since the test apk
-     * is not signed by certificate on the SIM.
-     */
-    public void testSetCdmaSubscription() {
-        try {
-            TelephonyManager.getDefault().setCdmaSubscription(0);
+            TelephonyManager.getDefault().setGlobalPreferredNetworkType();
             fail("Expected SecurityException. App doesn't have carrier privileges.");
         } catch (SecurityException expected) {}
     }
@@ -255,7 +243,7 @@
      */
     public void testSetOperatorBrandOverride() {
         try {
-            TelephonyManager.getDefault().setOperatorBrandOverride("", "");
+            TelephonyManager.getDefault().setOperatorBrandOverride("");
             fail("Expected SecurityException. App doesn't have carrier privileges.");
         } catch (SecurityException expected) {}
     }
diff --git a/tools/utils/buildCts.py b/tools/utils/buildCts.py
index 0f74a81..b403ce1 100755
--- a/tools/utils/buildCts.py
+++ b/tools/utils/buildCts.py
@@ -165,6 +165,7 @@
     # CTS Stable plan
     plan = tools.TestPlan(packages)
     plan.Exclude(r'android\.display')
+    plan.Exclude(r'com\.android\.cts\.browserbench')
     for package, test_list in flaky_tests.iteritems():
       plan.ExcludeTests(package, test_list)
     self.__WritePlan(plan, 'CTS-stable')
@@ -173,6 +174,7 @@
     plan = tools.TestPlan(packages)
     plan.Exclude('.*')
     plan.Include(r'android\.display')
+    plan.Include(r'com\.android\.cts\.browserbench')
     for package, test_list in flaky_tests.iteritems():
       plan.Include(package)
       plan.IncludeTests(package, test_list)