Loading core/api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -1199,6 +1199,7 @@ package android.app.admin { public final class FullyManagedDeviceProvisioningParams implements android.os.Parcelable { method public boolean canDeviceOwnerGrantSensorsPermissions(); method public int describeContents(); method @NonNull public android.os.PersistableBundle getAdminExtras(); method @NonNull public android.content.ComponentName getDeviceAdminComponentName(); method public long getLocalTime(); method @Nullable public java.util.Locale getLocale(); Loading @@ -1212,6 +1213,7 @@ package android.app.admin { public static final class FullyManagedDeviceProvisioningParams.Builder { ctor public FullyManagedDeviceProvisioningParams.Builder(@NonNull android.content.ComponentName, @NonNull String); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams build(); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setAdminExtras(@NonNull android.os.PersistableBundle); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setCanDeviceOwnerGrantSensorsPermissions(boolean); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setLeaveAllSystemAppsEnabled(boolean); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setLocalTime(long); Loading @@ -1222,6 +1224,7 @@ package android.app.admin { public final class ManagedProfileProvisioningParams implements android.os.Parcelable { method public int describeContents(); method @Nullable public android.accounts.Account getAccountToMigrate(); method @NonNull public android.os.PersistableBundle getAdminExtras(); method @NonNull public String getOwnerName(); method @NonNull public android.content.ComponentName getProfileAdminComponentName(); method @Nullable public String getProfileName(); Loading @@ -1236,6 +1239,7 @@ package android.app.admin { ctor public ManagedProfileProvisioningParams.Builder(@NonNull android.content.ComponentName, @NonNull String); method @NonNull public android.app.admin.ManagedProfileProvisioningParams build(); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setAccountToMigrate(@Nullable android.accounts.Account); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setAdminExtras(@NonNull android.os.PersistableBundle); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setKeepingAccountOnMigration(boolean); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setLeaveAllSystemAppsEnabled(boolean); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setOrganizationOwnedProvisioning(boolean); core/java/android/app/admin/FullyManagedDeviceProvisioningParams.java +37 −5 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.annotation.SystemApi; import android.content.ComponentName; import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; import android.stats.devicepolicy.DevicePolicyEnums; import java.util.Locale; Loading Loading @@ -52,6 +53,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @SuppressLint("UseIcu") @Nullable private final Locale mLocale; private final boolean mDeviceOwnerCanGrantSensorsPermissions; @NonNull private final PersistableBundle mAdminExtras; private FullyManagedDeviceProvisioningParams( @NonNull ComponentName deviceAdminComponentName, Loading @@ -60,7 +62,8 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @Nullable String timeZone, long localTime, @Nullable @SuppressLint("UseIcu") Locale locale, boolean deviceOwnerCanGrantSensorsPermissions) { boolean deviceOwnerCanGrantSensorsPermissions, @NonNull PersistableBundle adminExtras) { this.mDeviceAdminComponentName = requireNonNull(deviceAdminComponentName); this.mOwnerName = requireNonNull(ownerName); this.mLeaveAllSystemAppsEnabled = leaveAllSystemAppsEnabled; Loading @@ -69,6 +72,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { this.mLocale = locale; this.mDeviceOwnerCanGrantSensorsPermissions = deviceOwnerCanGrantSensorsPermissions; this.mAdminExtras = adminExtras; } private FullyManagedDeviceProvisioningParams( Loading @@ -78,14 +82,16 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @Nullable String timeZone, long localTime, @Nullable String localeStr, boolean deviceOwnerCanGrantSensorsPermissions) { boolean deviceOwnerCanGrantSensorsPermissions, @Nullable PersistableBundle adminExtras) { this(deviceAdminComponentName, ownerName, leaveAllSystemAppsEnabled, timeZone, localTime, getLocale(localeStr), deviceOwnerCanGrantSensorsPermissions); deviceOwnerCanGrantSensorsPermissions, adminExtras); } @Nullable Loading Loading @@ -150,6 +156,15 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { return mDeviceOwnerCanGrantSensorsPermissions; } /** * Returns a copy of the admin extras bundle. * * @see DevicePolicyManager#EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE */ public @NonNull PersistableBundle getAdminExtras() { return new PersistableBundle(mAdminExtras); } /** * Logs the provisioning params using {@link DevicePolicyEventLogger}. * Loading Loading @@ -188,6 +203,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @Nullable private Locale mLocale; // Default to allowing control over sensor permission grants. boolean mDeviceOwnerCanGrantSensorsPermissions = true; @NonNull private PersistableBundle mAdminExtras; /** * Initialize a new {@link Builder} to construct a Loading Loading @@ -261,6 +277,17 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { return this; } /** * Sets a {@link PersistableBundle} that contains admin-specific extras. */ @NonNull public Builder setAdminExtras(@NonNull PersistableBundle adminExtras) { mAdminExtras = adminExtras != null ? new PersistableBundle(adminExtras) : new PersistableBundle(); return this; } /** * Combines all of the attributes that have been set on this {@code Builder} * Loading @@ -275,7 +302,8 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { mTimeZone, mLocalTime, mLocale, mDeviceOwnerCanGrantSensorsPermissions); mDeviceOwnerCanGrantSensorsPermissions, mAdminExtras); } } Loading @@ -298,6 +326,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { + ", mLocale=" + (mLocale == null ? "null" : mLocale) + ", mDeviceOwnerCanGrantSensorsPermissions=" + mDeviceOwnerCanGrantSensorsPermissions + ", mAdminExtras=" + mAdminExtras + '}'; } Loading @@ -310,6 +339,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { dest.writeLong(mLocalTime); dest.writeString(mLocale == null ? null : mLocale.toLanguageTag()); dest.writeBoolean(mDeviceOwnerCanGrantSensorsPermissions); dest.writePersistableBundle(mAdminExtras); } @NonNull Loading @@ -324,6 +354,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { long localtime = in.readLong(); String locale = in.readString(); boolean deviceOwnerCanGrantSensorsPermissions = in.readBoolean(); PersistableBundle adminExtras = in.readPersistableBundle(); return new FullyManagedDeviceProvisioningParams( componentName, Loading @@ -332,7 +363,8 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { timeZone, localtime, locale, deviceOwnerCanGrantSensorsPermissions); deviceOwnerCanGrantSensorsPermissions, adminExtras); } @Override Loading core/java/android/app/admin/ManagedProfileProvisioningParams.java +34 −4 Original line number Diff line number Diff line Loading @@ -23,8 +23,10 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.content.ComponentName; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; import android.stats.devicepolicy.DevicePolicyEnums; /** Loading @@ -49,7 +51,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { private final boolean mLeaveAllSystemAppsEnabled; private final boolean mOrganizationOwnedProvisioning; private final boolean mKeepAccountOnMigration; @NonNull private final PersistableBundle mAdminExtras; private ManagedProfileProvisioningParams( @NonNull ComponentName profileAdminComponentName, Loading @@ -58,7 +60,8 @@ public final class ManagedProfileProvisioningParams implements Parcelable { @Nullable Account accountToMigrate, boolean leaveAllSystemAppsEnabled, boolean organizationOwnedProvisioning, boolean keepAccountOnMigration) { boolean keepAccountOnMigration, @NonNull PersistableBundle adminExtras) { this.mProfileAdminComponentName = requireNonNull(profileAdminComponentName); this.mOwnerName = requireNonNull(ownerName); this.mProfileName = profileName; Loading @@ -66,6 +69,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { this.mLeaveAllSystemAppsEnabled = leaveAllSystemAppsEnabled; this.mOrganizationOwnedProvisioning = organizationOwnedProvisioning; this.mKeepAccountOnMigration = keepAccountOnMigration; this.mAdminExtras = adminExtras; } /** Loading Loading @@ -123,6 +127,15 @@ public final class ManagedProfileProvisioningParams implements Parcelable { return mKeepAccountOnMigration; } /** * Returns a copy of the admin extras bundle. * * @see DevicePolicyManager#EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE */ public @NonNull PersistableBundle getAdminExtras() { return new PersistableBundle(mAdminExtras); } /** * Logs the provisioning params using {@link DevicePolicyEventLogger}. * Loading Loading @@ -160,6 +173,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { private boolean mLeaveAllSystemAppsEnabled; private boolean mOrganizationOwnedProvisioning; private boolean mKeepingAccountOnMigration; @Nullable private PersistableBundle mAdminExtras; /** * Initialize a new {@link Builder) to construct a {@link ManagedProfileProvisioningParams}. Loading Loading @@ -234,6 +248,17 @@ public final class ManagedProfileProvisioningParams implements Parcelable { return this; } /** * Sets a {@link Bundle} that contains admin-specific extras. */ @NonNull public Builder setAdminExtras(@NonNull PersistableBundle adminExtras) { mAdminExtras = adminExtras != null ? new PersistableBundle(adminExtras) : new PersistableBundle(); return this; } /** * Combines all of the attributes that have been set on this {@code Builder}. * Loading @@ -248,7 +273,8 @@ public final class ManagedProfileProvisioningParams implements Parcelable { mAccountToMigrate, mLeaveAllSystemAppsEnabled, mOrganizationOwnedProvisioning, mKeepingAccountOnMigration); mKeepingAccountOnMigration, mAdminExtras); } } Loading @@ -270,6 +296,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { + ", mLeaveAllSystemAppsEnabled=" + mLeaveAllSystemAppsEnabled + ", mOrganizationOwnedProvisioning=" + mOrganizationOwnedProvisioning + ", mKeepAccountOnMigration=" + mKeepAccountOnMigration + ", mAdminExtras=" + mAdminExtras + '}'; } Loading @@ -282,6 +309,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { dest.writeBoolean(mLeaveAllSystemAppsEnabled); dest.writeBoolean(mOrganizationOwnedProvisioning); dest.writeBoolean(mKeepAccountOnMigration); dest.writePersistableBundle(mAdminExtras); } public static final @NonNull Creator<ManagedProfileProvisioningParams> CREATOR = Loading @@ -295,6 +323,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { boolean leaveAllSystemAppsEnabled = in.readBoolean(); boolean organizationOwnedProvisioning = in.readBoolean(); boolean keepAccountMigrated = in.readBoolean(); PersistableBundle adminExtras = in.readPersistableBundle(); return new ManagedProfileProvisioningParams( componentName, Loading @@ -303,7 +332,8 @@ public final class ManagedProfileProvisioningParams implements Parcelable { account, leaveAllSystemAppsEnabled, organizationOwnedProvisioning, keepAccountMigrated); keepAccountMigrated, adminExtras); } @Override Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +52 −0 Original line number Diff line number Diff line Loading @@ -17705,6 +17705,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { startTime, callerPackage); onCreateAndProvisionManagedProfileStarted(provisioningParams); installExistingAdminPackage(userInfo.id, admin.getPackageName()); if (!enableAdminAndSetProfileOwner( userInfo.id, caller.getUserId(), admin, provisioningParams.getOwnerName())) { Loading @@ -17725,6 +17727,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } onCreateAndProvisionManagedProfileCompleted(provisioningParams); sendProvisioningCompletedBroadcast( userInfo.id, ACTION_PROVISION_MANAGED_PROFILE, Loading @@ -17746,6 +17750,29 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } /** * Callback called at the beginning of {@link #createAndProvisionManagedProfile( * ManagedProfileProvisioningParams, String)} after the relevant prechecks have passed. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onCreateAndProvisionManagedProfileStarted( ManagedProfileProvisioningParams provisioningParams) {} /** * Callback called at the end of {@link #createAndProvisionManagedProfile( * ManagedProfileProvisioningParams, String)} after all the other provisioning tasks * have completed successfully. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onCreateAndProvisionManagedProfileCompleted( ManagedProfileProvisioningParams provisioningParams) {} private void resetInteractAcrossProfilesAppOps() { mInjector.getCrossProfileApps().clearInteractAcrossProfilesAppOps(); pregrantDefaultInteractAcrossProfilesAppOps(); Loading Loading @@ -17985,6 +18012,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { ERROR_PRE_CONDITION_FAILED, "Provisioning preconditions failed with result: " + result); } onProvisionFullyManagedDeviceStarted(provisioningParams); setTimeAndTimezone(provisioningParams.getTimeZone(), provisioningParams.getLocalTime()); setLocale(provisioningParams.getLocale()); Loading @@ -18010,6 +18038,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { disallowAddUser(); setAdminCanGrantSensorsPermissionForUserUnchecked(deviceOwnerUserId, provisioningParams.canDeviceOwnerGrantSensorsPermissions()); onProvisionFullyManagedDeviceCompleted(provisioningParams); sendProvisioningCompletedBroadcast( deviceOwnerUserId, ACTION_PROVISION_MANAGED_DEVICE, Loading @@ -18025,6 +18054,29 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } /** * Callback called at the beginning of {@link #provisionFullyManagedDevice( * FullyManagedDeviceProvisioningParams, String)} after the relevant prechecks have passed. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onProvisionFullyManagedDeviceStarted( FullyManagedDeviceProvisioningParams provisioningParams) {} /** * Callback called at the end of {@link #provisionFullyManagedDevice( * FullyManagedDeviceProvisioningParams, String)} after all the other provisioning tasks * have completed successfully. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onProvisionFullyManagedDeviceCompleted( FullyManagedDeviceProvisioningParams provisioningParams) {} private void setTimeAndTimezone(String timeZone, long localTime) { try { final AlarmManager alarmManager = mContext.getSystemService(AlarmManager.class); Loading
core/api/system-current.txt +4 −0 Original line number Diff line number Diff line Loading @@ -1199,6 +1199,7 @@ package android.app.admin { public final class FullyManagedDeviceProvisioningParams implements android.os.Parcelable { method public boolean canDeviceOwnerGrantSensorsPermissions(); method public int describeContents(); method @NonNull public android.os.PersistableBundle getAdminExtras(); method @NonNull public android.content.ComponentName getDeviceAdminComponentName(); method public long getLocalTime(); method @Nullable public java.util.Locale getLocale(); Loading @@ -1212,6 +1213,7 @@ package android.app.admin { public static final class FullyManagedDeviceProvisioningParams.Builder { ctor public FullyManagedDeviceProvisioningParams.Builder(@NonNull android.content.ComponentName, @NonNull String); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams build(); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setAdminExtras(@NonNull android.os.PersistableBundle); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setCanDeviceOwnerGrantSensorsPermissions(boolean); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setLeaveAllSystemAppsEnabled(boolean); method @NonNull public android.app.admin.FullyManagedDeviceProvisioningParams.Builder setLocalTime(long); Loading @@ -1222,6 +1224,7 @@ package android.app.admin { public final class ManagedProfileProvisioningParams implements android.os.Parcelable { method public int describeContents(); method @Nullable public android.accounts.Account getAccountToMigrate(); method @NonNull public android.os.PersistableBundle getAdminExtras(); method @NonNull public String getOwnerName(); method @NonNull public android.content.ComponentName getProfileAdminComponentName(); method @Nullable public String getProfileName(); Loading @@ -1236,6 +1239,7 @@ package android.app.admin { ctor public ManagedProfileProvisioningParams.Builder(@NonNull android.content.ComponentName, @NonNull String); method @NonNull public android.app.admin.ManagedProfileProvisioningParams build(); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setAccountToMigrate(@Nullable android.accounts.Account); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setAdminExtras(@NonNull android.os.PersistableBundle); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setKeepingAccountOnMigration(boolean); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setLeaveAllSystemAppsEnabled(boolean); method @NonNull public android.app.admin.ManagedProfileProvisioningParams.Builder setOrganizationOwnedProvisioning(boolean);
core/java/android/app/admin/FullyManagedDeviceProvisioningParams.java +37 −5 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.annotation.SystemApi; import android.content.ComponentName; import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; import android.stats.devicepolicy.DevicePolicyEnums; import java.util.Locale; Loading Loading @@ -52,6 +53,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @SuppressLint("UseIcu") @Nullable private final Locale mLocale; private final boolean mDeviceOwnerCanGrantSensorsPermissions; @NonNull private final PersistableBundle mAdminExtras; private FullyManagedDeviceProvisioningParams( @NonNull ComponentName deviceAdminComponentName, Loading @@ -60,7 +62,8 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @Nullable String timeZone, long localTime, @Nullable @SuppressLint("UseIcu") Locale locale, boolean deviceOwnerCanGrantSensorsPermissions) { boolean deviceOwnerCanGrantSensorsPermissions, @NonNull PersistableBundle adminExtras) { this.mDeviceAdminComponentName = requireNonNull(deviceAdminComponentName); this.mOwnerName = requireNonNull(ownerName); this.mLeaveAllSystemAppsEnabled = leaveAllSystemAppsEnabled; Loading @@ -69,6 +72,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { this.mLocale = locale; this.mDeviceOwnerCanGrantSensorsPermissions = deviceOwnerCanGrantSensorsPermissions; this.mAdminExtras = adminExtras; } private FullyManagedDeviceProvisioningParams( Loading @@ -78,14 +82,16 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @Nullable String timeZone, long localTime, @Nullable String localeStr, boolean deviceOwnerCanGrantSensorsPermissions) { boolean deviceOwnerCanGrantSensorsPermissions, @Nullable PersistableBundle adminExtras) { this(deviceAdminComponentName, ownerName, leaveAllSystemAppsEnabled, timeZone, localTime, getLocale(localeStr), deviceOwnerCanGrantSensorsPermissions); deviceOwnerCanGrantSensorsPermissions, adminExtras); } @Nullable Loading Loading @@ -150,6 +156,15 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { return mDeviceOwnerCanGrantSensorsPermissions; } /** * Returns a copy of the admin extras bundle. * * @see DevicePolicyManager#EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE */ public @NonNull PersistableBundle getAdminExtras() { return new PersistableBundle(mAdminExtras); } /** * Logs the provisioning params using {@link DevicePolicyEventLogger}. * Loading Loading @@ -188,6 +203,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { @Nullable private Locale mLocale; // Default to allowing control over sensor permission grants. boolean mDeviceOwnerCanGrantSensorsPermissions = true; @NonNull private PersistableBundle mAdminExtras; /** * Initialize a new {@link Builder} to construct a Loading Loading @@ -261,6 +277,17 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { return this; } /** * Sets a {@link PersistableBundle} that contains admin-specific extras. */ @NonNull public Builder setAdminExtras(@NonNull PersistableBundle adminExtras) { mAdminExtras = adminExtras != null ? new PersistableBundle(adminExtras) : new PersistableBundle(); return this; } /** * Combines all of the attributes that have been set on this {@code Builder} * Loading @@ -275,7 +302,8 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { mTimeZone, mLocalTime, mLocale, mDeviceOwnerCanGrantSensorsPermissions); mDeviceOwnerCanGrantSensorsPermissions, mAdminExtras); } } Loading @@ -298,6 +326,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { + ", mLocale=" + (mLocale == null ? "null" : mLocale) + ", mDeviceOwnerCanGrantSensorsPermissions=" + mDeviceOwnerCanGrantSensorsPermissions + ", mAdminExtras=" + mAdminExtras + '}'; } Loading @@ -310,6 +339,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { dest.writeLong(mLocalTime); dest.writeString(mLocale == null ? null : mLocale.toLanguageTag()); dest.writeBoolean(mDeviceOwnerCanGrantSensorsPermissions); dest.writePersistableBundle(mAdminExtras); } @NonNull Loading @@ -324,6 +354,7 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { long localtime = in.readLong(); String locale = in.readString(); boolean deviceOwnerCanGrantSensorsPermissions = in.readBoolean(); PersistableBundle adminExtras = in.readPersistableBundle(); return new FullyManagedDeviceProvisioningParams( componentName, Loading @@ -332,7 +363,8 @@ public final class FullyManagedDeviceProvisioningParams implements Parcelable { timeZone, localtime, locale, deviceOwnerCanGrantSensorsPermissions); deviceOwnerCanGrantSensorsPermissions, adminExtras); } @Override Loading
core/java/android/app/admin/ManagedProfileProvisioningParams.java +34 −4 Original line number Diff line number Diff line Loading @@ -23,8 +23,10 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.content.ComponentName; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import android.os.PersistableBundle; import android.stats.devicepolicy.DevicePolicyEnums; /** Loading @@ -49,7 +51,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { private final boolean mLeaveAllSystemAppsEnabled; private final boolean mOrganizationOwnedProvisioning; private final boolean mKeepAccountOnMigration; @NonNull private final PersistableBundle mAdminExtras; private ManagedProfileProvisioningParams( @NonNull ComponentName profileAdminComponentName, Loading @@ -58,7 +60,8 @@ public final class ManagedProfileProvisioningParams implements Parcelable { @Nullable Account accountToMigrate, boolean leaveAllSystemAppsEnabled, boolean organizationOwnedProvisioning, boolean keepAccountOnMigration) { boolean keepAccountOnMigration, @NonNull PersistableBundle adminExtras) { this.mProfileAdminComponentName = requireNonNull(profileAdminComponentName); this.mOwnerName = requireNonNull(ownerName); this.mProfileName = profileName; Loading @@ -66,6 +69,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { this.mLeaveAllSystemAppsEnabled = leaveAllSystemAppsEnabled; this.mOrganizationOwnedProvisioning = organizationOwnedProvisioning; this.mKeepAccountOnMigration = keepAccountOnMigration; this.mAdminExtras = adminExtras; } /** Loading Loading @@ -123,6 +127,15 @@ public final class ManagedProfileProvisioningParams implements Parcelable { return mKeepAccountOnMigration; } /** * Returns a copy of the admin extras bundle. * * @see DevicePolicyManager#EXTRA_PROVISIONING_ADMIN_EXTRAS_BUNDLE */ public @NonNull PersistableBundle getAdminExtras() { return new PersistableBundle(mAdminExtras); } /** * Logs the provisioning params using {@link DevicePolicyEventLogger}. * Loading Loading @@ -160,6 +173,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { private boolean mLeaveAllSystemAppsEnabled; private boolean mOrganizationOwnedProvisioning; private boolean mKeepingAccountOnMigration; @Nullable private PersistableBundle mAdminExtras; /** * Initialize a new {@link Builder) to construct a {@link ManagedProfileProvisioningParams}. Loading Loading @@ -234,6 +248,17 @@ public final class ManagedProfileProvisioningParams implements Parcelable { return this; } /** * Sets a {@link Bundle} that contains admin-specific extras. */ @NonNull public Builder setAdminExtras(@NonNull PersistableBundle adminExtras) { mAdminExtras = adminExtras != null ? new PersistableBundle(adminExtras) : new PersistableBundle(); return this; } /** * Combines all of the attributes that have been set on this {@code Builder}. * Loading @@ -248,7 +273,8 @@ public final class ManagedProfileProvisioningParams implements Parcelable { mAccountToMigrate, mLeaveAllSystemAppsEnabled, mOrganizationOwnedProvisioning, mKeepingAccountOnMigration); mKeepingAccountOnMigration, mAdminExtras); } } Loading @@ -270,6 +296,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { + ", mLeaveAllSystemAppsEnabled=" + mLeaveAllSystemAppsEnabled + ", mOrganizationOwnedProvisioning=" + mOrganizationOwnedProvisioning + ", mKeepAccountOnMigration=" + mKeepAccountOnMigration + ", mAdminExtras=" + mAdminExtras + '}'; } Loading @@ -282,6 +309,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { dest.writeBoolean(mLeaveAllSystemAppsEnabled); dest.writeBoolean(mOrganizationOwnedProvisioning); dest.writeBoolean(mKeepAccountOnMigration); dest.writePersistableBundle(mAdminExtras); } public static final @NonNull Creator<ManagedProfileProvisioningParams> CREATOR = Loading @@ -295,6 +323,7 @@ public final class ManagedProfileProvisioningParams implements Parcelable { boolean leaveAllSystemAppsEnabled = in.readBoolean(); boolean organizationOwnedProvisioning = in.readBoolean(); boolean keepAccountMigrated = in.readBoolean(); PersistableBundle adminExtras = in.readPersistableBundle(); return new ManagedProfileProvisioningParams( componentName, Loading @@ -303,7 +332,8 @@ public final class ManagedProfileProvisioningParams implements Parcelable { account, leaveAllSystemAppsEnabled, organizationOwnedProvisioning, keepAccountMigrated); keepAccountMigrated, adminExtras); } @Override Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +52 −0 Original line number Diff line number Diff line Loading @@ -17705,6 +17705,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { startTime, callerPackage); onCreateAndProvisionManagedProfileStarted(provisioningParams); installExistingAdminPackage(userInfo.id, admin.getPackageName()); if (!enableAdminAndSetProfileOwner( userInfo.id, caller.getUserId(), admin, provisioningParams.getOwnerName())) { Loading @@ -17725,6 +17727,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } onCreateAndProvisionManagedProfileCompleted(provisioningParams); sendProvisioningCompletedBroadcast( userInfo.id, ACTION_PROVISION_MANAGED_PROFILE, Loading @@ -17746,6 +17750,29 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } /** * Callback called at the beginning of {@link #createAndProvisionManagedProfile( * ManagedProfileProvisioningParams, String)} after the relevant prechecks have passed. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onCreateAndProvisionManagedProfileStarted( ManagedProfileProvisioningParams provisioningParams) {} /** * Callback called at the end of {@link #createAndProvisionManagedProfile( * ManagedProfileProvisioningParams, String)} after all the other provisioning tasks * have completed successfully. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onCreateAndProvisionManagedProfileCompleted( ManagedProfileProvisioningParams provisioningParams) {} private void resetInteractAcrossProfilesAppOps() { mInjector.getCrossProfileApps().clearInteractAcrossProfilesAppOps(); pregrantDefaultInteractAcrossProfilesAppOps(); Loading Loading @@ -17985,6 +18012,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { ERROR_PRE_CONDITION_FAILED, "Provisioning preconditions failed with result: " + result); } onProvisionFullyManagedDeviceStarted(provisioningParams); setTimeAndTimezone(provisioningParams.getTimeZone(), provisioningParams.getLocalTime()); setLocale(provisioningParams.getLocale()); Loading @@ -18010,6 +18038,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { disallowAddUser(); setAdminCanGrantSensorsPermissionForUserUnchecked(deviceOwnerUserId, provisioningParams.canDeviceOwnerGrantSensorsPermissions()); onProvisionFullyManagedDeviceCompleted(provisioningParams); sendProvisioningCompletedBroadcast( deviceOwnerUserId, ACTION_PROVISION_MANAGED_DEVICE, Loading @@ -18025,6 +18054,29 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager { } } /** * Callback called at the beginning of {@link #provisionFullyManagedDevice( * FullyManagedDeviceProvisioningParams, String)} after the relevant prechecks have passed. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onProvisionFullyManagedDeviceStarted( FullyManagedDeviceProvisioningParams provisioningParams) {} /** * Callback called at the end of {@link #provisionFullyManagedDevice( * FullyManagedDeviceProvisioningParams, String)} after all the other provisioning tasks * have completed successfully. * * <p>The logic in this method blocks provisioning. * * <p>This method is meant to be overridden by OEMs. */ private void onProvisionFullyManagedDeviceCompleted( FullyManagedDeviceProvisioningParams provisioningParams) {} private void setTimeAndTimezone(String timeZone, long localTime) { try { final AlarmManager alarmManager = mContext.getSystemService(AlarmManager.class);