Loading tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java +19 −19 Original line number Diff line number Diff line Loading @@ -173,7 +173,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -195,7 +195,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE // The READ_PRIVILEGED_PHONE_STATE permission is now required to get device identifiers. mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -282,7 +282,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -303,7 +303,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -365,7 +365,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -386,7 +386,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -442,7 +442,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -451,7 +451,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("00", mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(0, TAG, FEATURE_ID)); Loading Loading @@ -508,7 +508,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -530,7 +530,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE // The READ_PRIVILEGED_PHONE_STATE permission is now required to get device identifiers. mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -593,7 +593,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -614,7 +614,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -760,7 +760,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -769,7 +769,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("LINE1_SIM_0", mPhoneSubInfoControllerUT Loading Loading @@ -907,7 +907,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -916,7 +916,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("+18051234567", mPhoneSubInfoControllerUT Loading Loading @@ -963,7 +963,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -972,7 +972,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("VM_SIM_0", mPhoneSubInfoControllerUT Loading Loading @@ -1100,7 +1100,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading tests/telephonytests/src/com/android/internal/telephony/TelephonyPermissionsTest.java +8 −4 Original line number Diff line number Diff line Loading @@ -170,8 +170,10 @@ public class TelephonyPermissionsTest { public void testCheckReadPhoneState_hasPermissionAndAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); when(mMockAppOps.noteOp(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))).thenReturn(AppOpsManager.MODE_ALLOWED); when(mMockAppOps .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))) .thenReturn(AppOpsManager.MODE_ALLOWED); assertTrue(TelephonyPermissions.checkReadPhoneState( mMockContext, SUB_ID, PID, UID, PACKAGE, FEATURE, MSG)); } Loading Loading @@ -212,8 +214,10 @@ public class TelephonyPermissionsTest { public void testCheckReadPhoneStateOnAnyActiveSub_hasPermissionAndAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); when(mMockAppOps.noteOp(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))).thenReturn(AppOpsManager.MODE_ALLOWED); when(mMockAppOps .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))) .thenReturn(AppOpsManager.MODE_ALLOWED); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, PID, UID, PACKAGE, FEATURE, MSG)); } Loading tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +59 −0 Original line number Diff line number Diff line Loading @@ -527,6 +527,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); // Grant identifier access setIdentifierAccess(true); // Revoke carrier privileges. Loading Loading @@ -584,6 +588,11 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); setIdentifierAccess(false); setCarrierPrivilegesForSubId(false, 1); setCarrierPrivilegesForSubId(false, 2); Loading Loading @@ -816,6 +825,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); List<SubscriptionInfo> subInfos = mSubscriptionManagerServiceUT .getActiveSubscriptionInfoList(CALLING_PACKAGE, CALLING_FEATURE, true); Loading Loading @@ -845,6 +858,11 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); SubscriptionInfo subInfo = mSubscriptionManagerServiceUT .getActiveSubscriptionInfoForSimSlotIndex(0, CALLING_PACKAGE, CALLING_FEATURE); Loading Loading @@ -939,6 +957,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { public void testUpdateEmbeddedSubscriptionsNullResult() { // Grant READ_PHONE_STATE permission. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); doReturn(null).when(mEuiccController).blockingGetEuiccProfileInfoList(anyInt()); Loading @@ -960,6 +982,11 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); SubscriptionInfo subInfo = mSubscriptionManagerServiceUT .getActiveSubscriptionInfoForSimSlotIndex(0, CALLING_PACKAGE, CALLING_FEATURE); Loading Loading @@ -1571,7 +1598,12 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { assertThat(mSubscriptionManagerServiceUT.getOpportunisticSubscriptions( CALLING_PACKAGE, CALLING_FEATURE)).isEmpty(); // Grant READ_PHONE_STATE permission mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); setIdentifierAccess(true); setPhoneNumberAccess(PackageManager.PERMISSION_GRANTED); Loading Loading @@ -2924,4 +2956,31 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { assertThat(subInfo.isRemovableEmbedded()).isFalse(); assertThat(subInfo.getNativeAccessRules()).isEqualTo(new byte[]{}); } @Test public void testGetActiveSubscriptionInfoListNoSecurityException() { // Grant MODIFY_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); insertSubscription(FAKE_SUBSCRIPTION_INFO1); insertSubscription(new SubscriptionInfoInternal.Builder(FAKE_SUBSCRIPTION_INFO2) .setSimSlotIndex(SubscriptionManager.INVALID_SIM_SLOT_INDEX).build()); // Remove MODIFY_PHONE_STATE mContextFixture.removeCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); // Should get an empty list without READ_PHONE_STATE. assertThat(mSubscriptionManagerServiceUT.getActiveSubscriptionInfoList( CALLING_PACKAGE, CALLING_FEATURE, true)).isEmpty(); // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Disallow the application to perform. doReturn(AppOpsManager.MODE_ERRORED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); // Should get an empty list if the application is not allowed to perform it. assertThat(mSubscriptionManagerServiceUT.getActiveSubscriptionInfoList( CALLING_PACKAGE, CALLING_FEATURE, true)).isEmpty(); } } Loading
tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java +19 −19 Original line number Diff line number Diff line Loading @@ -173,7 +173,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -195,7 +195,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE // The READ_PRIVILEGED_PHONE_STATE permission is now required to get device identifiers. mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -282,7 +282,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -303,7 +303,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -365,7 +365,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -386,7 +386,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -442,7 +442,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -451,7 +451,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("00", mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(0, TAG, FEATURE_ID)); Loading Loading @@ -508,7 +508,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -530,7 +530,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE // The READ_PRIVILEGED_PHONE_STATE permission is now required to get device identifiers. mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -593,7 +593,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading @@ -614,7 +614,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); try { Loading Loading @@ -760,7 +760,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -769,7 +769,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("LINE1_SIM_0", mPhoneSubInfoControllerUT Loading Loading @@ -907,7 +907,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -916,7 +916,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("+18051234567", mPhoneSubInfoControllerUT Loading Loading @@ -963,7 +963,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading @@ -972,7 +972,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); assertEquals("VM_SIM_0", mPhoneSubInfoControllerUT Loading Loading @@ -1100,7 +1100,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { //case 2: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOpNoThrow( eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG), eq(FEATURE_ID), nullable(String.class)); Loading
tests/telephonytests/src/com/android/internal/telephony/TelephonyPermissionsTest.java +8 −4 Original line number Diff line number Diff line Loading @@ -170,8 +170,10 @@ public class TelephonyPermissionsTest { public void testCheckReadPhoneState_hasPermissionAndAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); when(mMockAppOps.noteOp(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))).thenReturn(AppOpsManager.MODE_ALLOWED); when(mMockAppOps .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))) .thenReturn(AppOpsManager.MODE_ALLOWED); assertTrue(TelephonyPermissions.checkReadPhoneState( mMockContext, SUB_ID, PID, UID, PACKAGE, FEATURE, MSG)); } Loading Loading @@ -212,8 +214,10 @@ public class TelephonyPermissionsTest { public void testCheckReadPhoneStateOnAnyActiveSub_hasPermissionAndAppOp() { doNothing().when(mMockContext).enforcePermission( android.Manifest.permission.READ_PHONE_STATE, PID, UID, MSG); when(mMockAppOps.noteOp(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))).thenReturn(AppOpsManager.MODE_ALLOWED); when(mMockAppOps .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), eq(UID), eq(PACKAGE), eq(FEATURE), nullable(String.class))) .thenReturn(AppOpsManager.MODE_ALLOWED); assertTrue(TelephonyPermissions.checkReadPhoneStateOnAnyActiveSub( mMockContext, PID, UID, PACKAGE, FEATURE, MSG)); } Loading
tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +59 −0 Original line number Diff line number Diff line Loading @@ -527,6 +527,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); // Grant identifier access setIdentifierAccess(true); // Revoke carrier privileges. Loading Loading @@ -584,6 +588,11 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); setIdentifierAccess(false); setCarrierPrivilegesForSubId(false, 1); setCarrierPrivilegesForSubId(false, 2); Loading Loading @@ -816,6 +825,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); List<SubscriptionInfo> subInfos = mSubscriptionManagerServiceUT .getActiveSubscriptionInfoList(CALLING_PACKAGE, CALLING_FEATURE, true); Loading Loading @@ -845,6 +858,11 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); SubscriptionInfo subInfo = mSubscriptionManagerServiceUT .getActiveSubscriptionInfoForSimSlotIndex(0, CALLING_PACKAGE, CALLING_FEATURE); Loading Loading @@ -939,6 +957,10 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { public void testUpdateEmbeddedSubscriptionsNullResult() { // Grant READ_PHONE_STATE permission. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); doReturn(null).when(mEuiccController).blockingGetEuiccProfileInfoList(anyInt()); Loading @@ -960,6 +982,11 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); SubscriptionInfo subInfo = mSubscriptionManagerServiceUT .getActiveSubscriptionInfoForSimSlotIndex(0, CALLING_PACKAGE, CALLING_FEATURE); Loading Loading @@ -1571,7 +1598,12 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { assertThat(mSubscriptionManagerServiceUT.getOpportunisticSubscriptions( CALLING_PACKAGE, CALLING_FEATURE)).isEmpty(); // Grant READ_PHONE_STATE permission mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Allow the application to perform. doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); setIdentifierAccess(true); setPhoneNumberAccess(PackageManager.PERMISSION_GRANTED); Loading Loading @@ -2924,4 +2956,31 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { assertThat(subInfo.isRemovableEmbedded()).isFalse(); assertThat(subInfo.getNativeAccessRules()).isEqualTo(new byte[]{}); } @Test public void testGetActiveSubscriptionInfoListNoSecurityException() { // Grant MODIFY_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); insertSubscription(FAKE_SUBSCRIPTION_INFO1); insertSubscription(new SubscriptionInfoInternal.Builder(FAKE_SUBSCRIPTION_INFO2) .setSimSlotIndex(SubscriptionManager.INVALID_SIM_SLOT_INDEX).build()); // Remove MODIFY_PHONE_STATE mContextFixture.removeCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); // Should get an empty list without READ_PHONE_STATE. assertThat(mSubscriptionManagerServiceUT.getActiveSubscriptionInfoList( CALLING_PACKAGE, CALLING_FEATURE, true)).isEmpty(); // Grant READ_PHONE_STATE permission for insertion. mContextFixture.addCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE); // Disallow the application to perform. doReturn(AppOpsManager.MODE_ERRORED).when(mAppOpsManager) .noteOpNoThrow(eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), nullable(String.class), nullable(String.class), nullable(String.class)); // Should get an empty list if the application is not allowed to perform it. assertThat(mSubscriptionManagerServiceUT.getActiveSubscriptionInfoList( CALLING_PACKAGE, CALLING_FEATURE, true)).isEmpty(); } }