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

Commit 9b372f8c authored by Rubin Xu's avatar Rubin Xu
Browse files

Tweak dumpsys content for DevicePolicyEngine

* Print the userId for each local policy
* Reduce verbosity and remove repetitive information
* Indent lines as necessary

Bug: 330937233
Test: build & dumpsys device_policy
Change-Id: I722a1828e93e433ce6278dffe8ee7f9f64453eec
parent dc5c05a0
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -1671,19 +1671,29 @@ final class DevicePolicyEngine {
    public void dump(IndentingPrintWriter pw) {
        synchronized (mLock) {
            pw.println("Local Policies: ");
            pw.increaseIndent();
            for (int i = 0; i < mLocalPolicies.size(); i++) {
                for (PolicyKey policy : mLocalPolicies.get(mLocalPolicies.keyAt(i)).keySet()) {
                    PolicyState<?> policyState = mLocalPolicies.get(
                            mLocalPolicies.keyAt(i)).get(policy);
                    pw.println(policyState);
                int userId = mLocalPolicies.keyAt(i);
                pw.printf("User %d:\n", userId);
                pw.increaseIndent();
                for (PolicyKey policy : mLocalPolicies.get(userId).keySet()) {
                    PolicyState<?> policyState = mLocalPolicies.get(userId).get(policy);
                    policyState.dump(pw);
                    pw.println();
                }
                pw.decreaseIndent();
            }
            pw.decreaseIndent();
            pw.println();

            pw.println("Global Policies: ");
            pw.increaseIndent();
            for (PolicyKey policy : mGlobalPolicies.keySet()) {
                PolicyState<?> policyState = mGlobalPolicies.get(policy);
                pw.println(policyState);
                policyState.dump(pw);
                pw.println();
            }
            pw.decreaseIndent();
        }
    }

+17 −3
Original line number Diff line number Diff line
@@ -325,8 +325,22 @@ final class EnforcingAdmin {

    @Override
    public String toString() {
        return "EnforcingAdmin { mPackageName= " + mPackageName + ", mComponentName= "
                + mComponentName + ", mAuthorities= " + mAuthorities + ", mUserId= "
                + mUserId + ", mIsRoleAuthority= " + mIsRoleAuthority + " }\n";
        StringBuilder sb = new StringBuilder();
        sb.append("EnforcingAdmin { mPackageName= ");
        sb.append(mPackageName);
        if (mComponentName != null) {
            sb.append(", mComponentName= ");
            sb.append(mComponentName);
        }
        if (mAuthorities != null) {
            sb.append(", mAuthorities= ");
            sb.append(mAuthorities);
        }
        sb.append(", mUserId= ");
        sb.append(mUserId);
        sb.append(", mIsRoleAuthority= ");
        sb.append(mIsRoleAuthority);
        sb.append(" }");
        return sb.toString();
    }
}
+28 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.devicepolicy;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.admin.PolicyValue;
import android.util.IndentingPrintWriter;

import com.android.internal.util.XmlUtils;
import com.android.modules.utils.TypedXmlPullParser;
@@ -195,6 +196,33 @@ final class PolicyState<V> {
                + ",\nmCurrentResolvedPolicy= \n\t" + mCurrentResolvedPolicy + " }";
    }

    public void dump(IndentingPrintWriter pw) {
        pw.println(mPolicyDefinition.getPolicyKey());
        pw.increaseIndent();

        pw.println("Per-admin Policy");
        pw.increaseIndent();
        if (mPoliciesSetByAdmins.size() == 0) {
            pw.println("null");
        } else {
            for (EnforcingAdmin admin : mPoliciesSetByAdmins.keySet()) {
                pw.println(admin);
                pw.increaseIndent();
                pw.println(mPoliciesSetByAdmins.get(admin));
                pw.decreaseIndent();
            }
        }
        pw.decreaseIndent();

        pw.printf("Resolved Policy (%s):\n",
                mPolicyDefinition.getResolutionMechanism().getClass().getSimpleName());
        pw.increaseIndent();
        pw.println(mCurrentResolvedPolicy);
        pw.decreaseIndent();

        pw.decreaseIndent();
    }

    void saveToXml(TypedXmlSerializer serializer) throws IOException {
        serializer.startTag(/* namespace= */ null, TAG_POLICY_DEFINITION_ENTRY);
        mPolicyDefinition.saveToXml(serializer);