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

Commit 0a721669 authored by Pavel Grafov's avatar Pavel Grafov
Browse files

Remove flag wrappers

Reading flags no longer requires READ_DEVICE_CONFIG, so there is no need
to wrap access in Binder.withCleanCallingIdentity().

Bug: none
Test: TH
Change-Id: I43eb2e18860ac87907b1b79b3906d9f81bf9c078
parent c91700a7
Loading
Loading
Loading
Loading
+0 −49
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.app.admin.flags;

import static android.app.admin.flags.Flags.devicePolicySizeTrackingEnabled;
import static android.app.admin.flags.Flags.policyEngineMigrationV2Enabled;
import static android.app.admin.flags.Flags.onboardingBugreportV2Enabled;

import android.os.Binder;

/**
 *
 * @hide
 */
public final class FlagUtils {
    private FlagUtils() {}

    public static boolean isPolicyEngineMigrationV2Enabled() {
        return Binder.withCleanCallingIdentity(() -> {
            return policyEngineMigrationV2Enabled();
        });
    }

    public static boolean isDevicePolicySizeTrackingEnabled() {
        return Binder.withCleanCallingIdentity(() -> {
            return devicePolicySizeTrackingEnabled();
        });
    }

    public static boolean isOnboardingBugreportV2Enabled() {
        return Binder.withCleanCallingIdentity(() -> {
            return onboardingBugreportV2Enabled();
        });
    }
}
+6 −6
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static android.app.admin.PolicyUpdateResult.RESULT_FAILURE_HARDWARE_LIMIT
import static android.app.admin.PolicyUpdateResult.RESULT_FAILURE_STORAGE_LIMIT_REACHED;
import static android.app.admin.PolicyUpdateResult.RESULT_POLICY_CLEARED;
import static android.app.admin.PolicyUpdateResult.RESULT_POLICY_SET;
import static android.app.admin.flags.Flags.devicePolicySizeTrackingEnabled;
import static android.content.pm.UserProperties.INHERIT_DEVICE_POLICY_FROM_PARENT;

import android.Manifest;
@@ -40,7 +41,6 @@ import android.app.admin.PolicyUpdateReceiver;
import android.app.admin.PolicyValue;
import android.app.admin.TargetUser;
import android.app.admin.UserRestrictionPolicyKey;
import android.app.admin.flags.FlagUtils;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -159,7 +159,7 @@ final class DevicePolicyEngine {

        synchronized (mLock) {
            PolicyState<V> localPolicyState = getLocalPolicyStateLocked(policyDefinition, userId);
            if (FlagUtils.isDevicePolicySizeTrackingEnabled()) {
            if (devicePolicySizeTrackingEnabled()) {
                if (!handleAdminPolicySizeLimit(localPolicyState, enforcingAdmin, value,
                        policyDefinition, userId)) {
                    return;
@@ -282,7 +282,7 @@ final class DevicePolicyEngine {
            }
            PolicyState<V> localPolicyState = getLocalPolicyStateLocked(policyDefinition, userId);

            if (FlagUtils.isDevicePolicySizeTrackingEnabled()) {
            if (devicePolicySizeTrackingEnabled()) {
                decreasePolicySizeForAdmin(localPolicyState, enforcingAdmin);
            }

@@ -428,7 +428,7 @@ final class DevicePolicyEngine {

        synchronized (mLock) {
            PolicyState<V> globalPolicyState = getGlobalPolicyStateLocked(policyDefinition);
            if (FlagUtils.isDevicePolicySizeTrackingEnabled()) {
            if (devicePolicySizeTrackingEnabled()) {
                if (!handleAdminPolicySizeLimit(globalPolicyState, enforcingAdmin, value,
                        policyDefinition, UserHandle.USER_ALL)) {
                    return;
@@ -499,7 +499,7 @@ final class DevicePolicyEngine {
        synchronized (mLock) {
            PolicyState<V> policyState = getGlobalPolicyStateLocked(policyDefinition);

            if (FlagUtils.isDevicePolicySizeTrackingEnabled()) {
            if (devicePolicySizeTrackingEnabled()) {
                decreasePolicySizeForAdmin(policyState, enforcingAdmin);
            }

@@ -1781,7 +1781,7 @@ final class DevicePolicyEngine {

        private void writeEnforcingAdminSizeInner(TypedXmlSerializer serializer)
                throws IOException {
            if (FlagUtils.isDevicePolicySizeTrackingEnabled()) {
            if (devicePolicySizeTrackingEnabled()) {
                if (mAdminPolicySize != null) {
                    for (int i = 0; i < mAdminPolicySize.size(); i++) {
                        int userId = mAdminPolicySize.keyAt(i);
+5 −5
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.policyEngineMigrationV2Enabled;
import static android.content.Intent.ACTION_MANAGED_PROFILE_AVAILABLE;
import static android.content.Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
@@ -330,7 +331,6 @@ import android.app.admin.SystemUpdatePolicy;
import android.app.admin.UnsafeStateException;
import android.app.admin.UserRestrictionPolicyKey;
import android.app.admin.WifiSsidPolicy;
import android.app.admin.flags.FlagUtils;
import android.app.backup.IBackupManager;
import android.app.compat.CompatChanges;
import android.app.role.OnRoleHoldersChangedListener;
@@ -3430,7 +3430,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
            }
            revertTransferOwnershipIfNecessaryLocked();
            if (!FlagUtils.isPolicyEngineMigrationV2Enabled()) {
            if (!policyEngineMigrationV2Enabled()) {
                updateUsbDataSignal(mContext, isUsbDataSignalingEnabledInternalLocked());
            }
        }
@@ -21571,7 +21571,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        Objects.requireNonNull(packageName, "Admin package name must be provided");
        final CallerIdentity caller = getCallerIdentity(packageName);
        if (!FlagUtils.isPolicyEngineMigrationV2Enabled()) {
        if (!policyEngineMigrationV2Enabled()) {
            Preconditions.checkCallAuthorization(
                    isDefaultDeviceOwner(caller) || isProfileOwnerOfOrganizationOwnedDevice(caller),
                    "USB data signaling can only be controlled by a device owner or "
@@ -21581,7 +21581,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        }
        synchronized (getLockObject()) {
            if (FlagUtils.isPolicyEngineMigrationV2Enabled()) {
            if (policyEngineMigrationV2Enabled()) {
                EnforcingAdmin enforcingAdmin = enforcePermissionAndGetEnforcingAdmin(
                        /* admin= */ null, MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING,
                        caller.getPackageName(),
@@ -21621,7 +21621,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
    @Override
    public boolean isUsbDataSignalingEnabled(String packageName) {
        final CallerIdentity caller = getCallerIdentity(packageName);
        if (FlagUtils.isPolicyEngineMigrationV2Enabled()) {
        if (policyEngineMigrationV2Enabled()) {
            Boolean enabled = mDevicePolicyEngine.getResolvedPolicy(
                    PolicyDefinition.USB_DATA_SIGNALING,
                    caller.getUserId());