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

Commit 9e7b0251 authored by Priyanka Advani (xWF)'s avatar Priyanka Advani (xWF) Committed by Android (Google) Code Review
Browse files

Revert "Clean up fully rolled out HeadlessDeviceOwnerProvisionin..."

Revert submission 28993807-hdop-cleaup

Reason for revert: Droidmonitor created revert due to b/363275535. Will be verifying through ABTD before submission.

Reverted changes: /q/submissionid:28993807-hdop-cleaup

Change-Id: I3ca8713fbb506f670e949ff9361939334bb1c684
parent d3c1907a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -603,7 +603,7 @@ package android.app.admin {
    method @Deprecated public int getDeviceOwnerType(@NonNull android.content.ComponentName);
    method @Nullable public String getDevicePolicyManagementRoleHolderUpdaterPackage();
    method @NonNull public java.util.Set<java.lang.String> getDisallowedSystemApps(@NonNull android.content.ComponentName, int, @NonNull String);
    method @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public int getHeadlessDeviceOwnerMode();
    method @FlaggedApi("android.app.admin.flags.headless_device_owner_provisioning_fix_enabled") @RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS) public int getHeadlessDeviceOwnerMode();
    method public long getLastBugReportRequestTime();
    method public long getLastNetworkLogRetrievalTime();
    method public long getLastSecurityLogRetrievalTime();
+5 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import static android.Manifest.permission.SET_TIME_ZONE;
import static android.app.admin.DeviceAdminInfo.HEADLESS_DEVICE_OWNER_MODE_UNSUPPORTED;
import static android.app.admin.flags.Flags.FLAG_DEVICE_THEFT_API_ENABLED;
import static android.app.admin.flags.Flags.FLAG_DEVICE_POLICY_SIZE_TRACKING_ENABLED;
import static android.app.admin.flags.Flags.FLAG_HEADLESS_DEVICE_OWNER_PROVISIONING_FIX_ENABLED;
import static android.app.admin.flags.Flags.onboardingBugreportV2Enabled;
import static android.app.admin.flags.Flags.onboardingConsentlessBugreports;
import static android.app.admin.flags.Flags.FLAG_IS_MTE_POLICY_ENFORCED;
@@ -17825,9 +17826,13 @@ public class DevicePolicyManager {
     * @hide
     */
    @TestApi
    @FlaggedApi(FLAG_HEADLESS_DEVICE_OWNER_PROVISIONING_FIX_ENABLED)
    @RequiresPermission(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS)
    @DeviceAdminInfo.HeadlessDeviceOwnerMode
    public int getHeadlessDeviceOwnerMode() {
        if (!Flags.headlessDeviceOwnerProvisioningFixEnabled()) {
            return HEADLESS_DEVICE_OWNER_MODE_UNSUPPORTED;
        }
        if (mService != null) {
            try {
                return mService.getHeadlessDeviceOwnerMode(mContext.getPackageName());
+10 −0
Original line number Diff line number Diff line
@@ -203,6 +203,16 @@ flag {
  bug: "295301164"
}

flag {
  name: "headless_device_owner_provisioning_fix_enabled"
  namespace: "enterprise"
  description: "Fix provisioning for single-user headless DO"
  bug: "289515470"
  metadata {
    purpose: PURPOSE_BUGFIX
  }
}

flag {
  name: "always_persist_do"
  namespace: "enterprise"
+21 −7
Original line number Diff line number Diff line
@@ -17321,10 +17321,17 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
            @Nullable ComponentName componentName, @UserIdInt int callingUserId) {
        synchronized (getLockObject()) {
            int deviceOwnerUserId = -1;
            if (Flags.headlessDeviceOwnerProvisioningFixEnabled()) {
                deviceOwnerUserId = mInjector.userManagerIsHeadlessSystemUserMode()
                        && getHeadlessDeviceOwnerModeForDeviceAdmin(componentName, callingUserId)
                        == HEADLESS_DEVICE_OWNER_MODE_AFFILIATED
                        ? UserHandle.USER_SYSTEM : callingUserId;
            } else {
                deviceOwnerUserId = mInjector.userManagerIsHeadlessSystemUserMode()
                        && getHeadlessDeviceOwnerModeForDeviceOwner()
                        == HEADLESS_DEVICE_OWNER_MODE_AFFILIATED
                        ? UserHandle.USER_SYSTEM : callingUserId;
            }
            Slogf.i(LOG_TAG, "Calling user %d, device owner will be set on user %d",
                    callingUserId, deviceOwnerUserId);
            // hasIncompatibleAccountsOrNonAdb doesn't matter since the caller is not adb.
@@ -21952,9 +21959,16 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        final long identity = Binder.clearCallingIdentity();
        try {
            boolean isSingleUserMode;
            if (Flags.headlessDeviceOwnerProvisioningFixEnabled()) {
                int headlessDeviceOwnerMode = getHeadlessDeviceOwnerModeForDeviceAdmin(
                        deviceAdmin, caller.getUserId());
            isSingleUserMode = headlessDeviceOwnerMode == HEADLESS_DEVICE_OWNER_MODE_SINGLE_USER;
                isSingleUserMode =
                        headlessDeviceOwnerMode == HEADLESS_DEVICE_OWNER_MODE_SINGLE_USER;
            } else {
                isSingleUserMode =
                        getHeadlessDeviceOwnerModeForDeviceOwner()
                                == HEADLESS_DEVICE_OWNER_MODE_SINGLE_USER;
            }
            if (Flags.headlessSingleMinTargetSdk()
                    && mInjector.userManagerIsHeadlessSystemUserMode()