Loading telephony/java/android/telephony/TelephonyManager.java +35 −28 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.os.BatteryStats; import android.os.Bundle; import android.os.Handler; import android.os.PersistableBundle; import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; Loading Loading @@ -214,6 +215,10 @@ public class TelephonyManager { return ActivityThread.currentOpPackageName(); } private boolean isSystemProcess() { return Process.myUid() == Process.SYSTEM_UID; } /** * Returns the multi SIM variant * Returns DSDS for Dual SIM Dual Standby Loading Loading @@ -2785,18 +2790,17 @@ public class TelephonyManager { * @return ImsiEncryptionInfo Carrier specific information that will be used to encrypt the * IMSI and IMPI. This includes the public key and the key identifier. This information * will be stored in the device keystore. The system will return a null when no key was * found, and the carrier does not require a key. The system will throw the following * exceptions: * 1. IllegalArgumentException when an invalid key is sent. * 2. RuntimeException if the key is required but not found; and also if there was an * internal exception. * found, and the carrier does not require a key. The system will throw * IllegalArgumentException when an invalid key is sent or when key is required but * not found. * @hide */ public ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int keyType) { try { IPhoneSubInfo info = getSubscriberInfo(); if (info == null) { throw new RuntimeException("IMSI error: Subscriber Info is null"); Rlog.e(TAG,"IMSI error: Subscriber Info is null"); return null; } int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId()); if (keyType != KEY_TYPE_EPDG && keyType != KEY_TYPE_WLAN) { Loading @@ -2804,20 +2808,18 @@ public class TelephonyManager { } ImsiEncryptionInfo imsiEncryptionInfo = info.getCarrierInfoForImsiEncryption( subId, keyType, mContext.getOpPackageName()); if (imsiEncryptionInfo == null && isImsiEncryptionRequired(subId, keyType)) { if (imsiEncryptionInfo == null && isImsiEncryptionRequired(subId, keyType)) { Rlog.e(TAG, "IMSI error: key is required but not found"); throw new RuntimeException("IMSI error: key is required but not found"); throw new IllegalArgumentException("IMSI error: key is required but not found"); } return imsiEncryptionInfo; } catch (RemoteException ex) { Rlog.e(TAG, "getCarrierInfoForImsiEncryption RemoteException" + ex); throw new RuntimeException("IMSI error: Remote Exception"); } catch (NullPointerException ex) { // This could happen before phone restarts due to crashing Rlog.e(TAG, "getCarrierInfoForImsiEncryption NullPointerException" + ex); throw new RuntimeException("IMSI error: Null Pointer exception"); } return null; } /** Loading @@ -2833,17 +2835,19 @@ public class TelephonyManager { try { IPhoneSubInfo info = getSubscriberInfo(); if (info == null) { Rlog.e(TAG, "IMSI error: Subscriber Info is null"); if (!isSystemProcess()) { throw new RuntimeException("IMSI error: Subscriber Info is null"); } return; } int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId()); info.resetCarrierKeysForImsiEncryption(subId, mContext.getOpPackageName()); } catch (RemoteException ex) { Rlog.e(TAG, "getCarrierInfoForImsiEncryption RemoteException" + ex); throw new RuntimeException("IMSI error: Remote Exception"); } catch (NullPointerException ex) { // This could happen before phone restarts due to crashing Rlog.e(TAG, "getCarrierInfoForImsiEncryption NullPointerException" + ex); throw new RuntimeException("IMSI error: Null Pointer exception"); if (!isSystemProcess()) { ex.rethrowAsRuntimeException(); } } } Loading Loading @@ -3828,19 +3832,22 @@ public class TelephonyManager { * * @throws SecurityException if the caller does not have carrier privileges or is not the * current default dialer * * @throws IllegalStateException if telephony service is unavailable. */ public void sendDialerSpecialCode(String inputCode) { try { final ITelephony telephony = getITelephony(); if (telephony == null) { if (!isSystemProcess()) { throw new RuntimeException("Telephony service unavailable"); } return; } telephony.sendDialerSpecialCode(mContext.getOpPackageName(), inputCode); } catch (RemoteException ex) { // This could happen if binder process crashes. ex.rethrowFromSystemServer(); } catch (NullPointerException ex) { // This could happen before phone restarts due to crashing throw new IllegalStateException("Telephony service unavailable"); if (!isSystemProcess()) { ex.rethrowAsRuntimeException(); } } } Loading Loading @@ -4992,10 +4999,10 @@ public class TelephonyManager { String v = android.provider.Settings.Global.getString(cr, name); if (index == Integer.MAX_VALUE) { throw new RuntimeException("putIntAtIndex index == MAX_VALUE index=" + index); throw new IllegalArgumentException("putIntAtIndex index == MAX_VALUE index=" + index); } if (index < 0) { throw new RuntimeException("putIntAtIndex index < 0 index=" + index); throw new IllegalArgumentException("putIntAtIndex index < 0 index=" + index); } if (v != null) { valArray = v.split(","); Loading Loading @@ -7263,7 +7270,6 @@ public class TelephonyManager { } } catch (RemoteException ex) { // This could happen if binder process crashes. ex.rethrowAsRuntimeException(); } return UNKNOWN_CARRIER_ID; } Loading @@ -7288,7 +7294,6 @@ public class TelephonyManager { } } catch (RemoteException ex) { // This could happen if binder process crashes. ex.rethrowAsRuntimeException(); } return null; } Loading Loading @@ -7746,7 +7751,9 @@ public class TelephonyManager { } } catch (RemoteException ex) { // This could happen if binder process crashes. if (!isSystemProcess()) { ex.rethrowAsRuntimeException(); } } } } Loading
telephony/java/android/telephony/TelephonyManager.java +35 −28 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.os.BatteryStats; import android.os.Bundle; import android.os.Handler; import android.os.PersistableBundle; import android.os.Process; import android.os.RemoteException; import android.os.ResultReceiver; import android.os.ServiceManager; Loading Loading @@ -214,6 +215,10 @@ public class TelephonyManager { return ActivityThread.currentOpPackageName(); } private boolean isSystemProcess() { return Process.myUid() == Process.SYSTEM_UID; } /** * Returns the multi SIM variant * Returns DSDS for Dual SIM Dual Standby Loading Loading @@ -2785,18 +2790,17 @@ public class TelephonyManager { * @return ImsiEncryptionInfo Carrier specific information that will be used to encrypt the * IMSI and IMPI. This includes the public key and the key identifier. This information * will be stored in the device keystore. The system will return a null when no key was * found, and the carrier does not require a key. The system will throw the following * exceptions: * 1. IllegalArgumentException when an invalid key is sent. * 2. RuntimeException if the key is required but not found; and also if there was an * internal exception. * found, and the carrier does not require a key. The system will throw * IllegalArgumentException when an invalid key is sent or when key is required but * not found. * @hide */ public ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int keyType) { try { IPhoneSubInfo info = getSubscriberInfo(); if (info == null) { throw new RuntimeException("IMSI error: Subscriber Info is null"); Rlog.e(TAG,"IMSI error: Subscriber Info is null"); return null; } int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId()); if (keyType != KEY_TYPE_EPDG && keyType != KEY_TYPE_WLAN) { Loading @@ -2804,20 +2808,18 @@ public class TelephonyManager { } ImsiEncryptionInfo imsiEncryptionInfo = info.getCarrierInfoForImsiEncryption( subId, keyType, mContext.getOpPackageName()); if (imsiEncryptionInfo == null && isImsiEncryptionRequired(subId, keyType)) { if (imsiEncryptionInfo == null && isImsiEncryptionRequired(subId, keyType)) { Rlog.e(TAG, "IMSI error: key is required but not found"); throw new RuntimeException("IMSI error: key is required but not found"); throw new IllegalArgumentException("IMSI error: key is required but not found"); } return imsiEncryptionInfo; } catch (RemoteException ex) { Rlog.e(TAG, "getCarrierInfoForImsiEncryption RemoteException" + ex); throw new RuntimeException("IMSI error: Remote Exception"); } catch (NullPointerException ex) { // This could happen before phone restarts due to crashing Rlog.e(TAG, "getCarrierInfoForImsiEncryption NullPointerException" + ex); throw new RuntimeException("IMSI error: Null Pointer exception"); } return null; } /** Loading @@ -2833,17 +2835,19 @@ public class TelephonyManager { try { IPhoneSubInfo info = getSubscriberInfo(); if (info == null) { Rlog.e(TAG, "IMSI error: Subscriber Info is null"); if (!isSystemProcess()) { throw new RuntimeException("IMSI error: Subscriber Info is null"); } return; } int subId = getSubId(SubscriptionManager.getDefaultDataSubscriptionId()); info.resetCarrierKeysForImsiEncryption(subId, mContext.getOpPackageName()); } catch (RemoteException ex) { Rlog.e(TAG, "getCarrierInfoForImsiEncryption RemoteException" + ex); throw new RuntimeException("IMSI error: Remote Exception"); } catch (NullPointerException ex) { // This could happen before phone restarts due to crashing Rlog.e(TAG, "getCarrierInfoForImsiEncryption NullPointerException" + ex); throw new RuntimeException("IMSI error: Null Pointer exception"); if (!isSystemProcess()) { ex.rethrowAsRuntimeException(); } } } Loading Loading @@ -3828,19 +3832,22 @@ public class TelephonyManager { * * @throws SecurityException if the caller does not have carrier privileges or is not the * current default dialer * * @throws IllegalStateException if telephony service is unavailable. */ public void sendDialerSpecialCode(String inputCode) { try { final ITelephony telephony = getITelephony(); if (telephony == null) { if (!isSystemProcess()) { throw new RuntimeException("Telephony service unavailable"); } return; } telephony.sendDialerSpecialCode(mContext.getOpPackageName(), inputCode); } catch (RemoteException ex) { // This could happen if binder process crashes. ex.rethrowFromSystemServer(); } catch (NullPointerException ex) { // This could happen before phone restarts due to crashing throw new IllegalStateException("Telephony service unavailable"); if (!isSystemProcess()) { ex.rethrowAsRuntimeException(); } } } Loading Loading @@ -4992,10 +4999,10 @@ public class TelephonyManager { String v = android.provider.Settings.Global.getString(cr, name); if (index == Integer.MAX_VALUE) { throw new RuntimeException("putIntAtIndex index == MAX_VALUE index=" + index); throw new IllegalArgumentException("putIntAtIndex index == MAX_VALUE index=" + index); } if (index < 0) { throw new RuntimeException("putIntAtIndex index < 0 index=" + index); throw new IllegalArgumentException("putIntAtIndex index < 0 index=" + index); } if (v != null) { valArray = v.split(","); Loading Loading @@ -7263,7 +7270,6 @@ public class TelephonyManager { } } catch (RemoteException ex) { // This could happen if binder process crashes. ex.rethrowAsRuntimeException(); } return UNKNOWN_CARRIER_ID; } Loading @@ -7288,7 +7294,6 @@ public class TelephonyManager { } } catch (RemoteException ex) { // This could happen if binder process crashes. ex.rethrowAsRuntimeException(); } return null; } Loading Loading @@ -7746,7 +7751,9 @@ public class TelephonyManager { } } catch (RemoteException ex) { // This could happen if binder process crashes. if (!isSystemProcess()) { ex.rethrowAsRuntimeException(); } } } }