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

Commit e5ba6ad7 authored by Miriam Polzer's avatar Miriam Polzer Committed by Android (Google) Code Review
Browse files

Merge changes If194581f,I7c0aaf04,Ida28353b into main

* changes:
  Remove static Environment dependency from DPE
  Sort and format Android.bp in services test directory.
  Run device policy unit tests in presubmit
parents 59b1fb80 edc50ee0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -25,6 +25,9 @@
          "include-filter": "com.android.cts.devicepolicy.ManagedProfileTest#testParentProfileApiDisabled"
        }
      ]
    },
    {
      "name": "FrameworksServicesTests_devicepolicy"
    }
  ],
  "postsubmit": [
+16 −11
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ final class DevicePolicyEngine {

    private final Context mContext;
    private final UserManager mUserManager;
    private final PolicyPathProvider mPolicyPathProvider;

    // TODO(b/256849338): add more granular locks
    private final Object mLock;
@@ -153,11 +154,12 @@ final class DevicePolicyEngine {
    DevicePolicyEngine(
            @NonNull Context context,
            @NonNull DeviceAdminServiceController deviceAdminServiceController,
            @NonNull Object lock) {
            @NonNull Object lock, @NonNull PolicyPathProvider policyPathProvider) {
        mContext = Objects.requireNonNull(context);
        mDeviceAdminServiceController = Objects.requireNonNull(deviceAdminServiceController);
        mLock = Objects.requireNonNull(lock);
        mUserManager = mContext.getSystemService(UserManager.class);
        mPolicyPathProvider = Objects.requireNonNull(policyPathProvider);
        mLocalPolicies = new HashMap<>();
        mGlobalPolicies = new HashMap<>();
        mEnforcingAdmins = new SparseArray<>();
@@ -2424,7 +2426,8 @@ final class DevicePolicyEngine {
    private void write() {
        synchronized (mLock) {
            Log.d(TAG, "Writing device policies to file.");
            new DevicePoliciesReaderWriter().writeToFileLocked();
            new DevicePoliciesReaderWriter(mPolicyPathProvider.getDataSystemDirectory())
                .writeToFileLocked();
        }
    }

@@ -2434,7 +2437,8 @@ final class DevicePolicyEngine {
        Log.d(TAG, "Reading device policies from file.");
        synchronized (mLock) {
            clear();
            new DevicePoliciesReaderWriter().readFromFileLocked();
            new DevicePoliciesReaderWriter(mPolicyPathProvider.getDataSystemDirectory())
                .readFromFileLocked();
        }
    }

@@ -2446,7 +2450,8 @@ final class DevicePolicyEngine {
     */
    void createBackup(String backupId) {
        synchronized (mLock) {
            DevicePoliciesReaderWriter.createBackup(backupId);
            DevicePoliciesReaderWriter.createBackup(backupId,
                mPolicyPathProvider.getDataSystemDirectory());
        }
    }

@@ -2558,17 +2563,17 @@ final class DevicePolicyEngine {

        private final File mFile;

        private static File getFileName() {
            return new File(Environment.getDataSystemDirectory(), DEVICE_POLICIES_XML);
        private static File getFileName(File dataSystemDirectory) {
            return new File(dataSystemDirectory, DEVICE_POLICIES_XML);
        }

        private DevicePoliciesReaderWriter() {
            mFile = getFileName();
        private DevicePoliciesReaderWriter(File dataSystemDirectory) {
            mFile = getFileName(dataSystemDirectory);
        }

        public static void createBackup(String backupId) {
        public static void createBackup(String backupId, File dataSystemDirectory) {
            try {
                File backupDirectory = new File(Environment.getDataSystemDirectory(),
                File backupDirectory = new File(dataSystemDirectory,
                        BACKUP_DIRECTORY);
                backupDirectory.mkdir();
                Path backupPath = Path.of(backupDirectory.getPath(),
@@ -2576,7 +2581,7 @@ final class DevicePolicyEngine {
                if (backupPath.toFile().exists()) {
                    Log.w(TAG, "Backup already exist: " + backupPath);
                } else {
                    Files.copy(getFileName().toPath(), backupPath,
                    Files.copy(getFileName(dataSystemDirectory).toPath(), backupPath,
                            StandardCopyOption.REPLACE_EXISTING);
                    Log.i(TAG, "Backup created at " + backupPath);
                }
+1 −1
Original line number Diff line number Diff line
@@ -2219,7 +2219,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        mOwners = makeOwners(injector, pathProvider);
        mDevicePolicyEngine = new DevicePolicyEngine(
                mContext, mDeviceAdminServiceController, getLockObject());
                mContext, mDeviceAdminServiceController, getLockObject(), mPathProvider);
        if (!mHasFeature) {
            // Skip the rest of the initialization
+99 −99

File changed.

Preview size limit exceeded, changes collapsed.

+4 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.server.devicepolicy

import android.app.admin.DevicePolicyManager
import android.app.admin.IntegerPolicyValue
import com.android.server.devicepolicy.PolicyPathProvider
import android.app.admin.PolicyUpdateResult
import android.content.ComponentName
import android.os.UserHandle
@@ -41,6 +42,7 @@ class DevicePolicyEngineTest {

    private val deviceAdminServiceController = mock<DeviceAdminServiceController>()
    private val userManager = mock<UserManager>()
    private val policyPathProvider = object : PolicyPathProvider {}

    private val lock = Any()
    private lateinit var devicePolicyEngine: DevicePolicyEngine
@@ -49,7 +51,8 @@ class DevicePolicyEngineTest {
    fun setUp() {
        LocalServices.removeServiceForTest(UserManager::class.java)
        LocalServices.addService(UserManager::class.java, userManager)
        devicePolicyEngine = DevicePolicyEngine(context, deviceAdminServiceController, lock)
        devicePolicyEngine = DevicePolicyEngine(context, deviceAdminServiceController, lock,
            policyPathProvider)

        if (LocalManagerRegistry.getManager(RoleManagerLocal::class.java) == null) {
            LocalManagerRegistry.addManager(RoleManagerLocal::class.java, mock<RoleManagerLocal>())