Merge "Migrate LowRamDeviceTest to Junit4" into stage-aosp-pi-cts-dev
diff --git a/apps/CtsVerifier/AndroidManifest.xml b/apps/CtsVerifier/AndroidManifest.xml
index 9de696a..7f367db 100644
--- a/apps/CtsVerifier/AndroidManifest.xml
+++ b/apps/CtsVerifier/AndroidManifest.xml
@@ -18,7 +18,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="com.android.cts.verifier"
       android:versionCode="5"
-      android:versionName="9.0_r1">
+      android:versionName="9.0_r2">
 
     <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28"/>
 
@@ -1294,7 +1294,8 @@
                 <category android:name="android.cts.intent.category.MANUAL_TEST" />
             </intent-filter>
             <meta-data android:name="test_category" android:value="@string/test_category_networking" />
-            <meta-data android:name="test_required_features" android:value="android.hardware.wifi" />
+            <meta-data android:name="test_required_features"
+                       android:value="android.hardware.wifi:android.hardware.telephony" />
             <meta-data android:name="test_excluded_features"
                        android:value="android.hardware.type.television:android.software.leanback:android.hardware.type.watch" />
         </activity>
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 1610338..f800f15 100755
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -2436,7 +2436,7 @@
     <string name="provisioning_byod_user_settings_instruction">
         Please press the Go button to open the Settings page.
         (If this device has a separate app for work settings, ignore the Go button and open that app manually from the launcher.)\n
-        Navigate to Users (or \"Multiple Users\") and confirm that:\n
+        Navigate to Accounts and confirm that:\n
         - There are two auto-sync options present, one for personal and one for work data (either on the screen or in the overflow menu).\n
         - De-selecting either option prompts a warning dialog.\n
         \n
diff --git a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java
index 7d05b17..214eebb 100755
--- a/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java
+++ b/hostsidetests/devicepolicy/app/DeviceAndProfileOwner/src/com/android/cts/deviceandprofileowner/KeyManagementTest.java
@@ -23,6 +23,7 @@
 
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.content.res.AssetManager;
 import android.keystore.cts.Attestation;
 import android.keystore.cts.AuthorizationList;
@@ -293,20 +294,24 @@
                 signDataWithKey(algoIdentifier, keyPair.getPrivate()));
     }
 
+    private KeyGenParameterSpec buildRsaKeySpec(String alias, boolean useStrongBox) {
+        return new KeyGenParameterSpec.Builder(
+                alias,
+                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
+            .setKeySize(2048)
+            .setDigests(KeyProperties.DIGEST_SHA256)
+            .setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PSS,
+                    KeyProperties.SIGNATURE_PADDING_RSA_PKCS1)
+            .setIsStrongBoxBacked(useStrongBox)
+            .build();
+    }
+
     public void testCanGenerateRSAKeyPair() throws Exception {
         final String alias = "com.android.test.generated-rsa-1";
         try {
-            KeyGenParameterSpec spec = new KeyGenParameterSpec.Builder(
-                    alias,
-                    KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
-                    .setKeySize(2048)
-                    .setDigests(KeyProperties.DIGEST_SHA256)
-                    .setSignaturePaddings(KeyProperties.SIGNATURE_PADDING_RSA_PSS,
-                        KeyProperties.SIGNATURE_PADDING_RSA_PKCS1)
-                    .build();
-
             AttestedKeyPair generated = mDevicePolicyManager.generateKeyPair(
-                    getWho(), "RSA", spec, 0);
+                    getWho(), "RSA", buildRsaKeySpec(alias, false /* useStrongBox */),
+                    0 /* idAttestationFlags */);
             assertNotNull(generated);
             verifySignatureOverData("SHA256withRSA", generated.getKeyPair());
         } finally {
@@ -314,17 +319,34 @@
         }
     }
 
+    public void testCanGenerateRSAKeyPairUsingStrongBox() throws Exception {
+        final String alias = "com.android.test.generated-rsa-sb-1";
+        AttestedKeyPair generated = mDevicePolicyManager.generateKeyPair(
+                getWho(), "RSA", buildRsaKeySpec(alias, true /* useStrongBox */),
+                0 /* idAttestationFlags */);
+        if (generated == null) {
+            assertFalse(hasStrongBox());
+            return;
+        }
+        verifySignatureOverData("SHA256withRSA", generated.getKeyPair());
+        assertTrue(mDevicePolicyManager.removeKeyPair(getWho(), alias));
+    }
+
+    private KeyGenParameterSpec buildEcKeySpec(String alias, boolean useStrongBox) {
+        return new KeyGenParameterSpec.Builder(
+                alias,
+                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
+            .setDigests(KeyProperties.DIGEST_SHA256)
+            .setIsStrongBoxBacked(useStrongBox)
+            .build();
+    }
+
     public void testCanGenerateECKeyPair() throws Exception {
         final String alias = "com.android.test.generated-ec-1";
         try {
-            KeyGenParameterSpec spec = new KeyGenParameterSpec.Builder(
-                    alias,
-                    KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
-                    .setDigests(KeyProperties.DIGEST_SHA256)
-                    .build();
-
             AttestedKeyPair generated = mDevicePolicyManager.generateKeyPair(
-                    getWho(), "EC", spec, 0);
+                    getWho(), "EC", buildEcKeySpec(alias, false /* useStrongBox */),
+                    0 /* idAttestationFlags */);
             assertNotNull(generated);
             verifySignatureOverData("SHA256withECDSA", generated.getKeyPair());
         } finally {
@@ -332,6 +354,18 @@
         }
     }
 
+    public void testCanGenerateECKeyPairUsingStrongBox() throws Exception {
+        final String alias = "com.android.test.generated-ec-sb-1";
+        AttestedKeyPair generated = mDevicePolicyManager.generateKeyPair(
+                getWho(), "EC", buildEcKeySpec(alias, true /* useStrongBox */), 0);
+        if (generated == null) {
+            assertFalse(hasStrongBox());
+            return;
+        }
+        verifySignatureOverData("SHA256withECDSA", generated.getKeyPair());
+        assertTrue(mDevicePolicyManager.removeKeyPair(getWho(), alias));
+    }
+
     private void validateDeviceIdAttestationData(Certificate leaf,
             String expectedSerial, String expectedImei, String expectedMeid)
             throws CertificateParsingException {
@@ -392,8 +426,8 @@
      */
     private Certificate generateKeyAndCheckAttestation(
             String keyAlgorithm, String signatureAlgorithm,
-            String[] signaturePaddings, int deviceIdAttestationFlags)
-            throws Exception {
+            String[] signaturePaddings, boolean useStrongBox,
+            int deviceIdAttestationFlags) throws Exception {
         final String alias =
                 String.format("com.android.test.attested-%s", keyAlgorithm.toLowerCase());
         byte[] attestationChallenge = new byte[] {0x01, 0x02, 0x03};
@@ -402,7 +436,8 @@
                     alias,
                     KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
                     .setDigests(KeyProperties.DIGEST_SHA256)
-                    .setAttestationChallenge(attestationChallenge);
+                    .setAttestationChallenge(attestationChallenge)
+                    .setIsStrongBoxBacked(useStrongBox);
             if (signaturePaddings != null) {
                 specBuilder.setSignaturePaddings(signaturePaddings);
             }
@@ -455,11 +490,24 @@
         for (SupportedKeyAlgorithm supportedKey: SUPPORTED_KEY_ALGORITHMS) {
             assertNotNull(generateKeyAndCheckAttestation(
                     supportedKey.keyAlgorithm, supportedKey.signatureAlgorithm,
-                    supportedKey.signaturePaddingSchemes, 0));
+                    supportedKey.signaturePaddingSchemes, false /* useStrongBox */, 0));
         }
     }
 
-    public void testAllVariationsOfDeviceIdAttestation() throws Exception {
+    public void testCanGenerateKeyPairWithKeyAttestationUsingStrongBox() throws Exception {
+        for (SupportedKeyAlgorithm supportedKey: SUPPORTED_KEY_ALGORITHMS) {
+            Certificate attestation = generateKeyAndCheckAttestation(
+                    supportedKey.keyAlgorithm, supportedKey.signatureAlgorithm,
+                    supportedKey.signaturePaddingSchemes, true /* useStrongBox */,
+                    0 /* idAttestationFlags */);
+            if (attestation == null) {
+                assertFalse("StrongBox-backed key attestation must not fail if the device " +
+                        "declares support for StrongBox", hasStrongBox());
+            }
+        }
+    }
+
+    public void assertAllVariantsOfDeviceIdAttestation(boolean useStrongBox) throws Exception {
         List<Integer> modesToTest = new ArrayList<Integer>();
         String imei = null;
         String meid = null;
@@ -499,12 +547,17 @@
                 for (SupportedKeyAlgorithm supportedKey: SUPPORTED_KEY_ALGORITHMS) {
                     Certificate attestation = generateKeyAndCheckAttestation(
                             supportedKey.keyAlgorithm, supportedKey.signatureAlgorithm,
-                            supportedKey.signaturePaddingSchemes, devIdOpt);
+                            supportedKey.signaturePaddingSchemes, useStrongBox, devIdOpt);
                     // generateKeyAndCheckAttestation should return null if device ID attestation
                     // is not supported. Simply continue to test the next combination.
                     if (attestation == null && !isDeviceIdAttestationSupported()) {
                         continue;
                     }
+                    // The attestation must only be null if StrongBox attestation was requested,
+                    // but StrongBox is not available on the device.
+                    if (attestation == null && useStrongBox) {
+                        assertFalse(hasStrongBox());
+                    }
                     assertNotNull(String.format(
                             "Attestation should be valid for key %s with attestation modes %s",
                             supportedKey.keyAlgorithm, devIdOpt), attestation);
@@ -533,6 +586,14 @@
         }
     }
 
+    public void testAllVariationsOfDeviceIdAttestation() throws Exception {
+        assertAllVariantsOfDeviceIdAttestation(false /* useStrongBox */);
+    }
+
+    public void testAllVariationsOfDeviceIdAttestationUsingStrongBox() throws Exception {
+        assertAllVariantsOfDeviceIdAttestation(true /* useStrongBox */);
+    }
+
     public void testProfileOwnerCannotAttestDeviceUniqueIds() throws Exception {
         if (isDeviceOwner()) {
             return;
@@ -544,6 +605,7 @@
                     generateKeyAndCheckAttestation(supportedKey.keyAlgorithm,
                             supportedKey.signatureAlgorithm,
                             supportedKey.signaturePaddingSchemes,
+                            false /* useStrongBox */,
                             forbiddenModes[i]);
                     fail("Attestation of device UID (" + forbiddenModes[i] + ") should not be "
                             + "possible from profile owner");
@@ -694,4 +756,9 @@
     protected ComponentName getWho() {
         return ADMIN_RECEIVER_COMPONENT;
     }
+
+    boolean hasStrongBox() {
+        return mActivity.getPackageManager()
+            .hasSystemFeature(PackageManager.FEATURE_STRONGBOX_KEYSTORE);
+    }
 }
diff --git a/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java b/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
index a793150..a045488 100644
--- a/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
+++ b/tests/tests/app.usage/src/android/app/usage/cts/UsageStatsTest.java
@@ -274,6 +274,13 @@
     }
 
     @Test
+    public void testGetAppStandbyBucket() throws Exception {
+        // App should be at least active, since it's running instrumentation tests
+        assertLessThanOrEqual(UsageStatsManager.STANDBY_BUCKET_ACTIVE,
+                mUsageStatsManager.getAppStandbyBucket());
+    }
+
+    @Test
     public void testQueryEventsForSelf() throws Exception {
         setAppOpsMode("ignore"); // To ensure permission is not required
         // Time drifts of 2s are expected inside usage stats
diff --git a/tests/tests/media/src/android/media/cts/DecoderTest.java b/tests/tests/media/src/android/media/cts/DecoderTest.java
index 10c061e..c1f72f8 100755
--- a/tests/tests/media/src/android/media/cts/DecoderTest.java
+++ b/tests/tests/media/src/android/media/cts/DecoderTest.java
@@ -709,8 +709,14 @@
     }
 
     public void testH265HDR10StaticMetadata() throws Exception {
+        // Expected value of MediaFormat.KEY_HDR_STATIC_INFO key.
+        // The associated value is a ByteBuffer. This buffer contains the raw contents of the
+        // Static Metadata Descriptor (including the descriptor ID) of an HDMI Dynamic Range and
+        // Mastering InfoFrame as defined by CTA-861.3.
+        // Media frameworks puts the display primaries in RGB order, here we verify the three
+        // primaries are indeed in this order and fail otherwise.
         final String staticInfo =
-                "00 c2 33 c4 86 4c 1d b8  0b d0 84 80 3e 13 3d 42" +
+                "00 d0 84 80 3e c2 33 c4  86 4c 1d b8 0b 13 3d 42" +
                 "40 e8 03 00 00 e8 03 90  01                     " ;
         testHdrStaticMetadata(R.raw.video_1280x720_hevc_hdr10_static_3mbps,
                 staticInfo, false /*metadataInContainer*/);
diff --git a/tests/tests/nativehardware/jni/AHardwareBufferGLTest.cpp b/tests/tests/nativehardware/jni/AHardwareBufferGLTest.cpp
index 680b8b7..a7d6535 100644
--- a/tests/tests/nativehardware/jni/AHardwareBufferGLTest.cpp
+++ b/tests/tests/nativehardware/jni/AHardwareBufferGLTest.cpp
@@ -171,6 +171,7 @@
         case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM:
         case AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM:
         case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM:
+        case GL_RGB565:
         case GL_RGB8: {
             // GL_RGB565 supports uploading GL_UNSIGNED_BYTE data.
             const int size = desc.width * desc.height * 3;
@@ -344,6 +345,12 @@
             golden_max[3] = 128;
         }
     }
+    // Adjust color range for RGB565.
+    if ((golden.color == kRed50 || golden.color == kRed50Alpha100) &&
+        (format == GL_RGB565 || format == AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM)) {
+        golden_pixel[0] = 123;
+        golden_max[0] = 132;
+    }
 
     if (use_range) {
         CheckGoldenPixel(golden.x, golden.y, golden_pixel, golden_max, pixel);
@@ -1576,6 +1583,8 @@
         AHardwareBuffer_Desc{75, 33, 1, GL_RGB8, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{64, 80, 1, GL_RGBA8, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{49, 23, 1, GL_SRGB8_ALPHA8, 0, kGlFormat | kUseSrgb, 0, 0},
+        // TODO: enable for Android Q.
+        // AHardwareBuffer_Desc{63, 78, 1, GL_RGB565, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{42, 41, 1, GL_RGBA16F, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{37, 63, 1, GL_RGB10_A2, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{33, 20, 1, AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, 0, 0, 0, 0},
@@ -1596,6 +1605,8 @@
         AHardwareBuffer_Desc{64, 80, 6, GL_RGBA8, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{33, 28, 4, GL_SRGB8_ALPHA8, 0, kGlFormat | kUseSrgb, 0, 0},
         AHardwareBuffer_Desc{42, 41, 3, GL_RGBA16F, 0, kGlFormat, 0, 0},
+        // TODO: enable for Android Q.
+        // AHardwareBuffer_Desc{63, 78, 3, GL_RGB565, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{37, 63, 4, GL_RGB10_A2, 0, kGlFormat, 0, 0},
         AHardwareBuffer_Desc{25, 77, 7, AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, 0, 0, 0, 0},
         AHardwareBuffer_Desc{25, 77, 7, AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM, 0, kUseSrgb, 0, 0},
diff --git a/tests/tests/secure_element/access_control/AccessControlApp1/apk/signed-CtsSecureElementAccessControlTestCases1.apk b/tests/tests/secure_element/access_control/AccessControlApp1/apk/signed-CtsSecureElementAccessControlTestCases1.apk
index a064bc7..7328762 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp1/apk/signed-CtsSecureElementAccessControlTestCases1.apk
+++ b/tests/tests/secure_element/access_control/AccessControlApp1/apk/signed-CtsSecureElementAccessControlTestCases1.apk
Binary files differ
diff --git a/tests/tests/secure_element/access_control/AccessControlApp1/src/android/omapi/accesscontrol1/cts/AccessControlTest.java b/tests/tests/secure_element/access_control/AccessControlApp1/src/android/omapi/accesscontrol1/cts/AccessControlTest.java
index 9fe37ea..22b8432 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp1/src/android/omapi/accesscontrol1/cts/AccessControlTest.java
+++ b/tests/tests/secure_element/access_control/AccessControlApp1/src/android/omapi/accesscontrol1/cts/AccessControlTest.java
@@ -115,7 +115,7 @@
     private final static byte[][] AUTHORIZED_APDU_AID_41 = new byte[][] {
         { (byte) 0x94, 0x06, 0x00, 0x00 },
         { (byte) 0x94, 0x08, 0x00, 0x00, 0x00 },
-        { (byte) 0x94, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x94, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
         { (byte) 0x94, 0x0A, 0x00, 0x00, 0x01, (byte) 0xAA } };
     /* Unauthorized APDU for AID_41 */
     private final static byte[][] UNAUTHORIZED_APDU_AID_41 = new byte[][] {
@@ -127,9 +127,9 @@
         { (byte) 0xA0, 0x0A, 0x00, 0x00, 0x01, (byte) 0xAA },
         { (byte) 0x80, 0x08, 0x00, 0x00, 0x00 },
         { (byte) 0xA0, 0x08, 0x00, 0x00, 0x00 },
-        { 0x00, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0x80, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0xA0, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { 0x00, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x80, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0xA0, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
     };
 
     private final long SERVICE_CONNECTION_TIME_OUT = 3000;
diff --git a/tests/tests/secure_element/access_control/AccessControlApp2/apk/signed-CtsSecureElementAccessControlTestCases2.apk b/tests/tests/secure_element/access_control/AccessControlApp2/apk/signed-CtsSecureElementAccessControlTestCases2.apk
index 71c57e9..072f2af 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp2/apk/signed-CtsSecureElementAccessControlTestCases2.apk
+++ b/tests/tests/secure_element/access_control/AccessControlApp2/apk/signed-CtsSecureElementAccessControlTestCases2.apk
Binary files differ
diff --git a/tests/tests/secure_element/access_control/AccessControlApp2/src/android/omapi/accesscontrol2/cts/AccessControlTest.java b/tests/tests/secure_element/access_control/AccessControlApp2/src/android/omapi/accesscontrol2/cts/AccessControlTest.java
index 74021c3..3adc1c9 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp2/src/android/omapi/accesscontrol2/cts/AccessControlTest.java
+++ b/tests/tests/secure_element/access_control/AccessControlApp2/src/android/omapi/accesscontrol2/cts/AccessControlTest.java
@@ -114,7 +114,7 @@
     private final static byte[][] AUTHORIZED_APDU_AID_41 = new byte[][] {
         { (byte) 0x94, 0x06, 0x00, 0x00 },
         { (byte) 0x94, 0x08, 0x00, 0x00, 0x00 },
-        { (byte) 0x94, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x94, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
         { (byte) 0x94, 0x0A, 0x00, 0x00, 0x01, (byte) 0xAA } };
     /* Unauthorized APDU for AID_41 */
     private final static byte[][] UNAUTHORIZED_APDU_AID_41 = new byte[][] {
@@ -126,9 +126,9 @@
         { (byte) 0xA0, 0x0A, 0x00, 0x00, 0x01, (byte) 0xAA },
         { (byte) 0x80, 0x08, 0x00, 0x00, 0x00 },
         { (byte) 0xA0, 0x08, 0x00, 0x00, 0x00 },
-        { 0x00, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0x80, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0xA0, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { 0x00, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x80, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0xA0, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
     };
 
     private final long SERVICE_CONNECTION_TIME_OUT = 3000;
diff --git a/tests/tests/secure_element/access_control/AccessControlApp3/apk/signed-CtsSecureElementAccessControlTestCases3.apk b/tests/tests/secure_element/access_control/AccessControlApp3/apk/signed-CtsSecureElementAccessControlTestCases3.apk
index 647b485..10939c6 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp3/apk/signed-CtsSecureElementAccessControlTestCases3.apk
+++ b/tests/tests/secure_element/access_control/AccessControlApp3/apk/signed-CtsSecureElementAccessControlTestCases3.apk
Binary files differ
diff --git a/tests/tests/secure_element/access_control/AccessControlApp3/src/android/omapi/accesscontrol3/cts/AccessControlTest.java b/tests/tests/secure_element/access_control/AccessControlApp3/src/android/omapi/accesscontrol3/cts/AccessControlTest.java
index 51483e9..7071628 100644
--- a/tests/tests/secure_element/access_control/AccessControlApp3/src/android/omapi/accesscontrol3/cts/AccessControlTest.java
+++ b/tests/tests/secure_element/access_control/AccessControlApp3/src/android/omapi/accesscontrol3/cts/AccessControlTest.java
@@ -114,16 +114,16 @@
         { (byte) 0x80, 0x08, 0x00, 0x00, 0x00 },
         { (byte) 0xA0, 0x08, 0x00, 0x00, 0x00 },
         { (byte) 0x94, 0x08, 0x00, 0x00, 0x00 },
-        { 0x00, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0x80, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0xA0, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0x94, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 }};
+        { 0x00, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x80, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0xA0, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x94, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 }};
 
     /* Authorized APDU for AID_41 */
     private final static byte[][] AUTHORIZED_APDU_AID_41 = new byte[][] {
         { (byte) 0x94, 0x06, 0x00, 0x00 },
         { (byte) 0x94, 0x08, 0x00, 0x00, 0x00 },
-        { (byte) 0x94, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x94, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
         { (byte) 0x94, 0x0A, 0x00, 0x00, 0x01, (byte) 0xAA } };
     /* Unauthorized APDU for AID_41 */
     private final static byte[][] UNAUTHORIZED_APDU_AID_41 = new byte[][] {
@@ -135,9 +135,9 @@
         { (byte) 0xA0, 0x0A, 0x00, 0x00, 0x01, (byte) 0xAA },
         { (byte) 0x80, 0x08, 0x00, 0x00, 0x00 },
         { (byte) 0xA0, 0x08, 0x00, 0x00, 0x00 },
-        { 0x00, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0x80, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
-        { (byte) 0xA0, (byte) 0xC0, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { 0x00, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0x80, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
+        { (byte) 0xA0, (byte) 0x0C, 0x00, 0x00, 0x01, (byte) 0xAA, 0x00 },
     };
 
     private final long SERVICE_CONNECTION_TIME_OUT = 3000;