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

Commit 12ebbf04 authored by Ilyas Sung's avatar Ilyas Sung
Browse files

Adding DevicePolicyEngine APIs to DumpSys and deprecating migrated APIs

Bug: 304999634
Test: atest android.devicepolicy.internal.DumpSysTest
Change-Id: I7a7615dc3225c76433f63b0a939544cc80f18cfc
parent fa76ad2f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -41,3 +41,10 @@ flag {
  description: "Improve access to security logging in the context of Zero Trust."
  bug: "295324350"
}

flag {
  name: "dumpsys_policy_engine_migration_enabled"
  namespace: "enterprise"
  description: "Update DumpSys to include information about migrated APIs in DPE"
  bug: "304999634"
}
+25 −19
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
import static android.app.admin.WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_ALLOWLIST;
import static android.app.admin.WifiSsidPolicy.WIFI_SSID_POLICY_TYPE_DENYLIST;
import static android.app.admin.flags.Flags.dumpsysPolicyEngineMigrationEnabled;
import static android.app.admin.flags.Flags.policyEngineMigrationV2Enabled;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;

import static com.android.server.devicepolicy.DevicePolicyManagerService.LOG_TAG;
@@ -1295,9 +1297,30 @@ class ActiveAdmin {
        pw.print("encryptionRequested=");
        pw.println(encryptionRequested);

        if (!dumpsysPolicyEngineMigrationEnabled()) {
            pw.print("disableCamera=");
            pw.println(disableCamera);

            pw.print("disableScreenCapture=");
            pw.println(disableScreenCapture);

            pw.print("requireAutoTime=");
            pw.println(requireAutoTime);

            if (permittedInputMethods != null) {
                pw.print("permittedInputMethods=");
                pw.println(permittedInputMethods);
            }

            pw.println("userRestrictions:");
            UserRestrictionsUtils.dumpRestrictions(pw, "  ", userRestrictions);
        }

        if (!policyEngineMigrationV2Enabled() || !dumpsysPolicyEngineMigrationEnabled()) {
            pw.print("mUsbDataSignaling=");
            pw.println(mUsbDataSignalingEnabled);
        }

        pw.print("disableCallerId=");
        pw.println(disableCallerId);

@@ -1307,12 +1330,6 @@ class ActiveAdmin {
        pw.print("disableBluetoothContactSharing=");
        pw.println(disableBluetoothContactSharing);

        pw.print("disableScreenCapture=");
        pw.println(disableScreenCapture);

        pw.print("requireAutoTime=");
        pw.println(requireAutoTime);

        pw.print("forceEphemeralUsers=");
        pw.println(forceEphemeralUsers);

@@ -1330,11 +1347,6 @@ class ActiveAdmin {
            pw.println(permittedAccessiblityServices);
        }

        if (permittedInputMethods != null) {
            pw.print("permittedInputMethods=");
            pw.println(permittedInputMethods);
        }

        if (permittedNotificationListeners != null) {
            pw.print("permittedNotificationListeners=");
            pw.println(permittedNotificationListeners);
@@ -1368,9 +1380,6 @@ class ActiveAdmin {
            pw.println(organizationName);
        }

        pw.println("userRestrictions:");
        UserRestrictionsUtils.dumpRestrictions(pw, "  ", userRestrictions);

        pw.print("defaultEnabledRestrictionsAlreadySet=");
        pw.println(defaultEnabledRestrictionsAlreadySet);

@@ -1442,9 +1451,6 @@ class ActiveAdmin {
        pw.print("mAdminCanGrantSensorsPermissions=");
        pw.println(mAdminCanGrantSensorsPermissions);

        pw.print("mUsbDataSignaling=");
        pw.println(mUsbDataSignalingEnabled);

        pw.print("mWifiMinimumSecurityLevel=");
        pw.println(mWifiMinimumSecurityLevel);

+20 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.telephony.TelephonyManager;
import android.util.AtomicFile;
import android.util.IndentingPrintWriter;
import android.util.Log;
import android.util.SparseArray;
import android.util.Xml;
@@ -1578,6 +1579,25 @@ final class DevicePolicyEngine {
        }
    }

    public void dump(IndentingPrintWriter pw) {
        synchronized (mLock) {
            pw.println("Local Policies: ");
            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);
                }
            }
            pw.println();
            pw.println("Global Policies: ");
            for (PolicyKey policy : mGlobalPolicies.keySet()) {
                PolicyState<?> policyState = mGlobalPolicies.get(policy);
                pw.println(policyState);
            }
        }
    }

    private void write() {
        synchronized (mLock) {
            Log.d(TAG, "Writing device policies to file.");
+5 −0
Original line number Diff line number Diff line
@@ -219,6 +219,7 @@ import static android.app.admin.ProvisioningException.ERROR_REMOVE_NON_REQUIRED_
import static android.app.admin.ProvisioningException.ERROR_SETTING_PROFILE_OWNER_FAILED;
import static android.app.admin.ProvisioningException.ERROR_SET_DEVICE_OWNER_FAILED;
import static android.app.admin.ProvisioningException.ERROR_STARTING_PROFILE_FAILED;
import static android.app.admin.flags.Flags.dumpsysPolicyEngineMigrationEnabled;
import static android.app.admin.flags.Flags.policyEngineMigrationV2Enabled;
import static android.content.Intent.ACTION_MANAGED_PROFILE_AVAILABLE;
import static android.content.Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE;
@@ -11022,6 +11023,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                pw.println();
                mStatLogger.dump(pw);
                pw.println();
                if (dumpsysPolicyEngineMigrationEnabled()) {
                    mDevicePolicyEngine.dump(pw);
                    pw.println();
                }
                pw.println("Encryption Status: " + getEncryptionStatusName(getEncryptionStatus()));
                pw.println("Logout user: " + getLogoutUserIdUnchecked());
                pw.println();
+1 −1
Original line number Diff line number Diff line
@@ -327,6 +327,6 @@ final class EnforcingAdmin {
    public String toString() {
        return "EnforcingAdmin { mPackageName= " + mPackageName + ", mComponentName= "
                + mComponentName + ", mAuthorities= " + mAuthorities + ", mUserId= "
                + mUserId + ", mIsRoleAuthority= " + mIsRoleAuthority + " }";
                + mUserId + ", mIsRoleAuthority= " + mIsRoleAuthority + " }\n";
    }
}
Loading