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

Commit 9cbb8d34 authored by Oliver Scott's avatar Oliver Scott Committed by Michael Bestas
Browse files

Add Restricted Mode uid allowlist setting observer to NetworkPolicyManagerService

This allows to add / remove UIDs from restricted mode's allowlist at runtime.

Bug: https://issuetracker.google.com/issues/206947902
Test: adb shell settings put global uids_allowed_on_restricted_networks "UID"
Change-Id: I1d3edf3fb1ee62ddf9ee07e15cf1da1e23cc18fa
(cherry picked from commit 54217bfab16a9201f35bb1e9be8b26bb56a5809e)
parent e52fad01
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -454,6 +454,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {

    private static final String PROP_SUB_PLAN_OWNER = "persist.sys.sub_plan_owner";

    // TODO: this needs to be kept in sync with
    //  ConnectivitySettingsManager#UIDS_ALLOWED_ON_RESTRICTED_NETWORKS
    private static final String UIDS_ALLOWED_ON_RESTRICTED_NETWORKS =
            "uids_allowed_on_restricted_networks";

    private final Context mContext;
    private final IActivityManager mActivityManager;
    private NetworkStatsManagerInternal mNetworkStats;
@@ -760,6 +765,17 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        // Expose private service for system components to use.
        LocalServices.addService(NetworkPolicyManagerInternal.class,
                new NetworkPolicyManagerInternalImpl());

        mContext.getContentResolver().registerContentObserver(
                Settings.Global.getUriFor(UIDS_ALLOWED_ON_RESTRICTED_NETWORKS), false,
                new ContentObserver(mHandler) {
            @Override
            public void onChange(boolean selfChange) {
                synchronized (mUidRulesFirstLock) {
                    updateRestrictedModeAllowlistUL();
                }
            }
        });
    }

    public void bindConnectivityManager() {