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

Commit 4b842193 authored by Amit Mahajan's avatar Amit Mahajan Committed by Android Git Automerger
Browse files

am adb156e0: am 336f18ba: am 51b4e97a: Merge "Add checks for...

am adb156e0: am 336f18ba: am 51b4e97a: Merge "Add checks for READ_PRIVILEGED_PHONE_STATE." into mnc-dev

* commit 'adb156e0':
  Add checks for READ_PRIVILEGED_PHONE_STATE.
parents 650095f3 adb156e0
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import static android.Manifest.permission.DUMP;
import static android.Manifest.permission.MANAGE_NETWORK_POLICY;
import static android.Manifest.permission.READ_NETWORK_USAGE_HISTORY;
import static android.Manifest.permission.READ_PHONE_STATE;
import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
import static android.content.Intent.ACTION_PACKAGE_ADDED;
import static android.content.Intent.ACTION_UID_REMOVED;
import static android.content.Intent.ACTION_USER_ADDED;
@@ -1651,12 +1652,17 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    @Override
    public NetworkPolicy[] getNetworkPolicies(String callingPackage) {
        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
        try {
            mContext.enforceCallingPermission(READ_PRIVILEGED_PHONE_STATE, TAG);
            // SKIP checking run-time OP_READ_PHONE_STATE since using PRIVILEGED
        } catch (SecurityException e) {
            mContext.enforceCallingOrSelfPermission(READ_PHONE_STATE, TAG);

            if (mAppOps.noteOp(AppOpsManager.OP_READ_PHONE_STATE, Binder.getCallingUid(),
                    callingPackage) != AppOpsManager.MODE_ALLOWED) {
                return new NetworkPolicy[0];
            }
        }

        synchronized (mRulesLock) {
            final int size = mNetworkPolicy.size();