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

Commit 13b35518 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

am: 00cf005b

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


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


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

        return subId;

    }
    }


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