Loading src/java/com/android/internal/telephony/IccSmsInterfaceManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ public class IccSmsInterfaceManager { " status=" + status + " ==> " + "("+ Arrays.toString(pdu) + ")"); enforceReceiveAndSend("Updating message on Icc"); if (mAppOps.noteOp(AppOpsManager.OP_WRITE_ICC_SMS, Binder.getCallingUid(), if (mAppOps.noteOp(AppOpsManager.OPSTR_WRITE_ICC_SMS, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { return false; } Loading Loading @@ -274,7 +274,7 @@ public class IccSmsInterfaceManager { "pdu=("+ Arrays.toString(pdu) + "), smsc=(" + Arrays.toString(smsc) +")"); enforceReceiveAndSend("Copying message to Icc"); if (mAppOps.noteOp(AppOpsManager.OP_WRITE_ICC_SMS, Binder.getCallingUid(), if (mAppOps.noteOp(AppOpsManager.OPSTR_WRITE_ICC_SMS, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { return false; } Loading Loading @@ -312,7 +312,7 @@ public class IccSmsInterfaceManager { mContext.enforceCallingOrSelfPermission( Manifest.permission.RECEIVE_SMS, "Reading messages from Icc"); if (mAppOps.noteOp(AppOpsManager.OP_READ_ICC_SMS, Binder.getCallingUid(), if (mAppOps.noteOp(AppOpsManager.OPSTR_READ_ICC_SMS, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { return new ArrayList<SmsRawData>(); } Loading src/java/com/android/internal/telephony/SmsPermissions.java +2 −2 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ public class SmsPermissions { */ public boolean checkCallingCanSendSms(String callingPackage, String message) { mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, message); return mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPackage) return mAppOps.noteOp(AppOpsManager.OPSTR_SEND_SMS, Binder.getCallingUid(), callingPackage) == AppOpsManager.MODE_ALLOWED; } Loading @@ -124,7 +124,7 @@ public class SmsPermissions { */ public boolean checkCallingOrSelfCanSendSms(String callingPackage, String message) { mContext.enforceCallingOrSelfPermission(Manifest.permission.SEND_SMS, message); return mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPackage) return mAppOps.noteOp(AppOpsManager.OPSTR_SEND_SMS, Binder.getCallingUid(), callingPackage) == AppOpsManager.MODE_ALLOWED; } Loading src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -132,8 +132,8 @@ public class DataServiceManager extends Handler { try { mPackageManager.grantDefaultPermissionsToEnabledTelephonyDataServices( pkgToGrant, mPhone.getContext().getUserId()); mAppOps.setMode(AppOpsManager.OP_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(), pkgToGrant[0], AppOpsManager.MODE_ALLOWED); mAppOps.setMode(AppOpsManager.OPSTR_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(), pkgToGrant[0], AppOpsManager.MODE_ALLOWED); } catch (RemoteException e) { loge("Binder to package manager died, permission grant for DataService failed."); throw e.rethrowAsRuntimeException(); Loading @@ -157,7 +157,7 @@ public class DataServiceManager extends Handler { mPackageManager.revokeDefaultPermissionsFromDisabledTelephonyDataServices( dataServicesArray, mPhone.getContext().getUserId()); for (String pkg : dataServices) { mAppOps.setMode(AppOpsManager.OP_MANAGE_IPSEC_TUNNELS, mAppOps.setMode(AppOpsManager.OPSTR_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(), pkg, AppOpsManager.MODE_ERRORED); } Loading src/java/com/android/internal/telephony/ims/RcsPermissions.java +6 −7 Original line number Diff line number Diff line Loading @@ -28,34 +28,33 @@ class RcsPermissions { context.enforcePermission(Manifest.permission.READ_SMS, pid, uid, null); checkOp(context, uid, callingPackage, AppOpsManager.OP_READ_SMS); checkOp(context, uid, callingPackage, AppOpsManager.OPSTR_READ_SMS); } static void checkWritePermissions(Context context, String callingPackage) { int uid = Binder.getCallingUid(); checkOp(context, uid, callingPackage, AppOpsManager.OP_WRITE_SMS); checkOp(context, uid, callingPackage, AppOpsManager.OPSTR_WRITE_SMS); } /** * Notes the provided op, but throws even if the op mode is {@link AppOpsManager.MODE_IGNORED}. * <p> * {@link AppOpsManager.OP_WRITE_SMS} defaults to {@link AppOpsManager.MODE_IGNORED} to avoid * {@link AppOpsManager.OPSTR_WRITE_SMS} defaults to {@link AppOpsManager.MODE_IGNORED} to avoid * crashing applications written before the app op was introduced. Since this is a new API, * consumers should be aware of the permission requirements, and we should be safe to throw a * {@link SecurityException} instead of providing a dummy value (which could cause unexpected * application behavior and possible loss of user data). {@link AppOpsManager.OP_READ_SMS} is * application behavior and possible loss of user data). {@link AppOpsManager.OPSTR_READ_SMS} is * not normally in {@link AppOpsManager.MODE_IGNORED}, but we maintain the same behavior for * consistency with handling of write permissions. */ private static void checkOp(Context context, int uid, String callingPackage, int op) { private static void checkOp(Context context, int uid, String callingPackage, String op) { AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); int mode = appOps.noteOp(op, uid, callingPackage); if (mode != AppOpsManager.MODE_ALLOWED) { throw new SecurityException( AppOpsManager.opToName(op) + " not allowed for " + callingPackage); throw new SecurityException(op + " not allowed for " + callingPackage); } } } tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java +28 −28 Original line number Diff line number Diff line Loading @@ -119,7 +119,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getDeviceIdForPhone(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -140,7 +140,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { // 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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getDeviceIdForPhone(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -195,14 +195,14 @@ 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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getNaiForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getNaiForSubscriber(1, TAG)); //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("aaa@example.com", mPhoneSubInfoControllerUT.getNaiForSubscriber(0, TAG)); assertEquals("bbb@example.com", mPhoneSubInfoControllerUT.getNaiForSubscriber(1, TAG)); } Loading Loading @@ -247,7 +247,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getImeiForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -267,7 +267,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getImeiForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -322,7 +322,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(1, TAG)); Loading @@ -330,7 +330,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("00", mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(0, TAG)); assertEquals("01", mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(1, TAG)); } Loading Loading @@ -385,7 +385,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getSubscriberIdForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -406,7 +406,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { // 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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getSubscriberIdForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -467,7 +467,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getIccSerialNumberForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -487,7 +487,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getIccSerialNumberForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -525,11 +525,11 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { READ_SMS and no OP_WRITE_SMS & OP_READ_SMS from appOsMgr */ mContextFixture.removeCallingOrSelfPermission(ContextFixture.PERMISSION_ENABLE_ALL); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_SMS), anyInt(), eq(TAG)); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_WRITE_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_WRITE_SMS), anyInt(), eq(TAG)); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -546,13 +546,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { /* case 2: only enable WRITE_SMS permission */ doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_WRITE_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_WRITE_SMS), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); /* case 3: only enable READ_PRIVILEGED_PHONE_STATE */ doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_WRITE_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_WRITE_SMS), anyInt(), eq(TAG)); mContextFixture.addCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); Loading @@ -565,13 +565,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { /* case 5: enable appOsMgr READ_PHONE_PERMISSION & READ_PHONE_STATE */ doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); /* case 6: only enable READ_SMS */ doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); mContextFixture.removeCallingOrSelfPermission(READ_PHONE_STATE); mContextFixture.addCallingOrSelfPermission(READ_SMS); assertNull(mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); Loading @@ -579,7 +579,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { /* case 7: enable READ_SMS and OP_READ_SMS */ doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_SMS), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); } Loading Loading @@ -623,7 +623,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getLine1AlphaTagForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getLine1AlphaTagForSubscriber(1, TAG)); Loading @@ -631,7 +631,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("LINE1_SIM_0", mPhoneSubInfoControllerUT .getLine1AlphaTagForSubscriber(0, TAG)); assertEquals("LINE1_SIM_1", mPhoneSubInfoControllerUT Loading Loading @@ -675,7 +675,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getMsisdnForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getMsisdnForSubscriber(1, TAG)); Loading @@ -683,7 +683,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getMsisdnForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getMsisdnForSubscriber(1, TAG)); } Loading Loading @@ -727,7 +727,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailNumberForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailNumberForSubscriber(1, TAG)); Loading @@ -735,7 +735,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT .getVoiceMailNumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT Loading Loading @@ -781,7 +781,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailAlphaTagForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailAlphaTagForSubscriber(1, TAG)); Loading @@ -789,7 +789,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("VM_SIM_0", mPhoneSubInfoControllerUT .getVoiceMailAlphaTagForSubscriber(0, TAG)); assertEquals("VM_SIM_1", mPhoneSubInfoControllerUT Loading Loading
src/java/com/android/internal/telephony/IccSmsInterfaceManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ public class IccSmsInterfaceManager { " status=" + status + " ==> " + "("+ Arrays.toString(pdu) + ")"); enforceReceiveAndSend("Updating message on Icc"); if (mAppOps.noteOp(AppOpsManager.OP_WRITE_ICC_SMS, Binder.getCallingUid(), if (mAppOps.noteOp(AppOpsManager.OPSTR_WRITE_ICC_SMS, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { return false; } Loading Loading @@ -274,7 +274,7 @@ public class IccSmsInterfaceManager { "pdu=("+ Arrays.toString(pdu) + "), smsc=(" + Arrays.toString(smsc) +")"); enforceReceiveAndSend("Copying message to Icc"); if (mAppOps.noteOp(AppOpsManager.OP_WRITE_ICC_SMS, Binder.getCallingUid(), if (mAppOps.noteOp(AppOpsManager.OPSTR_WRITE_ICC_SMS, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { return false; } Loading Loading @@ -312,7 +312,7 @@ public class IccSmsInterfaceManager { mContext.enforceCallingOrSelfPermission( Manifest.permission.RECEIVE_SMS, "Reading messages from Icc"); if (mAppOps.noteOp(AppOpsManager.OP_READ_ICC_SMS, Binder.getCallingUid(), if (mAppOps.noteOp(AppOpsManager.OPSTR_READ_ICC_SMS, Binder.getCallingUid(), callingPackage) != AppOpsManager.MODE_ALLOWED) { return new ArrayList<SmsRawData>(); } Loading
src/java/com/android/internal/telephony/SmsPermissions.java +2 −2 Original line number Diff line number Diff line Loading @@ -111,7 +111,7 @@ public class SmsPermissions { */ public boolean checkCallingCanSendSms(String callingPackage, String message) { mContext.enforceCallingPermission(Manifest.permission.SEND_SMS, message); return mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPackage) return mAppOps.noteOp(AppOpsManager.OPSTR_SEND_SMS, Binder.getCallingUid(), callingPackage) == AppOpsManager.MODE_ALLOWED; } Loading @@ -124,7 +124,7 @@ public class SmsPermissions { */ public boolean checkCallingOrSelfCanSendSms(String callingPackage, String message) { mContext.enforceCallingOrSelfPermission(Manifest.permission.SEND_SMS, message); return mAppOps.noteOp(AppOpsManager.OP_SEND_SMS, Binder.getCallingUid(), callingPackage) return mAppOps.noteOp(AppOpsManager.OPSTR_SEND_SMS, Binder.getCallingUid(), callingPackage) == AppOpsManager.MODE_ALLOWED; } Loading
src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -132,8 +132,8 @@ public class DataServiceManager extends Handler { try { mPackageManager.grantDefaultPermissionsToEnabledTelephonyDataServices( pkgToGrant, mPhone.getContext().getUserId()); mAppOps.setMode(AppOpsManager.OP_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(), pkgToGrant[0], AppOpsManager.MODE_ALLOWED); mAppOps.setMode(AppOpsManager.OPSTR_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(), pkgToGrant[0], AppOpsManager.MODE_ALLOWED); } catch (RemoteException e) { loge("Binder to package manager died, permission grant for DataService failed."); throw e.rethrowAsRuntimeException(); Loading @@ -157,7 +157,7 @@ public class DataServiceManager extends Handler { mPackageManager.revokeDefaultPermissionsFromDisabledTelephonyDataServices( dataServicesArray, mPhone.getContext().getUserId()); for (String pkg : dataServices) { mAppOps.setMode(AppOpsManager.OP_MANAGE_IPSEC_TUNNELS, mAppOps.setMode(AppOpsManager.OPSTR_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(), pkg, AppOpsManager.MODE_ERRORED); } Loading
src/java/com/android/internal/telephony/ims/RcsPermissions.java +6 −7 Original line number Diff line number Diff line Loading @@ -28,34 +28,33 @@ class RcsPermissions { context.enforcePermission(Manifest.permission.READ_SMS, pid, uid, null); checkOp(context, uid, callingPackage, AppOpsManager.OP_READ_SMS); checkOp(context, uid, callingPackage, AppOpsManager.OPSTR_READ_SMS); } static void checkWritePermissions(Context context, String callingPackage) { int uid = Binder.getCallingUid(); checkOp(context, uid, callingPackage, AppOpsManager.OP_WRITE_SMS); checkOp(context, uid, callingPackage, AppOpsManager.OPSTR_WRITE_SMS); } /** * Notes the provided op, but throws even if the op mode is {@link AppOpsManager.MODE_IGNORED}. * <p> * {@link AppOpsManager.OP_WRITE_SMS} defaults to {@link AppOpsManager.MODE_IGNORED} to avoid * {@link AppOpsManager.OPSTR_WRITE_SMS} defaults to {@link AppOpsManager.MODE_IGNORED} to avoid * crashing applications written before the app op was introduced. Since this is a new API, * consumers should be aware of the permission requirements, and we should be safe to throw a * {@link SecurityException} instead of providing a dummy value (which could cause unexpected * application behavior and possible loss of user data). {@link AppOpsManager.OP_READ_SMS} is * application behavior and possible loss of user data). {@link AppOpsManager.OPSTR_READ_SMS} is * not normally in {@link AppOpsManager.MODE_IGNORED}, but we maintain the same behavior for * consistency with handling of write permissions. */ private static void checkOp(Context context, int uid, String callingPackage, int op) { private static void checkOp(Context context, int uid, String callingPackage, String op) { AppOpsManager appOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); int mode = appOps.noteOp(op, uid, callingPackage); if (mode != AppOpsManager.MODE_ALLOWED) { throw new SecurityException( AppOpsManager.opToName(op) + " not allowed for " + callingPackage); throw new SecurityException(op + " not allowed for " + callingPackage); } } }
tests/telephonytests/src/com/android/internal/telephony/PhoneSubInfoControllerTest.java +28 −28 Original line number Diff line number Diff line Loading @@ -119,7 +119,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getDeviceIdForPhone(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -140,7 +140,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { // 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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getDeviceIdForPhone(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -195,14 +195,14 @@ 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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getNaiForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getNaiForSubscriber(1, TAG)); //case 3: no READ_PRIVILEGED_PHONE_STATE mContextFixture.addCallingOrSelfPermission(READ_PHONE_STATE); doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("aaa@example.com", mPhoneSubInfoControllerUT.getNaiForSubscriber(0, TAG)); assertEquals("bbb@example.com", mPhoneSubInfoControllerUT.getNaiForSubscriber(1, TAG)); } Loading Loading @@ -247,7 +247,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getImeiForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -267,7 +267,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getImeiForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -322,7 +322,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(1, TAG)); Loading @@ -330,7 +330,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("00", mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(0, TAG)); assertEquals("01", mPhoneSubInfoControllerUT.getDeviceSvnUsingSubId(1, TAG)); } Loading Loading @@ -385,7 +385,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getSubscriberIdForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -406,7 +406,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { // 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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getSubscriberIdForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -467,7 +467,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getIccSerialNumberForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -487,7 +487,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getIccSerialNumberForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading Loading @@ -525,11 +525,11 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { READ_SMS and no OP_WRITE_SMS & OP_READ_SMS from appOsMgr */ mContextFixture.removeCallingOrSelfPermission(ContextFixture.PERMISSION_ENABLE_ALL); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_SMS), anyInt(), eq(TAG)); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_WRITE_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_WRITE_SMS), anyInt(), eq(TAG)); doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); try { mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG); Assert.fail("expected Security Exception Thrown"); Loading @@ -546,13 +546,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { /* case 2: only enable WRITE_SMS permission */ doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_WRITE_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_WRITE_SMS), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); /* case 3: only enable READ_PRIVILEGED_PHONE_STATE */ doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_WRITE_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_WRITE_SMS), anyInt(), eq(TAG)); mContextFixture.addCallingOrSelfPermission(READ_PRIVILEGED_PHONE_STATE); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); Loading @@ -565,13 +565,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { /* case 5: enable appOsMgr READ_PHONE_PERMISSION & READ_PHONE_STATE */ doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); /* case 6: only enable READ_SMS */ doReturn(AppOpsManager.MODE_ERRORED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); mContextFixture.removeCallingOrSelfPermission(READ_PHONE_STATE); mContextFixture.addCallingOrSelfPermission(READ_SMS); assertNull(mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); Loading @@ -579,7 +579,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest { /* case 7: enable READ_SMS and OP_READ_SMS */ doReturn(AppOpsManager.MODE_ALLOWED).when(mAppOsMgr).noteOp( eq(AppOpsManager.OP_READ_SMS), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_SMS), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getLine1NumberForSubscriber(1, TAG)); } Loading Loading @@ -623,7 +623,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getLine1AlphaTagForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getLine1AlphaTagForSubscriber(1, TAG)); Loading @@ -631,7 +631,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("LINE1_SIM_0", mPhoneSubInfoControllerUT .getLine1AlphaTagForSubscriber(0, TAG)); assertEquals("LINE1_SIM_1", mPhoneSubInfoControllerUT Loading Loading @@ -675,7 +675,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getMsisdnForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getMsisdnForSubscriber(1, TAG)); Loading @@ -683,7 +683,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT.getMsisdnForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT.getMsisdnForSubscriber(1, TAG)); } Loading Loading @@ -727,7 +727,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailNumberForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailNumberForSubscriber(1, TAG)); Loading @@ -735,7 +735,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("+18051234567", mPhoneSubInfoControllerUT .getVoiceMailNumberForSubscriber(0, TAG)); assertEquals("+18052345678", mPhoneSubInfoControllerUT Loading Loading @@ -781,7 +781,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailAlphaTagForSubscriber(0, TAG)); assertNull(mPhoneSubInfoControllerUT.getVoiceMailAlphaTagForSubscriber(1, TAG)); Loading @@ -789,7 +789,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( eq(AppOpsManager.OP_READ_PHONE_STATE), anyInt(), eq(TAG)); eq(AppOpsManager.OPSTR_READ_PHONE_STATE), anyInt(), eq(TAG)); assertEquals("VM_SIM_0", mPhoneSubInfoControllerUT .getVoiceMailAlphaTagForSubscriber(0, TAG)); assertEquals("VM_SIM_1", mPhoneSubInfoControllerUT Loading