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

Commit d2137887 authored by Amit Mahajan's avatar Amit Mahajan Committed by Android (Google) Code Review
Browse files

Merge "Change the order of permission checks for READ_PHONE_STATE." into mnc-dev

parents a7269524 4e286c0d
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.app.AppOpsManager;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Binder;
import android.os.RemoteException;
import android.telephony.PhoneNumberUtils;
import android.telephony.Rlog;

@@ -366,19 +365,15 @@ public class PhoneSubInfo {
    }

    private boolean checkReadPhoneState(String callingPackage, String message) {
        boolean failReadPhoneState = false;
        try {
            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
                    message);
        } catch (SecurityException e) {
            failReadPhoneState = true;
        }
        if (failReadPhoneState) {
            mContext.enforceCallingOrSelfPermission(
                    android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, message);

            // SKIP checking run-time OP_READ_PHONE_STATE since using PRIVILEDGED
            // SKIP checking run-time OP_READ_PHONE_STATE since self or using PRIVILEGED
            return true;
        } catch (SecurityException e) {
            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
                    message);
        }

        return mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
+4 −8
Original line number Diff line number Diff line
@@ -207,19 +207,15 @@ public class SubscriptionController extends ISub.Stub {
     * @throws SecurityException if the caller does not have READ_PHONE_STATE permission.
     */
    private boolean canReadPhoneState(String callingPackage, String message) {
        boolean failReadPhoneState = false;
        try {
            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
                    message);
        } catch (SecurityException e) {
            failReadPhoneState = true;
        }
        if (failReadPhoneState) {
            mContext.enforceCallingOrSelfPermission(
                    android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, message);

            // SKIP checking run-time permission since using PRIVILEDGED permission
            // SKIP checking run-time permission since self or using PRIVILEDGED permission
            return true;
        } catch (SecurityException e) {
            mContext.enforceCallingOrSelfPermission(android.Manifest.permission.READ_PHONE_STATE,
                    message);
        }

        return mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),