Loading services/core/java/com/android/server/TelephonyRegistry.java +16 −7 Original line number Diff line number Diff line Loading @@ -873,6 +873,13 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { mContext.registerReceiver(mBroadcastReceiver, filter); } //helper function to determine if limit on num listeners applies to callingUid private boolean doesLimitApplyForListeners(int callingUid, int exemptUid) { return (callingUid != Process.SYSTEM_UID && callingUid != Process.PHONE_UID && callingUid != exemptUid); } @Override public void addOnSubscriptionsChangedListener(String callingPackage, String callingFeatureId, IOnSubscriptionsChangedListener callback) { Loading @@ -887,7 +894,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { // register IBinder b = callback.asBinder(); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), false); boolean doesLimitApply = doesLimitApplyForListeners(Binder.getCallingUid(), Process.myUid()); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), doesLimitApply); // if (r == null) { return; Loading Loading @@ -941,7 +950,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { // register IBinder b = callback.asBinder(); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), false); boolean doesLimitApply = doesLimitApplyForListeners(Binder.getCallingUid(), Process.myUid()); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), doesLimitApply); // if (r == null) { return; Loading Loading @@ -1070,10 +1081,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { // register IBinder b = callback.asBinder(); boolean doesLimitApply = Binder.getCallingUid() != Process.SYSTEM_UID && Binder.getCallingUid() != Process.PHONE_UID && Binder.getCallingUid() != Process.myUid(); boolean doesLimitApply = doesLimitApplyForListeners(Binder.getCallingUid(), Process.myUid()); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), doesLimitApply); if (r == null) { Loading Loading @@ -1417,7 +1426,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { .isRegistrationLimitEnabledInPlatformCompat(callingUid)) { throw new IllegalStateException(errorMsg); } } else if (doesLimitApply && numRecordsForPid } else if (numRecordsForPid >= TelephonyCallback.DEFAULT_PER_PID_REGISTRATION_LIMIT / 2) { // Log the warning independently of the dynamically set limit -- apps shouldn't be // doing this regardless of whether we're throwing them an exception for it. Loading Loading
services/core/java/com/android/server/TelephonyRegistry.java +16 −7 Original line number Diff line number Diff line Loading @@ -873,6 +873,13 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { mContext.registerReceiver(mBroadcastReceiver, filter); } //helper function to determine if limit on num listeners applies to callingUid private boolean doesLimitApplyForListeners(int callingUid, int exemptUid) { return (callingUid != Process.SYSTEM_UID && callingUid != Process.PHONE_UID && callingUid != exemptUid); } @Override public void addOnSubscriptionsChangedListener(String callingPackage, String callingFeatureId, IOnSubscriptionsChangedListener callback) { Loading @@ -887,7 +894,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { // register IBinder b = callback.asBinder(); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), false); boolean doesLimitApply = doesLimitApplyForListeners(Binder.getCallingUid(), Process.myUid()); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), doesLimitApply); // if (r == null) { return; Loading Loading @@ -941,7 +950,9 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { // register IBinder b = callback.asBinder(); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), false); boolean doesLimitApply = doesLimitApplyForListeners(Binder.getCallingUid(), Process.myUid()); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), doesLimitApply); // if (r == null) { return; Loading Loading @@ -1070,10 +1081,8 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { synchronized (mRecords) { // register IBinder b = callback.asBinder(); boolean doesLimitApply = Binder.getCallingUid() != Process.SYSTEM_UID && Binder.getCallingUid() != Process.PHONE_UID && Binder.getCallingUid() != Process.myUid(); boolean doesLimitApply = doesLimitApplyForListeners(Binder.getCallingUid(), Process.myUid()); Record r = add(b, Binder.getCallingUid(), Binder.getCallingPid(), doesLimitApply); if (r == null) { Loading Loading @@ -1417,7 +1426,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { .isRegistrationLimitEnabledInPlatformCompat(callingUid)) { throw new IllegalStateException(errorMsg); } } else if (doesLimitApply && numRecordsForPid } else if (numRecordsForPid >= TelephonyCallback.DEFAULT_PER_PID_REGISTRATION_LIMIT / 2) { // Log the warning independently of the dynamically set limit -- apps shouldn't be // doing this regardless of whether we're throwing them an exception for it. Loading