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

Commit b055c1b5 authored by Felipe Leme's avatar Felipe Leme Committed by Android (Google) Code Review
Browse files

Merge "Fixed permissions so Shell can call netpolicy methods." into nyc-dev

parents 9d3a4e1c 6a05eee2
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -40,6 +40,7 @@
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.MANAGE_NETWORK_POLICY" />
    <!-- System tool permissions granted to the shell. -->
    <!-- System tool permissions granted to the shell. -->
    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
@@ -109,6 +110,7 @@
    <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
    <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />
    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />


    <application android:label="@string/app_label"
    <application android:label="@string/app_label"
                 android:forceDeviceEncrypted="true"
                 android:forceDeviceEncrypted="true"
+23 −13
Original line number Original line Diff line number Diff line
@@ -1742,6 +1742,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    public void setNetworkPolicies(NetworkPolicy[] policies) {
    public void setNetworkPolicies(NetworkPolicy[] policies) {
        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);


        final long token = Binder.clearCallingIdentity();
        try {
            maybeRefreshTrustedTime();
            maybeRefreshTrustedTime();
            synchronized (mRulesLock) {
            synchronized (mRulesLock) {
                normalizePoliciesLocked(policies);
                normalizePoliciesLocked(policies);
@@ -1750,6 +1752,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                updateNotificationsLocked();
                updateNotificationsLocked();
                writePolicyLocked();
                writePolicyLocked();
            }
            }
        } finally {
            Binder.restoreCallingIdentity(token);
        }
    }
    }


    void addNetworkPolicyLocked(NetworkPolicy policy) {
    void addNetworkPolicyLocked(NetworkPolicy policy) {
@@ -1851,7 +1856,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    @Override
    @Override
    public void setRestrictBackground(boolean restrictBackground) {
    public void setRestrictBackground(boolean restrictBackground) {
        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);
        mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG);

        final long token = Binder.clearCallingIdentity();
        try {
            maybeRefreshTrustedTime();
            maybeRefreshTrustedTime();
            synchronized (mRulesLock) {
            synchronized (mRulesLock) {
                mRestrictBackground = restrictBackground;
                mRestrictBackground = restrictBackground;
@@ -1860,6 +1866,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                writePolicyLocked();
                writePolicyLocked();
            }
            }


        } finally {
            Binder.restoreCallingIdentity(token);
        }

        mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_CHANGED, restrictBackground ? 1 : 0, 0)
        mHandler.obtainMessage(MSG_RESTRICT_BACKGROUND_CHANGED, restrictBackground ? 1 : 0, 0)
                .sendToTarget();
                .sendToTarget();
    }
    }
+3 −18
Original line number Original line Diff line number Diff line
@@ -211,12 +211,7 @@ class NetworkPolicyManagerShellCommand extends ShellCommand {
        if (enabled < 0) {
        if (enabled < 0) {
            return enabled;
            return enabled;
        }
        }
        final long token = Binder.clearCallingIdentity();
        try {
        mInterface.setRestrictBackground(enabled > 0);
        mInterface.setRestrictBackground(enabled > 0);
        } finally {
            Binder.restoreCallingIdentity(token);
        }
        return 0;
        return 0;
    }
    }


@@ -225,12 +220,7 @@ class NetworkPolicyManagerShellCommand extends ShellCommand {
      if (uid < 0) {
      if (uid < 0) {
          return uid;
          return uid;
      }
      }
      final long token = Binder.clearCallingIdentity();
      try {
      mInterface.addRestrictBackgroundWhitelistedUid(uid);
      mInterface.addRestrictBackgroundWhitelistedUid(uid);
      } finally {
          Binder.restoreCallingIdentity(token);
      }
      return 0;
      return 0;
    }
    }


@@ -239,12 +229,7 @@ class NetworkPolicyManagerShellCommand extends ShellCommand {
        if (uid < 0) {
        if (uid < 0) {
            return uid;
            return uid;
        }
        }
        final long token = Binder.clearCallingIdentity();
        try {
        mInterface.removeRestrictBackgroundWhitelistedUid(uid);
        mInterface.removeRestrictBackgroundWhitelistedUid(uid);
        } finally {
            Binder.restoreCallingIdentity(token);
        }
        return 0;
        return 0;
    }
    }