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

Commit fd0f321b authored by Rubin Xu's avatar Rubin Xu
Browse files

Use IndentingPrintWriter in DevicePolicyManager

Replace the hardcoded prefix string with IndentingPrintWriter
in various dump() methods in DPMS.

Bug: 138559079
Test: manually diff result of "dumpsys device_policy" before and after
      the change.
Change-Id: Id47c7f877e75071fa17cda48c7277f8aa70dfea5
parent b93dc48c
Loading
Loading
Loading
Loading
+10 −8
Original line number Original line Diff line number Diff line
@@ -31,11 +31,10 @@ import android.util.SparseArray;


import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.BackgroundThread;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.am.PersistentConnection;
import com.android.server.am.PersistentConnection;
import com.android.server.appbinding.AppBindingUtils;
import com.android.server.appbinding.AppBindingUtils;


import java.io.PrintWriter;

/**
/**
 * Manages connections to persistent services in owner packages.
 * Manages connections to persistent services in owner packages.
 */
 */
@@ -180,21 +179,24 @@ public class DeviceAdminServiceController {
        }
        }
    }
    }


    public void dump(String prefix, PrintWriter pw) {
    /** dump content */
    public void dump(IndentingPrintWriter pw) {
        synchronized (mLock) {
        synchronized (mLock) {
            if (mConnections.size() == 0) {
            if (mConnections.size() == 0) {
                return;
                return;
            }
            }
            pw.println();
            pw.println("Owner Services:");
            pw.print(prefix); pw.println("Owner Services:");
            pw.increaseIndent();
            for (int i = 0; i < mConnections.size(); i++) {
            for (int i = 0; i < mConnections.size(); i++) {
                final int userId = mConnections.keyAt(i);
                final int userId = mConnections.keyAt(i);
                pw.print(prefix); pw.print("  "); pw.print("User: "); pw.println(userId);
                pw.print("User: "); pw.println(userId);


                final DevicePolicyServiceConnection con = mConnections.valueAt(i);
                final DevicePolicyServiceConnection con = mConnections.valueAt(i);
                con.dump(prefix + "    ", pw);
                pw.increaseIndent();
                con.dump("", pw);
                pw.decreaseIndent();
            }
            }
            pw.println();
            pw.decreaseIndent();
        }
        }
    }
    }
}
}
+7 −6
Original line number Original line Diff line number Diff line
@@ -22,8 +22,7 @@ import android.util.SparseBooleanArray;
import android.util.SparseIntArray;
import android.util.SparseIntArray;


import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.GuardedBy;

import com.android.internal.util.IndentingPrintWriter;
import java.io.PrintWriter;


/**
/**
 * Implementation of {@link DevicePolicyCache}, to which {@link DevicePolicyManagerService} pushes
 * Implementation of {@link DevicePolicyCache}, to which {@link DevicePolicyManagerService} pushes
@@ -80,9 +79,11 @@ public class DevicePolicyCacheImpl extends DevicePolicyCache {
    }
    }


    /** Dump content */
    /** Dump content */
    public void dump(String prefix, PrintWriter pw) {
    public void dump(IndentingPrintWriter pw) {
        pw.println("Device policy cache");
        pw.println("Device policy cache:");
        pw.println(prefix + "Screen capture disabled: " + mScreenCaptureDisabled.toString());
        pw.increaseIndent();
        pw.println(prefix + "Password quality: " + mPasswordQuality.toString());
        pw.println("Screen capture disabled: " + mScreenCaptureDisabled.toString());
        pw.println("Password quality: " + mPasswordQuality.toString());
        pw.decreaseIndent();
    }
    }
}
}
+10 −11
Original line number Original line Diff line number Diff line
@@ -18,7 +18,8 @@ package com.android.server.devicepolicy;
import android.util.KeyValueListParser;
import android.util.KeyValueListParser;
import android.util.Slog;
import android.util.Slog;


import java.io.PrintWriter;
import com.android.internal.util.IndentingPrintWriter;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeUnit;


/**
/**
@@ -134,24 +135,22 @@ public class DevicePolicyConstants {
        return new DevicePolicyConstants(settings);
        return new DevicePolicyConstants(settings);
    }
    }


    public void dump(String prefix, PrintWriter pw) {
    /** Dump constants */
        pw.print(prefix);
    public void dump(IndentingPrintWriter pw) {
        pw.println("Constants:");
        pw.println("Constants:");


        pw.print(prefix);
        pw.increaseIndent();
        pw.print("DAS_DIED_SERVICE_RECONNECT_BACKOFF_SEC: ");
        pw.print("DAS_DIED_SERVICE_RECONNECT_BACKOFF_SEC: ");
        pw.println(DAS_DIED_SERVICE_RECONNECT_BACKOFF_SEC);
        pw.println(DAS_DIED_SERVICE_RECONNECT_BACKOFF_SEC);


        pw.print(prefix);
        pw.print("DAS_DIED_SERVICE_RECONNECT_BACKOFF_INCREASE: ");
        pw.print("DAS_DIED_SERVICE_RECONNECT_BACKOFF_INCREASE: ");
        pw.println(DAS_DIED_SERVICE_RECONNECT_BACKOFF_INCREASE);
        pw.println(DAS_DIED_SERVICE_RECONNECT_BACKOFF_INCREASE);


        pw.print(prefix);
        pw.print("DAS_DIED_SERVICE_RECONNECT_MAX_BACKOFF_SEC: ");
        pw.print("DAS_DIED_SERVICE_RECONNECT_MAX_BACKOFF_SEC: ");
        pw.println(DAS_DIED_SERVICE_RECONNECT_MAX_BACKOFF_SEC);
        pw.println(DAS_DIED_SERVICE_RECONNECT_MAX_BACKOFF_SEC);


        pw.print(prefix);
        pw.print("DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC: ");
        pw.print("DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC: ");
        pw.println(DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC);
        pw.println(DAS_DIED_SERVICE_STABLE_CONNECTION_THRESHOLD_SEC);
        pw.decreaseIndent();
    }
    }
}
}
+98 −77
Original line number Original line Diff line number Diff line
@@ -242,6 +242,7 @@ import com.android.internal.telephony.SmsApplication;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
import com.android.internal.util.FunctionalUtils.ThrowingRunnable;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.JournaledFile;
import com.android.internal.util.JournaledFile;
import com.android.internal.util.Preconditions;
import com.android.internal.util.Preconditions;
import com.android.internal.util.StatLogger;
import com.android.internal.util.StatLogger;
@@ -1667,111 +1668,115 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
            info = deviceAdminInfo;
            info = deviceAdminInfo;
        }
        }
        void dump(String prefix, PrintWriter pw) {
        void dump(IndentingPrintWriter pw) {
            pw.print(prefix); pw.print("uid="); pw.println(getUid());
            pw.print("uid="); pw.println(getUid());
            pw.print(prefix); pw.print("testOnlyAdmin=");
            pw.print("testOnlyAdmin=");
            pw.println(testOnlyAdmin);
            pw.println(testOnlyAdmin);
            pw.print(prefix); pw.println("policies:");
            pw.println("policies:");
            ArrayList<DeviceAdminInfo.PolicyInfo> pols = info.getUsedPolicies();
            ArrayList<DeviceAdminInfo.PolicyInfo> pols = info.getUsedPolicies();
            if (pols != null) {
            if (pols != null) {
                pw.increaseIndent();
                for (int i=0; i<pols.size(); i++) {
                for (int i=0; i<pols.size(); i++) {
                    pw.print(prefix); pw.print("  "); pw.println(pols.get(i).tag);
                    pw.println(pols.get(i).tag);
                }
                }
                pw.decreaseIndent();
            }
            }
            pw.print(prefix); pw.print("passwordQuality=0x");
            pw.print("passwordQuality=0x");
                    pw.println(Integer.toHexString(minimumPasswordMetrics.quality));
                    pw.println(Integer.toHexString(minimumPasswordMetrics.quality));
            pw.print(prefix); pw.print("minimumPasswordLength=");
            pw.print("minimumPasswordLength=");
                    pw.println(minimumPasswordMetrics.length);
                    pw.println(minimumPasswordMetrics.length);
            pw.print(prefix); pw.print("passwordHistoryLength=");
            pw.print("passwordHistoryLength=");
                    pw.println(passwordHistoryLength);
                    pw.println(passwordHistoryLength);
            pw.print(prefix); pw.print("minimumPasswordUpperCase=");
            pw.print("minimumPasswordUpperCase=");
                    pw.println(minimumPasswordMetrics.upperCase);
                    pw.println(minimumPasswordMetrics.upperCase);
            pw.print(prefix); pw.print("minimumPasswordLowerCase=");
            pw.print("minimumPasswordLowerCase=");
                    pw.println(minimumPasswordMetrics.lowerCase);
                    pw.println(minimumPasswordMetrics.lowerCase);
            pw.print(prefix); pw.print("minimumPasswordLetters=");
            pw.print("minimumPasswordLetters=");
                    pw.println(minimumPasswordMetrics.letters);
                    pw.println(minimumPasswordMetrics.letters);
            pw.print(prefix); pw.print("minimumPasswordNumeric=");
            pw.print("minimumPasswordNumeric=");
                    pw.println(minimumPasswordMetrics.numeric);
                    pw.println(minimumPasswordMetrics.numeric);
            pw.print(prefix); pw.print("minimumPasswordSymbols=");
            pw.print("minimumPasswordSymbols=");
                    pw.println(minimumPasswordMetrics.symbols);
                    pw.println(minimumPasswordMetrics.symbols);
            pw.print(prefix); pw.print("minimumPasswordNonLetter=");
            pw.print("minimumPasswordNonLetter=");
                    pw.println(minimumPasswordMetrics.nonLetter);
                    pw.println(minimumPasswordMetrics.nonLetter);
            pw.print(prefix); pw.print("maximumTimeToUnlock=");
            pw.print("maximumTimeToUnlock=");
                    pw.println(maximumTimeToUnlock);
                    pw.println(maximumTimeToUnlock);
            pw.print(prefix); pw.print("strongAuthUnlockTimeout=");
            pw.print("strongAuthUnlockTimeout=");
                    pw.println(strongAuthUnlockTimeout);
                    pw.println(strongAuthUnlockTimeout);
            pw.print(prefix); pw.print("maximumFailedPasswordsForWipe=");
            pw.print("maximumFailedPasswordsForWipe=");
                    pw.println(maximumFailedPasswordsForWipe);
                    pw.println(maximumFailedPasswordsForWipe);
            pw.print(prefix); pw.print("specifiesGlobalProxy=");
            pw.print("specifiesGlobalProxy=");
                    pw.println(specifiesGlobalProxy);
                    pw.println(specifiesGlobalProxy);
            pw.print(prefix); pw.print("passwordExpirationTimeout=");
            pw.print("passwordExpirationTimeout=");
                    pw.println(passwordExpirationTimeout);
                    pw.println(passwordExpirationTimeout);
            pw.print(prefix); pw.print("passwordExpirationDate=");
            pw.print("passwordExpirationDate=");
                    pw.println(passwordExpirationDate);
                    pw.println(passwordExpirationDate);
            if (globalProxySpec != null) {
            if (globalProxySpec != null) {
                pw.print(prefix); pw.print("globalProxySpec=");
                pw.print("globalProxySpec=");
                        pw.println(globalProxySpec);
                        pw.println(globalProxySpec);
            }
            }
            if (globalProxyExclusionList != null) {
            if (globalProxyExclusionList != null) {
                pw.print(prefix); pw.print("globalProxyEclusionList=");
                pw.print("globalProxyEclusionList=");
                        pw.println(globalProxyExclusionList);
                        pw.println(globalProxyExclusionList);
            }
            }
            pw.print(prefix); pw.print("encryptionRequested=");
            pw.print("encryptionRequested=");
                    pw.println(encryptionRequested);
                    pw.println(encryptionRequested);
            pw.print(prefix); pw.print("disableCamera=");
            pw.print("disableCamera=");
                    pw.println(disableCamera);
                    pw.println(disableCamera);
            pw.print(prefix); pw.print("disableCallerId=");
            pw.print("disableCallerId=");
                    pw.println(disableCallerId);
                    pw.println(disableCallerId);
            pw.print(prefix); pw.print("disableContactsSearch=");
            pw.print("disableContactsSearch=");
                    pw.println(disableContactsSearch);
                    pw.println(disableContactsSearch);
            pw.print(prefix); pw.print("disableBluetoothContactSharing=");
            pw.print("disableBluetoothContactSharing=");
                    pw.println(disableBluetoothContactSharing);
                    pw.println(disableBluetoothContactSharing);
            pw.print(prefix); pw.print("disableScreenCapture=");
            pw.print("disableScreenCapture=");
                    pw.println(disableScreenCapture);
                    pw.println(disableScreenCapture);
            pw.print(prefix); pw.print("requireAutoTime=");
            pw.print("requireAutoTime=");
                    pw.println(requireAutoTime);
                    pw.println(requireAutoTime);
            pw.print(prefix); pw.print("forceEphemeralUsers=");
            pw.print("forceEphemeralUsers=");
                    pw.println(forceEphemeralUsers);
                    pw.println(forceEphemeralUsers);
            pw.print(prefix); pw.print("isNetworkLoggingEnabled=");
            pw.print("isNetworkLoggingEnabled=");
                    pw.println(isNetworkLoggingEnabled);
                    pw.println(isNetworkLoggingEnabled);
            pw.print(prefix); pw.print("disabledKeyguardFeatures=");
            pw.print("disabledKeyguardFeatures=");
                    pw.println(disabledKeyguardFeatures);
                    pw.println(disabledKeyguardFeatures);
            pw.print(prefix); pw.print("crossProfileWidgetProviders=");
            pw.print("crossProfileWidgetProviders=");
                    pw.println(crossProfileWidgetProviders);
                    pw.println(crossProfileWidgetProviders);
            if (permittedAccessiblityServices != null) {
            if (permittedAccessiblityServices != null) {
                pw.print(prefix); pw.print("permittedAccessibilityServices=");
                pw.print("permittedAccessibilityServices=");
                    pw.println(permittedAccessiblityServices);
                    pw.println(permittedAccessiblityServices);
            }
            }
            if (permittedInputMethods != null) {
            if (permittedInputMethods != null) {
                pw.print(prefix); pw.print("permittedInputMethods=");
                pw.print("permittedInputMethods=");
                    pw.println(permittedInputMethods);
                    pw.println(permittedInputMethods);
            }
            }
            if (permittedNotificationListeners != null) {
            if (permittedNotificationListeners != null) {
                pw.print(prefix); pw.print("permittedNotificationListeners=");
                pw.print("permittedNotificationListeners=");
                pw.println(permittedNotificationListeners);
                pw.println(permittedNotificationListeners);
            }
            }
            if (keepUninstalledPackages != null) {
            if (keepUninstalledPackages != null) {
                pw.print(prefix); pw.print("keepUninstalledPackages=");
                pw.print("keepUninstalledPackages=");
                    pw.println(keepUninstalledPackages);
                    pw.println(keepUninstalledPackages);
            }
            }
            pw.print(prefix); pw.print("organizationColor=");
            pw.print("organizationColor=");
                    pw.println(organizationColor);
                    pw.println(organizationColor);
            if (organizationName != null) {
            if (organizationName != null) {
                pw.print(prefix); pw.print("organizationName=");
                pw.print("organizationName=");
                    pw.println(organizationName);
                    pw.println(organizationName);
            }
            }
            pw.print(prefix); pw.println("userRestrictions:");
            pw.println("userRestrictions:");
            UserRestrictionsUtils.dumpRestrictions(pw, prefix + "  ", userRestrictions);
            UserRestrictionsUtils.dumpRestrictions(pw, "  ", userRestrictions);
            pw.print(prefix); pw.print("defaultEnabledRestrictionsAlreadySet=");
            pw.print("defaultEnabledRestrictionsAlreadySet=");
                    pw.println(defaultEnabledRestrictionsAlreadySet);
                    pw.println(defaultEnabledRestrictionsAlreadySet);
            pw.print(prefix); pw.print("isParent=");
            pw.print("isParent=");
                    pw.println(isParent);
                    pw.println(isParent);
            if (parentAdmin != null) {
            if (parentAdmin != null) {
                pw.print(prefix);  pw.println("parentAdmin:");
                pw.println("parentAdmin:");
                parentAdmin.dump(prefix + "  ", pw);
                pw.increaseIndent();
                parentAdmin.dump(pw);
                pw.decreaseIndent();
            }
            }
            if (mCrossProfileCalendarPackages != null) {
            if (mCrossProfileCalendarPackages != null) {
                pw.print(prefix); pw.print("mCrossProfileCalendarPackages=");
                pw.print("mCrossProfileCalendarPackages=");
                pw.println(mCrossProfileCalendarPackages);
                pw.println(mCrossProfileCalendarPackages);
            }
            }
        }
        }
@@ -8843,46 +8848,62 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
        }
        }
    }
    }
    @Override
    private void dumpDevicePolicyData(IndentingPrintWriter pw) {
    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, pw)) return;
        synchronized (getLockObject()) {
            pw.println("Current Device Policy Manager state:");
            mOwners.dump("  ", pw);
            mDeviceAdminServiceController.dump("  ", pw);
        int userCount = mUserData.size();
        int userCount = mUserData.size();
        for (int u = 0; u < userCount; u++) {
        for (int u = 0; u < userCount; u++) {
            DevicePolicyData policy = getUserData(mUserData.keyAt(u));
            DevicePolicyData policy = getUserData(mUserData.keyAt(u));
            pw.println();
            pw.println();
            pw.println("Enabled Device Admins (User " + policy.mUserHandle
            pw.println("Enabled Device Admins (User " + policy.mUserHandle
                    + ", provisioningState: " + policy.mUserProvisioningState + "):");
                    + ", provisioningState: " + policy.mUserProvisioningState + "):");
                final int N = policy.mAdminList.size();
            final int n = policy.mAdminList.size();
                for (int i=0; i<N; i++) {
            for (int i = 0; i < n; i++) {
                ActiveAdmin ap = policy.mAdminList.get(i);
                ActiveAdmin ap = policy.mAdminList.get(i);
                if (ap != null) {
                if (ap != null) {
                        pw.print("    "); pw.print(ap.info.getComponent().flattenToShortString());
                    pw.increaseIndent();
                    pw.print(ap.info.getComponent().flattenToShortString());
                    pw.println(":");
                    pw.println(":");
                        ap.dump("      ", pw);
                    pw.increaseIndent();
                    ap.dump(pw);
                    pw.decreaseIndent();
                    pw.decreaseIndent();
                }
                }
            }
            }
            if (!policy.mRemovingAdmins.isEmpty()) {
            if (!policy.mRemovingAdmins.isEmpty()) {
                pw.increaseIndent();
                pw.println("Removing Device Admins (User " + policy.mUserHandle + "): "
                pw.println("Removing Device Admins (User " + policy.mUserHandle + "): "
                        + policy.mRemovingAdmins);
                        + policy.mRemovingAdmins);
                pw.decreaseIndent();
            }
            }
            pw.println();
                pw.println(" ");
            pw.increaseIndent();
            pw.print("mPasswordOwner="); pw.println(policy.mPasswordOwner);
            pw.print("mPasswordOwner="); pw.println(policy.mPasswordOwner);
            pw.decreaseIndent();
        }
        }
    }
    @Override
    protected void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
        if (!DumpUtils.checkDumpPermission(mContext, LOG_TAG, printWriter)) return;
        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
        synchronized (getLockObject()) {
            pw.println("Current Device Policy Manager state:");
            pw.increaseIndent();
            mOwners.dump(pw);
            pw.println();
            mDeviceAdminServiceController.dump(pw);
            pw.println();
            pw.println();
            mConstants.dump("  ", pw);
            dumpDevicePolicyData(pw);
            pw.println();
            pw.println();
            mStatLogger.dump(pw, "  ");
            mConstants.dump(pw);
            pw.println();
            pw.println();
            mStatLogger.dump(pw);
            pw.println();
            pw.println("Encryption Status: " + getEncryptionStatusName(getEncryptionStatus()));
            pw.println("Encryption Status: " + getEncryptionStatusName(getEncryptionStatus()));
            pw.println();
            pw.println();
            mPolicyCache.dump("  ", pw);
            mPolicyCache.dump(pw);
        }
        }
    }
    }
+19 −15
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ import android.util.Xml;


import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.LocalServices;
import com.android.server.LocalServices;
import com.android.server.wm.ActivityTaskManagerInternal;
import com.android.server.wm.ActivityTaskManagerInternal;


@@ -54,7 +55,6 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDate;
import java.util.List;
import java.util.List;
@@ -1032,27 +1032,29 @@ class Owners {
                    remoteBugreportHash, canAccessDeviceIds);
                    remoteBugreportHash, canAccessDeviceIds);
        }
        }


        public void dump(String prefix, PrintWriter pw) {
        public void dump(IndentingPrintWriter pw) {
            pw.println(prefix + "admin=" + admin);
            pw.println("admin=" + admin);
            pw.println(prefix + "name=" + name);
            pw.println("name=" + name);
            pw.println(prefix + "package=" + packageName);
            pw.println("package=" + packageName);
            pw.println(prefix + "canAccessDeviceIds=" + canAccessDeviceIds);
            pw.println("canAccessDeviceIds=" + canAccessDeviceIds);
        }
        }
    }
    }


    public void dump(String prefix, PrintWriter pw) {
    public void dump(IndentingPrintWriter pw) {
        boolean needBlank = false;
        boolean needBlank = false;
        if (mDeviceOwner != null) {
        if (mDeviceOwner != null) {
            pw.println(prefix + "Device Owner: ");
            pw.println("Device Owner: ");
            mDeviceOwner.dump(prefix + "  ", pw);
            pw.increaseIndent();
            pw.println(prefix + "  User ID: " + mDeviceOwnerUserId);
            mDeviceOwner.dump(pw);
            pw.println("User ID: " + mDeviceOwnerUserId);
            pw.decreaseIndent();
            needBlank = true;
            needBlank = true;
        }
        }
        if (mSystemUpdatePolicy != null) {
        if (mSystemUpdatePolicy != null) {
            if (needBlank) {
            if (needBlank) {
                pw.println();
                pw.println();
            }
            }
            pw.println(prefix + "System Update Policy: " + mSystemUpdatePolicy);
            pw.println("System Update Policy: " + mSystemUpdatePolicy);
            needBlank = true;
            needBlank = true;
        }
        }
        if (mProfileOwners != null) {
        if (mProfileOwners != null) {
@@ -1060,8 +1062,10 @@ class Owners {
                if (needBlank) {
                if (needBlank) {
                    pw.println();
                    pw.println();
                }
                }
                pw.println(prefix + "Profile Owner (User " + entry.getKey() + "): ");
                pw.println("Profile Owner (User " + entry.getKey() + "): ");
                entry.getValue().dump(prefix + "  ", pw);
                pw.increaseIndent();
                entry.getValue().dump(pw);
                pw.decreaseIndent();
                needBlank = true;
                needBlank = true;
            }
            }
        }
        }
@@ -1069,14 +1073,14 @@ class Owners {
            if (needBlank) {
            if (needBlank) {
                pw.println();
                pw.println();
            }
            }
            pw.println(prefix + "Pending System Update: " + mSystemUpdateInfo);
            pw.println("Pending System Update: " + mSystemUpdateInfo);
            needBlank = true;
            needBlank = true;
        }
        }
        if (mSystemUpdateFreezeStart != null || mSystemUpdateFreezeEnd != null) {
        if (mSystemUpdateFreezeStart != null || mSystemUpdateFreezeEnd != null) {
            if (needBlank) {
            if (needBlank) {
                pw.println();
                pw.println();
            }
            }
            pw.println(prefix + "System update freeze record: "
            pw.println("System update freeze record: "
                    + getSystemUpdateFreezePeriodRecordAsString());
                    + getSystemUpdateFreezePeriodRecordAsString());
            needBlank = true;
            needBlank = true;
        }
        }