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

Commit 050151e0 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Don't process broadcasts until really ready.

Someone started setting mSystemReady too early, when we really want
to know SystemServer's real ready state.  Add a variable to track
that, and don't process broadcasts until that's set.

Bug: 78020762
Test: builds, boots
Change-Id: I65213e46044c95fb0a8a4b09b9aa463bb15c1844
parent 213639c9
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -414,6 +414,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
    final Object mNetworkPoliciesSecondLock = new Object();
    final Object mNetworkPoliciesSecondLock = new Object();


    @GuardedBy("allLocks") volatile boolean mSystemReady;
    @GuardedBy("allLocks") volatile boolean mSystemReady;
    volatile boolean mSystemReallyReady;


    @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictBackground;
    @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictBackground;
    @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictPower;
    @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictPower;
@@ -866,6 +867,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            Thread.currentThread().interrupt();
            Thread.currentThread().interrupt();
            throw new IllegalStateException("Service " + TAG + " init interrupted", e);
            throw new IllegalStateException("Service " + TAG + " init interrupted", e);
        }
        }
        mSystemReallyReady = true;
    }
    }


    final private IUidObserver mUidObserver = new IUidObserver.Stub() {
    final private IUidObserver mUidObserver = new IUidObserver.Stub() {
@@ -1402,6 +1404,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
            // on background handler thread, and verified CONNECTIVITY_INTERNAL
            // on background handler thread, and verified CONNECTIVITY_INTERNAL
            // permission above.
            // permission above.


            if (!mSystemReallyReady) return;
            synchronized (mUidRulesFirstLock) {
            synchronized (mUidRulesFirstLock) {
                synchronized (mNetworkPoliciesSecondLock) {
                synchronized (mNetworkPoliciesSecondLock) {
                    ensureActiveMobilePolicyAL();
                    ensureActiveMobilePolicyAL();
+1 −1
Original line number Original line Diff line number Diff line
@@ -282,7 +282,7 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
    private Handler mHandler;
    private Handler mHandler;
    private Handler.Callback mHandlerCallback;
    private Handler.Callback mHandlerCallback;


    private boolean mSystemReady;
    private volatile boolean mSystemReady;
    private long mPersistThreshold = 2 * MB_IN_BYTES;
    private long mPersistThreshold = 2 * MB_IN_BYTES;
    private long mGlobalAlertBytes;
    private long mGlobalAlertBytes;