Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00cf005b authored by Nathan Harold's avatar Nathan Harold Committed by android-build-merger
Browse files

Merge "Check Carrier Privilege on Hidden Subs" into qt-r1-dev

am: 09ef9e13

Change-Id: Ibb3792dfc28f93dfe96ea67367963b115dbff155
parents 4ed303af 09ef9e13
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -2121,24 +2121,27 @@ public class SubscriptionManager {
     * @hide
     */
    @UnsupportedAppUsage
    public @NonNull int[] getActiveSubscriptionIdList() {
        int[] subId = null;
    public static @NonNull int[] getActiveSubscriptionIdList() {
        return getActiveSubscriptionIdList(true);
    }

    /**
     * @return a non-null list of subId's that are active.
     *
     * @hide
     */
    public static @NonNull int[] getActiveSubscriptionIdList(boolean visibleOnly) {
        try {
            ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub"));
            if (iSub != null) {
                subId = iSub.getActiveSubIdList(/*visibleOnly*/true);
                int[] subId = iSub.getActiveSubIdList(visibleOnly);
                if (subId != null) return subId;
            }
        } catch (RemoteException ex) {
            // ignore it
        }

        if (subId == null) {
            subId = new int[0];
        }

        return subId;

        return new int[0];
    }

    /**
+5 −9
Original line number Diff line number Diff line
@@ -605,17 +605,13 @@ public final class TelephonyPermissions {
     */
    private static boolean checkCarrierPrivilegeForAnySubId(Context context,
            Supplier<ITelephony> telephonySupplier, int uid) {
        SubscriptionManager sm = (SubscriptionManager) context.getSystemService(
                Context.TELEPHONY_SUBSCRIPTION_SERVICE);
        int[] activeSubIds = sm.getActiveSubscriptionIdList();
        if (activeSubIds != null) {
        int[] activeSubIds = SubscriptionManager.getActiveSubscriptionIdList(/*visibleOnly*/ false);
        for (int activeSubId : activeSubIds) {
            if (getCarrierPrivilegeStatus(telephonySupplier, activeSubId, uid)
                    == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) {
                return true;
            }
        }
        }
        return false;
    }