From 278b8f950948435fb08db0a12313e2ea704fa637 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Wed, 1 Jul 2015 14:34:17 -0700 Subject: Add/Fix Permission check on SubscriptionManager. Things that are modifing should check the modify permission. bug: 19259681 Change-Id: I27c7501d6777deec902b9cd47e194eadef391869 --- .../android/telephony/SubscriptionManager.java | 20 ++++++++--------- .../java/com/android/internal/telephony/ISub.aidl | 25 ++++++++-------------- 2 files changed, 18 insertions(+), 27 deletions(-) (limited to 'telephony/java') diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index fa1ed54..f4a6064 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -335,7 +335,7 @@ public class SubscriptionManager { * onSubscriptionsChanged overridden. */ public void addOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) { - String pkgForDebug = mContext != null ? mContext.getPackageName() : ""; + String pkgForDebug = mContext != null ? mContext.getOpPackageName() : ""; if (DBG) { logd("register OnSubscriptionsChangedListener pkgForDebug=" + pkgForDebug + " listener=" + listener); @@ -361,7 +361,7 @@ public class SubscriptionManager { * @param listener that is to be unregistered. */ public void removeOnSubscriptionsChangedListener(OnSubscriptionsChangedListener listener) { - String pkgForDebug = mContext != null ? mContext.getPackageName() : ""; + String pkgForDebug = mContext != null ? mContext.getOpPackageName() : ""; if (DBG) { logd("unregister OnSubscriptionsChangedListener pkgForDebug=" + pkgForDebug + " listener=" + listener); @@ -603,7 +603,7 @@ public class SubscriptionManager { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { // FIXME: This returns 1 on success, 0 on error should should we return it? - iSub.addSubInfoRecord(iccId, slotId, mContext.getOpPackageName()); + iSub.addSubInfoRecord(iccId, slotId); } } catch (RemoteException ex) { // ignore it @@ -633,7 +633,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - result = iSub.setIconTint(tint, subId, mContext.getOpPackageName()); + result = iSub.setIconTint(tint, subId); } } catch (RemoteException ex) { // ignore it @@ -678,8 +678,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - result = iSub.setDisplayNameUsingSrc(displayName, subId, nameSource, - mContext.getOpPackageName()); + result = iSub.setDisplayNameUsingSrc(displayName, subId, nameSource); } } catch (RemoteException ex) { // ignore it @@ -707,7 +706,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - result = iSub.setDisplayNumber(number, subId, mContext.getOpPackageName()); + result = iSub.setDisplayNumber(number, subId); } } catch (RemoteException ex) { // ignore it @@ -736,7 +735,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - result = iSub.setDataRoaming(roaming, subId, mContext.getOpPackageName()); + result = iSub.setDataRoaming(roaming, subId); } } catch (RemoteException ex) { // ignore it @@ -975,7 +974,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - iSub.clearSubInfo(mContext.getOpPackageName()); + iSub.clearSubInfo(); } } catch (RemoteException ex) { // ignore it @@ -1009,7 +1008,7 @@ public class SubscriptionManager { try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - iSub.clearDefaultsForInactiveSubIds(mContext.getOpPackageName()); + iSub.clearDefaultsForInactiveSubIds(); } } catch (RemoteException ex) { // ignore it @@ -1153,4 +1152,3 @@ public class SubscriptionManager { return false; } } - diff --git a/telephony/java/com/android/internal/telephony/ISub.aidl b/telephony/java/com/android/internal/telephony/ISub.aidl index 918a2eb..0555121 100755 --- a/telephony/java/com/android/internal/telephony/ISub.aidl +++ b/telephony/java/com/android/internal/telephony/ISub.aidl @@ -83,7 +83,7 @@ interface ISub { List getActiveSubscriptionInfoList(String callingPackage); /** - * @param callingPackage The package maing the call. + * @param callingPackage The package making the call. * @return the number of active subscriptions */ int getActiveSubInfoCount(String callingPackage); @@ -97,57 +97,50 @@ interface ISub { * Add a new SubscriptionInfo to subinfo database if needed * @param iccId the IccId of the SIM card * @param slotId the slot which the SIM is inserted - * @param callingPackage The package maing the call. * @return the URL of the newly created row or the updated row */ - int addSubInfoRecord(String iccId, int slotId, String callingPackage); + int addSubInfoRecord(String iccId, int slotId); /** * Set SIM icon tint color by simInfo index * @param tint the icon tint color of the SIM * @param subId the unique SubscriptionInfo index in database - * @param callingPackage The package maing the call. * @return the number of records updated */ - int setIconTint(int tint, int subId, String callingPackage); + int setIconTint(int tint, int subId); /** * Set display name by simInfo index * @param displayName the display name of SIM card * @param subId the unique SubscriptionInfo index in database - * @param callingPackage The package maing the call. * @return the number of records updated */ - int setDisplayName(String displayName, int subId, String callingPackage); + int setDisplayName(String displayName, int subId); /** * Set display name by simInfo index with name source * @param displayName the display name of SIM card * @param subId the unique SubscriptionInfo index in database * @param nameSource, 0: DEFAULT_SOURCE, 1: SIM_SOURCE, 2: USER_INPUT - * @param callingPackage The package maing the call. * @return the number of records updated */ - int setDisplayNameUsingSrc(String displayName, int subId, long nameSource, - String callingPackage); + int setDisplayNameUsingSrc(String displayName, int subId, long nameSource); /** * Set phone number by subId * @param number the phone number of the SIM * @param subId the unique SubscriptionInfo index in database - * @param callingPackage The package maing the call. * @return the number of records updated */ - int setDisplayNumber(String number, int subId, String callingPackage); + int setDisplayNumber(String number, int subId); /** * Set data roaming by simInfo index * @param roaming 0:Don't allow data when roaming, 1:Allow data when roaming - * @param callingPackage The package maing the call. * @param subId the unique SubscriptionInfo index in database * @return the number of records updated */ - int setDataRoaming(int roaming, int subId, String callingPackage); + int setDataRoaming(int roaming, int subId); int getSlotId(int subId); @@ -155,7 +148,7 @@ interface ISub { int getDefaultSubId(); - int clearSubInfo(String callingPackage); + int clearSubInfo(); int getPhoneId(int subId); @@ -175,7 +168,7 @@ interface ISub { void setDefaultSmsSubId(int subId); - void clearDefaultsForInactiveSubIds(String callingPackage); + void clearDefaultsForInactiveSubIds(); int[] getActiveSubIdList(); -- cgit v1.1