Merge "[qt] RESTRICT AUTOMERGE Add finalizeWorkProfileProvisioning." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9bc1facf00
@@ -19,6 +19,7 @@ package android.app.admin;
|
||||
import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
|
||||
|
||||
import android.Manifest.permission;
|
||||
import android.accounts.Account;
|
||||
import android.annotation.CallbackExecutor;
|
||||
import android.annotation.ColorInt;
|
||||
import android.annotation.IntDef;
|
||||
@@ -151,6 +152,26 @@ public class DevicePolicyManager {
|
||||
this(context, service, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when a managed profile has been provisioned.
|
||||
*
|
||||
* @throws SecurityException if the caller does not hold
|
||||
* {@link android.Manifest.permission#MANAGE_PROFILE_AND_DEVICE_OWNERS}.
|
||||
* @hide
|
||||
*/
|
||||
@RequiresPermission(android.Manifest.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS)
|
||||
public void finalizeWorkProfileProvisioning(
|
||||
@NonNull UserHandle managedProfileUser, @Nullable Account migratedAccount) {
|
||||
if (mService == null) {
|
||||
throw new IllegalStateException("Could not find DevicePolicyManagerService");
|
||||
}
|
||||
try {
|
||||
mService.finalizeWorkProfileProvisioning(managedProfileUser, migratedAccount);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@VisibleForTesting
|
||||
protected DevicePolicyManager(Context context, IDevicePolicyManager service,
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
package android.app.admin;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.app.admin.NetworkEvent;
|
||||
import android.app.IApplicationThread;
|
||||
import android.app.IServiceConnection;
|
||||
@@ -87,6 +88,8 @@ interface IDevicePolicyManager {
|
||||
int getCurrentFailedPasswordAttempts(int userHandle, boolean parent);
|
||||
int getProfileWithMinimumFailedPasswordsForWipe(int userHandle, boolean parent);
|
||||
|
||||
void finalizeWorkProfileProvisioning(in UserHandle managedProfileUser, in Account migratedAccount);
|
||||
|
||||
void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num, boolean parent);
|
||||
int getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle, boolean parent);
|
||||
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
<protected-broadcast android:name="android.intent.action.USER_ACTIVITY_NOTIFICATION" />
|
||||
<protected-broadcast android:name="android.intent.action.MY_PACKAGE_SUSPENDED" />
|
||||
<protected-broadcast android:name="android.intent.action.MY_PACKAGE_UNSUSPENDED" />
|
||||
<protected-broadcast android:name="android.app.action.MANAGED_PROFILE_PROVISIONED" />
|
||||
|
||||
<protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGED" />
|
||||
<protected-broadcast android:name="android.os.action.POWER_SAVE_MODE_CHANGING" />
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
package com.android.server.devicepolicy;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.app.admin.IDevicePolicyManager;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import com.android.server.SystemService;
|
||||
|
||||
@@ -56,4 +58,9 @@ abstract class BaseIDevicePolicyManager extends IDevicePolicyManager.Stub {
|
||||
|
||||
public void clearSystemUpdatePolicyFreezePeriodRecord() {
|
||||
}
|
||||
|
||||
public void finalizeWorkProfileProvisioning(
|
||||
UserHandle managedProfileUser, Account migratedAccount) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import static android.Manifest.permission.MANAGE_CA_CERTIFICATES;
|
||||
import static android.Manifest.permission.REQUEST_PASSWORD_COMPLEXITY;
|
||||
import static android.app.ActivityManager.LOCK_TASK_MODE_NONE;
|
||||
import static android.app.admin.DeviceAdminReceiver.EXTRA_TRANSFER_OWNERSHIP_ADMIN_EXTRAS_BUNDLE;
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_MANAGED_PROFILE_PROVISIONED;
|
||||
import static android.app.admin.DevicePolicyManager.ACTION_PROVISION_MANAGED_USER;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_ACCOUNTS_NOT_EMPTY;
|
||||
import static android.app.admin.DevicePolicyManager.CODE_ADD_MANAGED_PROFILE_DISALLOWED;
|
||||
@@ -48,6 +49,7 @@ import static android.app.admin.DevicePolicyManager.DELEGATION_KEEP_UNINSTALLED_
|
||||
import static android.app.admin.DevicePolicyManager.DELEGATION_NETWORK_LOGGING;
|
||||
import static android.app.admin.DevicePolicyManager.DELEGATION_PACKAGE_ACCESS;
|
||||
import static android.app.admin.DevicePolicyManager.DELEGATION_PERMISSION_GRANT;
|
||||
import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE;
|
||||
import static android.app.admin.DevicePolicyManager.ID_TYPE_BASE_INFO;
|
||||
import static android.app.admin.DevicePolicyManager.ID_TYPE_IMEI;
|
||||
import static android.app.admin.DevicePolicyManager.ID_TYPE_MEID;
|
||||
@@ -9628,6 +9630,37 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finalizeWorkProfileProvisioning(UserHandle managedProfileUser,
|
||||
Account migratedAccount) {
|
||||
if (mContext.checkCallingOrSelfPermission(permission.MANAGE_PROFILE_AND_DEVICE_OWNERS)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
throw new SecurityException("Calling identity is not authorized");
|
||||
}
|
||||
|
||||
if (!isManagedProfile(managedProfileUser.getIdentifier())) {
|
||||
throw new IllegalStateException("Given user is not a managed profile");
|
||||
}
|
||||
ComponentName profileOwnerComponent =
|
||||
mOwners.getProfileOwnerComponent(managedProfileUser.getIdentifier());
|
||||
if (profileOwnerComponent == null) {
|
||||
throw new IllegalStateException("There is no profile owner on the given profile");
|
||||
}
|
||||
Intent primaryProfileSuccessIntent = new Intent(ACTION_MANAGED_PROFILE_PROVISIONED);
|
||||
primaryProfileSuccessIntent.setPackage(profileOwnerComponent.getPackageName());
|
||||
primaryProfileSuccessIntent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES
|
||||
| Intent.FLAG_RECEIVER_FOREGROUND);
|
||||
primaryProfileSuccessIntent.putExtra(Intent.EXTRA_USER, managedProfileUser);
|
||||
|
||||
if (migratedAccount != null) {
|
||||
primaryProfileSuccessIntent.putExtra(EXTRA_PROVISIONING_ACCOUNT_TO_MIGRATE,
|
||||
migratedAccount);
|
||||
}
|
||||
|
||||
mContext.sendBroadcastAsUser(primaryProfileSuccessIntent,
|
||||
UserHandle.of(getProfileParentId(managedProfileUser.getIdentifier())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserHandle createAndManageUser(ComponentName admin, String name,
|
||||
ComponentName profileOwner, PersistableBundle adminExtras, int flags) {
|
||||
|
||||
Reference in New Issue
Block a user